[rocksdb] Update

This commit is contained in:
Robert Schumacher 2018-02-23 03:27:49 -08:00
parent e3dda1a82d
commit 43172e2318
6 changed files with 115 additions and 110 deletions

View File

@ -1,8 +1,17 @@
From 533ab1b3f3f4286aa756e965e22aa88612479e01 Mon Sep 17 00:00:00 2001
From: Robert Schumacher <roschuma@microsoft.com>
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

View File

@ -0,0 +1,25 @@
From f1ecf23b8a10ab5a917da4a39fba343a00cab1a9 Mon Sep 17 00:00:00 2001
From: Robert Schumacher <roschuma@microsoft.com>
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

View File

@ -0,0 +1,48 @@
From f77366e2bf8c136990b89ab235af8e0cf0e566f4 Mon Sep 17 00:00:00 2001
From: Robert Schumacher <roschuma@microsoft.com>
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

View File

@ -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

View File

@ -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()

View File

@ -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()