From 49d00f460453fbbedd9cdee635720d0bc84de9cb Mon Sep 17 00:00:00 2001 From: atkawa7 Date: Wed, 28 Jun 2017 21:46:53 -0700 Subject: [PATCH] [rocksdb] fixed third party deps --- ports/rocksdb/CONTROL | 2 +- .../fix-building-both-static-and-shared.patch | 91 +++++++++++++++++++ ports/rocksdb/fix-third-party-deps.patch | 64 +++++++++++++ ports/rocksdb/portfile.cmake | 75 ++++----------- 4 files changed, 175 insertions(+), 57 deletions(-) create mode 100644 ports/rocksdb/fix-building-both-static-and-shared.patch create mode 100644 ports/rocksdb/fix-third-party-deps.patch diff --git a/ports/rocksdb/CONTROL b/ports/rocksdb/CONTROL index a9c87910493..2efbda7c339 100644 --- a/ports/rocksdb/CONTROL +++ b/ports/rocksdb/CONTROL @@ -1,4 +1,4 @@ Source: rocksdb -Version: 5.4.6 +Version: 2017-06-28-18c63af6ef2b9f014c404b88488ae52e6fead03c Description: A library that provides an embeddable, persistent key-value store for fast storage Build-Depends: snappy, lz4, gflags, zlib, gtest diff --git a/ports/rocksdb/fix-building-both-static-and-shared.patch b/ports/rocksdb/fix-building-both-static-and-shared.patch new file mode 100644 index 00000000000..78b863643c9 --- /dev/null +++ b/ports/rocksdb/fix-building-both-static-and-shared.patch @@ -0,0 +1,91 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cbbde8e..cb19649 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -315,10 +315,13 @@ endif() + + include_directories(${PROJECT_SOURCE_DIR}) + include_directories(${PROJECT_SOURCE_DIR}/include) +-include_directories(SYSTEM ${PROJECT_SOURCE_DIR}/third-party/gtest-1.7.0/fused-src) ++ + find_package(Threads REQUIRED) + +-add_subdirectory(third-party/gtest-1.7.0/fused-src/gtest) ++if(BUILD_TEST) ++ include_directories(SYSTEM ${PROJECT_SOURCE_DIR}/third-party/gtest-1.7.0/fused-src) ++ add_subdirectory(third-party/gtest-1.7.0/fused-src/gtest) ++endif() + + # Main library source code + +@@ -574,22 +577,28 @@ if(WITH_LIBRADOS) + list(APPEND THIRDPARTY_LIBS rados) + endif() + +-add_library(${ROCKSDB_STATIC_LIB} STATIC ${SOURCES}) +-target_link_libraries(${ROCKSDB_STATIC_LIB} ++if(BUILD_STATIC_LIBRARY) ++ add_library(${ROCKSDB_STATIC_LIB} STATIC ${SOURCES}) ++ target_link_libraries(${ROCKSDB_STATIC_LIB} + ${THIRDPARTY_LIBS} ${SYSTEM_LIBS}) +- +-if(WIN32) +- add_library(${ROCKSDB_IMPORT_LIB} SHARED ${SOURCES}) +- target_link_libraries(${ROCKSDB_IMPORT_LIB} +- ${THIRDPARTY_LIBS} ${SYSTEM_LIBS}) +- set_target_properties(${ROCKSDB_IMPORT_LIB} PROPERTIES +- COMPILE_DEFINITIONS "ROCKSDB_DLL;ROCKSDB_LIBRARY_EXPORTS") + if(MSVC) + set_target_properties(${ROCKSDB_STATIC_LIB} PROPERTIES +- COMPILE_FLAGS "/Fd${CMAKE_CFG_INTDIR}/${ROCKSDB_STATIC_LIB}.pdb") ++ COMPILE_FLAGS "/Fd${CMAKE_CFG_INTDIR}/${ROCKSDB_STATIC_LIB}.pdb") ++ endif() ++ set(INSTALL_TARGETS ${INSTALL_TARGETS} ${ROCKSDB_STATIC_LIB}) ++else() ++ if(WIN32) ++ add_library(${ROCKSDB_IMPORT_LIB} SHARED ${SOURCES}) ++ target_link_libraries(${ROCKSDB_IMPORT_LIB} ++ ${THIRDPARTY_LIBS} ${SYSTEM_LIBS}) + set_target_properties(${ROCKSDB_IMPORT_LIB} PROPERTIES ++ COMPILE_DEFINITIONS "ROCKSDB_DLL;ROCKSDB_LIBRARY_EXPORTS") ++ if(MSVC) ++ set_target_properties(${ROCKSDB_IMPORT_LIB} PROPERTIES + COMPILE_FLAGS "/Fd${CMAKE_CFG_INTDIR}/${ROCKSDB_IMPORT_LIB}.pdb") ++ endif() + endif() ++ set(INSTALL_TARGETS ${INSTALL_TARGETS} ${ROCKSDB_IMPORT_LIB}) + endif() + + option(WITH_JNI "build with JNI" OFF) +@@ -600,6 +609,7 @@ else() + message(STATUS "JNI library is disabled") + endif() + ++if(BUILD_TEST) + set(TESTS + cache/cache_test.cc + cache/lru_cache_test.cc +@@ -810,6 +820,7 @@ foreach(sourcefile ${C_TEST_EXES}) + add_dependencies(check ${exename}${ARTIFACT_SUFFIX}) + endforeach(sourcefile ${C_TEST_EXES}) + add_subdirectory(tools) ++endif() + + # Installation and packaging for Linux + if(NOT WIN32) +@@ -819,4 +830,15 @@ install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/rocksdb/" + COMPONENT devel + DESTINATION include/rocksdb) + set(CMAKE_INSTALL_PREFIX /usr) ++else() ++ install( ++ TARGETS ${INSTALL_TARGETS} ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++ ) ++endif() ++ ++if(NOT DISABLE_INSTALL_HEADERS) ++ install(DIRECTORY "include/rocksdb/" DESTINATION include/rocksdb) + endif() diff --git a/ports/rocksdb/fix-third-party-deps.patch b/ports/rocksdb/fix-third-party-deps.patch new file mode 100644 index 00000000000..7f832d1585a --- /dev/null +++ b/ports/rocksdb/fix-third-party-deps.patch @@ -0,0 +1,64 @@ +diff --git a/thirdparty.inc b/thirdparty.inc +index 9fffd9b..2e1ea9d 100644 +--- a/thirdparty.inc ++++ b/thirdparty.inc +@@ -21,10 +21,10 @@ set (THIRDPARTY_LIBS "") # Initialization, don't touch + # + # Edit these 4 lines to define paths to GFLAGS + # +-set(GFLAGS_HOME $ENV{THIRDPARTY_HOME}/Gflags.Library) +-set(GFLAGS_INCLUDE ${GFLAGS_HOME}/inc/include) +-set(GFLAGS_LIB_DEBUG ${GFLAGS_HOME}/bin/debug/amd64/gflags.lib) +-set(GFLAGS_LIB_RELEASE ${GFLAGS_HOME}/bin/retail/amd64/gflags.lib) ++set(GFLAGS_HOME ${CURRENT_INSTALLED_DIR}) ++set(GFLAGS_INCLUDE ${GFLAGS_HOME}/include) ++set(GFLAGS_LIB_DEBUG ${GFLAGS_HOME}/debug/lib/gflags.lib) ++set(GFLAGS_LIB_RELEASE ${GFLAGS_HOME}/lib/gflags.lib) + + # ================================================== GFLAGS ================================================== + # +@@ -65,10 +65,10 @@ endif () + # + # Edit these 4 lines to define paths to Snappy + # +-set(SNAPPY_HOME $ENV{THIRDPARTY_HOME}/Snappy.Library) +-set(SNAPPY_INCLUDE ${SNAPPY_HOME}/inc/inc) +-set(SNAPPY_LIB_DEBUG ${SNAPPY_HOME}/bin/debug/amd64/snappy.lib) +-set(SNAPPY_LIB_RELEASE ${SNAPPY_HOME}/bin/retail/amd64/snappy.lib) ++set(SNAPPY_HOME ${CURRENT_INSTALLED_DIR}) ++set(SNAPPY_INCLUDE ${SNAPPY_HOME}/include) ++set(SNAPPY_LIB_DEBUG ${SNAPPY_HOME}/debug/lib/snappy.lib) ++set(SNAPPY_LIB_RELEASE ${SNAPPY_HOME}/lib/snappy.lib) + + # + # Don't touch these lines +@@ -108,10 +108,10 @@ endif () + # + # Edit these 4 lines to define paths to LZ4 + # +-set(LZ4_HOME $ENV{THIRDPARTY_HOME}/LZ4.Library) +-set(LZ4_INCLUDE ${LZ4_HOME}/inc/include) +-set(LZ4_LIB_DEBUG ${LZ4_HOME}/bin/debug/amd64/lz4.lib) +-set(LZ4_LIB_RELEASE ${LZ4_HOME}/bin/retail/amd64/lz4.lib) ++set(LZ4_HOME ${CURRENT_INSTALLED_DIR}) ++set(LZ4_INCLUDE ${LZ4_HOME}/include) ++set(LZ4_LIB_DEBUG ${LZ4_HOME}/debug/lib/lz4.lib) ++set(LZ4_LIB_RELEASE ${LZ4_HOME}/lib/lz4.lib) + + # + # Don't touch these lines +@@ -151,10 +151,10 @@ endif () + # + # Edit these 4 lines to define paths to ZLIB + # +-set(ZLIB_HOME $ENV{THIRDPARTY_HOME}/ZLIB.Library) +-set(ZLIB_INCLUDE ${ZLIB_HOME}/inc/include) +-set(ZLIB_LIB_DEBUG ${ZLIB_HOME}/bin/debug/amd64/zlib.lib) +-set(ZLIB_LIB_RELEASE ${ZLIB_HOME}/bin/retail/amd64/zlib.lib) ++set(ZLIB_HOME ${CURRENT_INSTALLED_DIR}) ++set(ZLIB_INCLUDE ${ZLIB_HOME}/include) ++set(ZLIB_LIB_DEBUG ${ZLIB_HOME}/debug/lib/zlibd.lib) ++set(ZLIB_LIB_RELEASE ${ZLIB_HOME}/lib/zlib.lib) + + # + # Don't touch these lines diff --git a/ports/rocksdb/portfile.cmake b/ports/rocksdb/portfile.cmake index f47c2fb1917..5c674152166 100644 --- a/ports/rocksdb/portfile.cmake +++ b/ports/rocksdb/portfile.cmake @@ -6,73 +6,31 @@ if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") message(FATAL_ERROR "Rocksdb only supports x64") endif() -set(VCPKG_PLATFORM_TOOLSET v140) -set(MSVS_VERSION 2015) - - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/rocksdb - REF v5.4.6 - SHA512 fe804335ef1b6e37df9b76ab665c1071253d62848878732e541e88444d9d226a1ac70a53a51641e1f554974711781d524d5069ac672589de7d2ec59874ec9290 + REF 18c63af6ef2b9f014c404b88488ae52e6fead03c + SHA512 8dd4d27768feba6d9ddb61debe6cae21fa6d25c27dc347cba3b28cc39d2c1fa860dba7c8adedba4b40883eccccca190b60941cf958855c6b70ec5a3b96c20ac5 HEAD_REF master ) -LIST(APPEND ENV_REPLACE_LIST - "set(GFLAGS_HOME \${CURRENT_INSTALLED_DIR})" - "set(GFLAGS_INCLUDE \${GFLAGS_HOME}/include)" - "set(GFLAGS_LIB_DEBUG \${GFLAGS_HOME}/debug/lib/gflags.lib)" - "set(GFLAGS_LIB_RELEASE \${GFLAGS_HOME}/lib/gflags.lib)" - "set(SNAPPY_HOME \${CURRENT_INSTALLED_DIR})" - "set(SNAPPY_INCLUDE \${SNAPPY_HOME}/include)" - "set(SNAPPY_LIB_DEBUG \${SNAPPY_HOME}/debug/lib/snappy.lib)" - "set(SNAPPY_LIB_RELEASE \${SNAPPY_HOME}/lib/snappy.lib)" - "set(LZ4_HOME \${CURRENT_INSTALLED_DIR})" - "set(LZ4_INCLUDE \${LZ4_HOME}/include)" - "set(LZ4_LIB_DEBUG \${LZ4_HOME}/debug/lib/lz4.lib)" - "set(LZ4_LIB_RELEASE \${LZ4_HOME}/lib/lz4.lib)" - "set(ZLIB_HOME \${CURRENT_INSTALLED_DIR})" - "set(ZLIB_INCLUDE \${ZLIB_HOME}/include)" - "set(ZLIB_LIB_DEBUG \${ZLIB_HOME}/debug/lib/zlibd.lib)" - "set(ZLIB_LIB_RELEASE \${ZLIB_HOME}/lib/zlib.lib)" -) -LIST(APPEND ENV_FIND_LIST - "set(GFLAGS_HOME \$ENV{THIRDPARTY_HOME}/Gflags.Library)" - "set(GFLAGS_INCLUDE \${GFLAGS_HOME}/inc/include)" - "set(GFLAGS_LIB_DEBUG \${GFLAGS_HOME}/bin/debug/amd64/gflags.lib)" - "set(GFLAGS_LIB_RELEASE \${GFLAGS_HOME}/bin/retail/amd64/gflags.lib)" - "set(SNAPPY_HOME \$ENV{THIRDPARTY_HOME}/Snappy.Library)" - "set(SNAPPY_INCLUDE \${SNAPPY_HOME}/inc/inc)" - "set(SNAPPY_LIB_DEBUG \${SNAPPY_HOME}/bin/debug/amd64/snappy.lib)" - "set(SNAPPY_LIB_RELEASE \${SNAPPY_HOME}/bin/retail/amd64/snappy.lib)" - "set(LZ4_HOME \$ENV{THIRDPARTY_HOME}/LZ4.Library)" - "set(LZ4_INCLUDE \${LZ4_HOME}/inc/include)" - "set(LZ4_LIB_DEBUG \${LZ4_HOME}/bin/debug/amd64/lz4.lib)" - "set(LZ4_LIB_RELEASE \${LZ4_HOME}/bin/retail/amd64/lz4.lib)" - "set(ZLIB_HOME \$ENV{THIRDPARTY_HOME}/ZLIB.Library)" - "set(ZLIB_INCLUDE \${ZLIB_HOME}/inc/include)" - "set(ZLIB_LIB_DEBUG \${ZLIB_HOME}/bin/debug/amd64/zlib.lib)" - "set(ZLIB_LIB_RELEASE \${ZLIB_HOME}/bin/retail/amd64/zlib.lib)" +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + "${CMAKE_CURRENT_LIST_DIR}/fix-building-both-static-and-shared.patch" + "${CMAKE_CURRENT_LIST_DIR}/fix-third-party-deps.patch" ) -message(STATUS "${SOURCE_PATH}/thirdparty.inc is here") - -LIST( LENGTH ENV_REPLACE_LIST COUNT ) -MATH(EXPR COUNT "${COUNT}-1") - -file(READ "${SOURCE_PATH}/thirdparty.inc" THIRDY_PARTY) -foreach( INDEX RANGE ${COUNT}) - list (GET ENV_REPLACE_LIST ${INDEX} TO_REPLACE) - list (GET ENV_FIND_LIST ${INDEX} TO_FIND) - message(STATUS "Replacing ${TO_FIND} to ${TO_REPLACE} ") - string(REPLACE ${TO_FIND} ${TO_REPLACE} THIRDY_PARTY "${THIRDY_PARTY}") -endforeach() - -file(WRITE "${SOURCE_PATH}/thirdparty.inc" "${THIRDY_PARTY}") +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + set(BUILD_STATIC_LIBRARY ON) +else() + set(BUILD_STATIC_LIBRARY OFF) +endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DGIT_EXECUTABLE=${GIT} -DGFLAGS=1 @@ -80,7 +38,12 @@ vcpkg_configure_cmake( -DLZ4=1 -DZLIB=1 -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} + -DBUILD_STATIC_LIBRARY=${BUILD_STATIC_LIBRARY} + -DFAIL_ON_WARNINGS=OFF + OPTIONS_DEBUG + -DDISABLE_INSTALL_HEADERS=ON ) +vcpkg_install_cmake(DISABLE_PARALLEL) -vcpkg_build_cmake() +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/rocksdb RENAME copyright)