Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.03 KB | None | 0 0
  1. diff --git a/libsqlite3/CMakeLists.txt b/libsqlite3/CMakeLists.txt
  2. index 6aa462b..00a1c1a 100644
  3. --- a/libsqlite3/CMakeLists.txt
  4. +++ b/libsqlite3/CMakeLists.txt
  5. @@ -5,7 +5,7 @@ include(CheckIncludeFiles)
  6. include(CheckFunctionExists)
  7. include(CheckLibraryExists)
  8.  
  9. -set(SQLITE_DEFINITIONS -DSQLITE_ENABLE_FTS3;-DSQLITE_ENABLE_RTREE -DNDEBUG)
  10. +set(SQLITE_DEFINITIONS -DSQLITE_ENABLE_FTS3;-DSQLITE_ENABLE_RTREE -DNDEBUG -fPIC)
  11.  
  12. MACRO(CHECK_INCLUDE_FILE_DEFINE_MACRO include_file)
  13. string(REGEX REPLACE "[./]"
  14. diff --git a/lz4/CMakeLists.txt b/lz4/CMakeLists.txt
  15. index a026315..eae8040 100644
  16. --- a/lz4/CMakeLists.txt
  17. +++ b/lz4/CMakeLists.txt
  18. @@ -1 +1,2 @@
  19. +add_definitions(-fPIC)
  20. add_library(lz4 STATIC src/lib/lz4.c src/lib/lz4.h src/lib/lz4hc.c src/lib/lz4hc.h)
  21. diff --git a/ocaml/CMakeLists.txt b/ocaml/CMakeLists.txt
  22. index f7c8eb1..48bba70 100644
  23. --- a/ocaml/CMakeLists.txt
  24. +++ b/ocaml/CMakeLists.txt
  25. @@ -2,14 +2,34 @@
  26. message(STATUS "Building ocaml from third-party")
  27.  
  28. set(OCAML_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/build")
  29. +set(OCAML_SRC "${CMAKE_CURRENT_BINARY_DIR}/ocaml_src.stamp")
  30. set(OCAML "${OCAML_PREFIX}/bin/ocaml")
  31. set(OCAMLC "${OCAML_PREFIX}/bin/ocamlc.opt")
  32. set(OCAMLOPT "${OCAML_PREFIX}/bin/ocamlopt.opt")
  33. -set(OCAMLBUILD "${OCAML_PREFIX}/bin/ocamlbuild.native")
  34. -set(OPAM_SRC "${CMAKE_CURRENT_BINARY_DIR}/opam")
  35. +set(OPAM_SRC "${CMAKE_CURRENT_BINARY_DIR}/opam_src.stamp")
  36. set(OPAM "${OCAML_PREFIX}/bin/opam")
  37. set(HACK_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../hphp/hack")
  38.  
  39. +if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
  40. + add_custom_command(
  41. + OUTPUT "${OCAML_SRC}"
  42. + COMMAND cmake -E touch "${OCAML_SRC}"
  43. + )
  44. +else()
  45. + # OCaml 4.05 has a custom configure script that doesn't support out of source
  46. + # builds; 4.07 uses autotools so hopefully we don't need this when we next
  47. + # update ocaml
  48. + add_custom_command(
  49. + OUTPUT "${OCAML_SRC}"
  50. + COMMAND
  51. + cmake -E copy_directory
  52. + "${CMAKE_CURRENT_SOURCE_DIR}/src"
  53. + "${CMAKE_CURRENT_BINARY_DIR}/src"
  54. + && cmake -E touch "${OCAML_SRC}"
  55. + )
  56. +endif()
  57. +
  58. +
  59. # TODO: what about dependencies so we rebuild ocaml when it changes?
  60. # NOTE: The weirdness building world.opt twice is because (at least on arm64)
  61. # ocaml (4.03) seems to have parallel build dependency problems.
  62. @@ -19,38 +39,18 @@ add_custom_command(
  63. COMMAND \$\(MAKE\) -k world.opt || true
  64. COMMAND \$\(MAKE\) -j1 world.opt
  65. COMMAND \$\(MAKE\) install
  66. - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/src"
  67. + DEPENDS "${OCAML_SRC}"
  68. + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/src"
  69. COMMENT "Compiling ocaml")
  70.  
  71. add_custom_command(
  72. - OUTPUT ${OCAMLBUILD}
  73. - # Hack up the path before building ocamlbuild.
  74. - # (OCamlBuild doesn't understand how to override its build tools properly -
  75. - # they call "ocamlc -where" directly from configure.make)
  76. - # This would be better as 'cmake -E env' but that's only available in cmake 3.1+
  77. - COMMAND /bin/bash -c "\
  78. - PATH='${OCAML_PREFIX}/bin:$ENV{PATH}' \
  79. - \$\(MAKE\) -f configure.make \
  80. - OCAML_NATIVE=true \
  81. - 'OCAMLBUILD_BINDIR=${OCAML_PREFIX}/bin' \
  82. - 'OCAMLBUILD_LIBDIR=${OCAML_PREFIX}/lib' \
  83. - 'OCAMLBUILD_MANDIR=${OCAML_PREFIX}/share/man' \
  84. - "
  85. - COMMAND /bin/bash -c "\
  86. - PATH='${OCAML_PREFIX}/bin:$ENV{PATH}' \
  87. - \$\(MAKE\) \
  88. - "
  89. - COMMAND \$\(MAKE\) install CHECK_IF_PREINSTALLED=false
  90. - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/ocamlbuild"
  91. - DEPENDS ${OCAMLC}
  92. - COMMENT "Compiling ocamlbuild")
  93. -
  94. -add_custom_command(
  95. - OUTPUT ${OPAM_SRC}
  96. - COMMAND ./fetch_and_setup_src.sh "${HACK_DIR}"
  97. - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
  98. + OUTPUT "${OPAM_SRC}"
  99. + COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/fetch_and_setup_src.sh" "${HACK_DIR}"
  100. + DEPENDS ./fetch_and_setup_src.sh
  101. COMMENT "Fetch opam full source code from internet")
  102.  
  103. +# `./configure` instead of `${CMAKE_CURRENT_SOURCE_DIR}/configure` because
  104. +# opam's source is extracted in the build directory
  105. add_custom_command(
  106. OUTPUT ${OPAM}
  107. COMMAND /bin/bash -c "\
  108. @@ -70,14 +70,14 @@ add_custom_command(
  109. PATH='${OCAML_PREFIX}/bin:$ENV{PATH}' \
  110. \$\(MAKE\) install \
  111. "
  112. - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/opam"
  113. + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/opam"
  114. DEPENDS ${OPAM_SRC} ${OCAMLC}
  115. COMMENT "Compiling opam")
  116.  
  117. set(OCAMLC_FOUND TRUE)
  118.  
  119. add_custom_target(ocaml
  120. - DEPENDS ${OCAMLC} ${OCAMLOPT} ${OCAMLBUILD} ${OPAM})
  121. + DEPENDS ${OCAMLC} ${OCAMLOPT} ${OPAM})
  122.  
  123. set(OCAML_EXECUTABLE ${OCAML} CACHE FILEPATH "path to ocaml" FORCE)
  124. mark_as_advanced(OCAML_EXECUTABLE)
  125. @@ -85,7 +85,5 @@ set(OCAMLC_EXECUTABLE ${OCAMLC} CACHE FILEPATH "path to ocamlc" FORCE)
  126. mark_as_advanced(OCAMLC_EXECUTABLE)
  127. set(OCAMLOPT_EXECUTABLE ${OCAMLOPT} CACHE FILEPATH "path to ocamlopt" FORCE)
  128. mark_as_advanced(OCAMLOPT_EXECUTABLE)
  129. -set(OCAMLBUILD_EXECUTABLE ${OCAMLBUILD} CACHE FILEPATH "path to ocamlbuild" FORCE)
  130. -mark_as_advanced(OCAMLBUILD_EXECUTABLE)
  131. set(OPAM_EXECUTABLE ${OPAM} CACHE FILEPATH "path to opam" FORCE)
  132. mark_as_advanced(OPAM_EXECUTABLE)
  133. diff --git a/ocaml/fetch_and_setup_src.sh b/ocaml/fetch_and_setup_src.sh
  134. index 1bc65ef..4a4377b 100755
  135. --- a/ocaml/fetch_and_setup_src.sh
  136. +++ b/ocaml/fetch_and_setup_src.sh
  137. @@ -15,7 +15,7 @@ if ! [ -f "${OPAM_PKG}" ]; then
  138. fi
  139. # TODO: add the signature check once the file is available from github
  140. # atm it is generated manually with openssl
  141. -EXPECTED="$(<checksum)"
  142. +EXPECTED="$(<"$(dirname $0)/checksum")"
  143. ACTUAL="$(openssl dgst -sha256 ${OPAM_PKG})"
  144. if [ "$EXPECTED" != "$ACTUAL" ]; then
  145. echo "Checksum error while checking ${OPAM_PKG}"
  146. @@ -25,3 +25,4 @@ fi
  147. rm -rf opam
  148. tar xzf "${OPAM_PKG}"
  149. mv "opam-full-${OPAM_VERSION}" opam
  150. +touch opam_src.stamp
  151. diff --git a/ocaml/ocamlbuild b/ocaml/ocamlbuild
  152. deleted file mode 160000
  153. index 0eb62b7..0000000
  154. --- a/ocaml/ocamlbuild
  155. +++ /dev/null
  156. @@ -1 +0,0 @@
  157. -Subproject commit 0eb62b72b5abd520484210125b18073338a634bc
  158. diff --git a/util/make-notices.hh b/util/make-notices.hh
  159. index 9884d7d..7acd96b 100644
  160. --- a/util/make-notices.hh
  161. +++ b/util/make-notices.hh
  162. @@ -1,4 +1,4 @@
  163. -<?hh
  164. +<?hh // partial
  165. /*
  166. * Copyright (c) 2015-present, Facebook, Inc.
  167. * All rights reserved.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement