From e4a3d1dfcf188ed8ceecfa4745df4c5bb2ade3af Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Wed, 24 May 2023 18:26:02 +0800 Subject: [PATCH] fix: link rocksdb shared library --- cmake/cmake.options | 6 ++++++ cmake/rocksdb_CMakeLists.txt.in | 35 ++++++++++++++++++++++++--------- contrib/CMakeLists.txt | 2 ++ 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/cmake/cmake.options b/cmake/cmake.options index 3bc5e202a5..555b72cbdf 100644 --- a/cmake/cmake.options +++ b/cmake/cmake.options @@ -77,6 +77,12 @@ ELSEIF (TD_DARWIN_64) ENDIF () ENDIF () +option( + BUILD_GEOS + "If build geos on Windows" + ON + ) + option( BUILD_SHARED_LIBS "" diff --git a/cmake/rocksdb_CMakeLists.txt.in b/cmake/rocksdb_CMakeLists.txt.in index ba4a404af6..e100b3a932 100644 --- a/cmake/rocksdb_CMakeLists.txt.in +++ b/cmake/rocksdb_CMakeLists.txt.in @@ -1,11 +1,28 @@ # rocksdb -ExternalProject_Add(rocksdb - GIT_REPOSITORY https://github.com/facebook/rocksdb.git - GIT_TAG v8.1.1 - SOURCE_DIR "${TD_CONTRIB_DIR}/rocksdb" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - TEST_COMMAND "" - ) + +find_library(ROCKSDB_LIB NAMES rocksdb) +find_path(ROCKSDB_INCLUDE_DIR NAMES rocksdb/db.h) + +if (ROCKSDB_LIB AND ROCKSDB_INCLUDE_DIR) + set(ROCKSDB_FOUND TRUE) +endif() + +if(ROCKSDB_FOUND) + message(STATUS "Found rocksdb") +else() + message(STATUS "Building rocksdb from source") + + ExternalProject_Add(rocksdb + GIT_REPOSITORY https://github.com/facebook/rocksdb.git + GIT_TAG v8.1.1 + SOURCE_DIR "${TD_CONTRIB_DIR}/rocksdb" + BINARY_DIR "${TD_CONTRIB_DIR}/rocksdb" + CONFIGURE_COMMAND "" + BUILD_COMMAND COMMAND $(MAKE) install-shared -j8 + INSTALL_COMMAND "" + TEST_COMMAND "" + ) +endif() + + diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index b3333dee99..e3a0f72959 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -226,6 +226,7 @@ if(${BUILD_WITH_LEVELDB}) endif(${BUILD_WITH_LEVELDB}) # rocksdb +if (FALSE) # To support rocksdb build on ubuntu: sudo apt-get install libgflags-dev if(${BUILD_WITH_ROCKSDB}) if(${TD_LINUX}) @@ -276,6 +277,7 @@ if(${BUILD_WITH_ROCKSDB}) PUBLIC $ ) endif(${BUILD_WITH_ROCKSDB}) +endif() # lucene # To support build on ubuntu: sudo apt-get install libboost-all-dev