diff --git a/ports/rocksdb/fix-third-party-deps.patch b/ports/rocksdb/0001-third-party.patch similarity index 77% rename from ports/rocksdb/fix-third-party-deps.patch rename to ports/rocksdb/0001-third-party.patch index 7f832d1585a..c28181623a1 100644 --- a/ports/rocksdb/fix-third-party-deps.patch +++ b/ports/rocksdb/0001-third-party.patch @@ -1,8 +1,17 @@ +From 533ab1b3f3f4286aa756e965e22aa88612479e01 Mon Sep 17 00:00:00 2001 +From: Robert Schumacher +Date: Fri, 23 Feb 2018 01:44:44 -0800 +Subject: [PATCH 1/3] third-party + +--- + thirdparty.inc | 32 ++++++++++++++++---------------- + 1 file changed, 16 insertions(+), 16 deletions(-) + diff --git a/thirdparty.inc b/thirdparty.inc -index 9fffd9b..2e1ea9d 100644 +index a364d1d..1d85d50 100644 --- a/thirdparty.inc +++ b/thirdparty.inc -@@ -21,10 +21,10 @@ set (THIRDPARTY_LIBS "") # Initialization, don't touch +@@ -19,10 +19,10 @@ set (THIRDPARTY_LIBS "") # Initialization, don't touch # # Edit these 4 lines to define paths to GFLAGS # @@ -12,12 +21,12 @@ index 9fffd9b..2e1ea9d 100644 -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) ++find_library(GFLAGS_LIB_DEBUG NAMES gflags gflags_static) ++set(GFLAGS_LIB_RELEASE ${GFLAGS_LIB_DEBUG}) # ================================================== GFLAGS ================================================== # -@@ -65,10 +65,10 @@ endif () +@@ -63,10 +63,10 @@ endif () # # Edit these 4 lines to define paths to Snappy # @@ -32,7 +41,7 @@ index 9fffd9b..2e1ea9d 100644 # # Don't touch these lines -@@ -108,10 +108,10 @@ endif () +@@ -106,10 +106,10 @@ endif () # # Edit these 4 lines to define paths to LZ4 # @@ -47,7 +56,7 @@ index 9fffd9b..2e1ea9d 100644 # # Don't touch these lines -@@ -151,10 +151,10 @@ endif () +@@ -149,10 +149,10 @@ endif () # # Edit these 4 lines to define paths to ZLIB # @@ -62,3 +71,6 @@ index 9fffd9b..2e1ea9d 100644 # # Don't touch these lines +-- +2.16.2.windows.1 + diff --git a/ports/rocksdb/0002-disable-gtest.patch b/ports/rocksdb/0002-disable-gtest.patch new file mode 100644 index 00000000000..8d42bbaf153 --- /dev/null +++ b/ports/rocksdb/0002-disable-gtest.patch @@ -0,0 +1,25 @@ +From f1ecf23b8a10ab5a917da4a39fba343a00cab1a9 Mon Sep 17 00:00:00 2001 +From: Robert Schumacher +Date: Fri, 23 Feb 2018 01:44:57 -0800 +Subject: [PATCH 2/3] disable gtest + +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5fb551a..faffc91 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -393,7 +393,7 @@ 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) ++#add_subdirectory(third-party/gtest-1.7.0/fused-src/gtest) + + # Main library source code + +-- +2.16.2.windows.1 + diff --git a/ports/rocksdb/0003-only-build-one-flavor.patch b/ports/rocksdb/0003-only-build-one-flavor.patch new file mode 100644 index 00000000000..d9b4cf6e5a3 --- /dev/null +++ b/ports/rocksdb/0003-only-build-one-flavor.patch @@ -0,0 +1,48 @@ +From f77366e2bf8c136990b89ab235af8e0cf0e566f4 Mon Sep 17 00:00:00 2001 +From: Robert Schumacher +Date: Fri, 23 Feb 2018 01:45:18 -0800 +Subject: [PATCH 3/3] only build one flavor + +--- + CMakeLists.txt | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index faffc91..89dc537 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -723,6 +723,7 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS) + + install(DIRECTORY include/rocksdb COMPONENT devel DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + ++ if(NOT ROCKSDB_DISABLE_INSTALL_STATIC_LIB) + install( + TARGETS ${ROCKSDB_STATIC_LIB} + EXPORT RocksDBTargets +@@ -730,15 +731,23 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS) + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ) ++ else() ++ set_target_properties(${ROCKSDB_STATIC_LIB} PROPERTIES EXCLUDE_FROM_ALL TRUE) ++ endif() + ++ if(NOT ROCKSDB_DISABLE_INSTALL_SHARED_LIB) + install( + TARGETS ${ROCKSDB_SHARED_LIB} + EXPORT RocksDBTargets + COMPONENT runtime + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + ) ++ else() ++ set_target_properties(${ROCKSDB_SHARED_LIB} PROPERTIES EXCLUDE_FROM_ALL TRUE) ++ endif() + + install( + EXPORT RocksDBTargets +-- +2.16.2.windows.1 + diff --git a/ports/rocksdb/CONTROL b/ports/rocksdb/CONTROL index 59850ff0337..d9e8585f292 100644 --- a/ports/rocksdb/CONTROL +++ b/ports/rocksdb/CONTROL @@ -1,4 +1,4 @@ Source: rocksdb -Version: 2017-06-28-18c63af6ef2b9f014c404b88488ae52e6fead03c-1 +Version: 5.10.3 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 deleted file mode 100644 index c9742450b2d..00000000000 --- a/ports/rocksdb/fix-building-both-static-and-shared.patch +++ /dev/null @@ -1,91 +0,0 @@ -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(NOT BUILD_SHARED_LIBS) -+ 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/portfile.cmake b/ports/rocksdb/portfile.cmake index a12ba4ca51e..1eb0c11654b 100644 --- a/ports/rocksdb/portfile.cmake +++ b/ports/rocksdb/portfile.cmake @@ -9,25 +9,28 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/rocksdb - REF 18c63af6ef2b9f014c404b88488ae52e6fead03c - SHA512 8dd4d27768feba6d9ddb61debe6cae21fa6d25c27dc347cba3b28cc39d2c1fa860dba7c8adedba4b40883eccccca190b60941cf958855c6b70ec5a3b96c20ac5 + REF rocksdb-5.10.3 + SHA512 2443e993271e0fbcbb3bfedba72cb9ecf109705f8cd0d7184abe10784646c3111e06ed2bd8456a2773990e5670151a623094632b33c9e36380ba6ad003977044 HEAD_REF master ) 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" + "${CMAKE_CURRENT_LIST_DIR}/0001-third-party.patch" + "${CMAKE_CURRENT_LIST_DIR}/0002-disable-gtest.patch" + "${CMAKE_CURRENT_LIST_DIR}/0003-only-build-one-flavor.patch" ) - -if(VCPKG_CRT_LINKAGE STREQUAL static) +if(VCPKG_CRT_LINKAGE STREQUAL "static") set(WITH_MD_LIBRARY OFF) else() set(WITH_MD_LIBRARY ON) endif() +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ROCKSDB_DISABLE_INSTALL_SHARED_LIB) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ROCKSDB_DISABLE_INSTALL_STATIC_LIB) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -37,15 +40,23 @@ vcpkg_configure_cmake( -DSNAPPY=1 -DLZ4=1 -DZLIB=1 - -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} + -DWITH_TESTS=OFF + -DROCKSDB_INSTALL_ON_WINDOWS=ON -DFAIL_ON_WARNINGS=OFF -DWITH_MD_LIBRARY=${WITH_MD_LIBRARY} - OPTIONS_DEBUG - -DDISABLE_INSTALL_HEADERS=ON + -DROCKSDB_DISABLE_INSTALL_SHARED_LIB=${ROCKSDB_DISABLE_INSTALL_SHARED_LIB} + -DROCKSDB_DISABLE_INSTALL_STATIC_LIB=${ROCKSDB_DISABLE_INSTALL_STATIC_LIB} + -DROCKSDB_VERSION=5.10.3 + -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} ) -vcpkg_install_cmake(DISABLE_PARALLEL) +vcpkg_install_cmake() -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/rocksdb RENAME copyright) +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/rocksdb) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(INSTALL ${SOURCE_PATH}/LICENSE.Apache DESTINATION ${CURRENT_PACKAGES_DIR}/share/rocksdb RENAME copyright) +file(INSTALL ${SOURCE_PATH}/LICENSE.leveldb DESTINATION ${CURRENT_PACKAGES_DIR}/share/rocksdb) vcpkg_copy_pdbs()