diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2017-07-06 02:16:53 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-07-06 02:16:53 -0700 |
| commit | 7a87e919256fac941a1509b9c67b41c5298f26ac (patch) | |
| tree | 4a2407dcd7c14edea03a321e28975b1c4c121e7b | |
| parent | 92a12501f1ae652968ff462a864735df66ba2a26 (diff) | |
| parent | b1461da8c6adb5c51a5c12bffd628c7bbf9d68dd (diff) | |
| download | vcpkg-7a87e919256fac941a1509b9c67b41c5298f26ac.tar.gz vcpkg-7a87e919256fac941a1509b9c67b41c5298f26ac.zip | |
Merge pull request #1368 from atkawa7/rocksdb
[rocksdb] init port #1057
| -rw-r--r-- | ports/rocksdb/CONTROL | 4 | ||||
| -rw-r--r-- | ports/rocksdb/fix-building-both-static-and-shared.patch | 91 | ||||
| -rw-r--r-- | ports/rocksdb/fix-third-party-deps.patch | 64 | ||||
| -rw-r--r-- | ports/rocksdb/portfile.cmake | 51 |
4 files changed, 210 insertions, 0 deletions
diff --git a/ports/rocksdb/CONTROL b/ports/rocksdb/CONTROL new file mode 100644 index 000000000..2efbda7c3 --- /dev/null +++ b/ports/rocksdb/CONTROL @@ -0,0 +1,4 @@ +Source: rocksdb +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 000000000..c9742450b --- /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(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/fix-third-party-deps.patch b/ports/rocksdb/fix-third-party-deps.patch new file mode 100644 index 000000000..7f832d158 --- /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 new file mode 100644 index 000000000..a12ba4ca5 --- /dev/null +++ b/ports/rocksdb/portfile.cmake @@ -0,0 +1,51 @@ +include(vcpkg_common_functions) + +find_program(GIT git) + +if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + message(FATAL_ERROR "Rocksdb only supports x64") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO facebook/rocksdb + REF 18c63af6ef2b9f014c404b88488ae52e6fead03c + SHA512 8dd4d27768feba6d9ddb61debe6cae21fa6d25c27dc347cba3b28cc39d2c1fa860dba7c8adedba4b40883eccccca190b60941cf958855c6b70ec5a3b96c20ac5 + 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" +) + + +if(VCPKG_CRT_LINKAGE STREQUAL static) + set(WITH_MD_LIBRARY OFF) +else() + set(WITH_MD_LIBRARY ON) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DGIT_EXECUTABLE=${GIT} + -DGFLAGS=1 + -DSNAPPY=1 + -DLZ4=1 + -DZLIB=1 + -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} + -DFAIL_ON_WARNINGS=OFF + -DWITH_MD_LIBRARY=${WITH_MD_LIBRARY} + OPTIONS_DEBUG + -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake(DISABLE_PARALLEL) + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/rocksdb RENAME copyright) + +vcpkg_copy_pdbs() |
