From eb52c869d5a3672a85b9dec25b9e372e57239bcf Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Tue, 23 Jul 2019 14:43:50 -0700 Subject: [PATCH] cmake: improve build inst for cephsqlite Notably, find SQLite and build the test code. Signed-off-by: Patrick Donnelly --- CMakeLists.txt | 9 ++++++++- cmake/modules/FindSQLite3.cmake | 10 ++++++++++ src/CMakeLists.txt | 4 ++-- src/test/CMakeLists.txt | 5 +++++ 4 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 cmake/modules/FindSQLite3.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e41b367ff330..1c44b7fc05def 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -280,7 +280,14 @@ endif(WITH_QATZIP) # needs mds and? XXX option(WITH_LIBCEPHFS "libcephfs client library" ON) -option(WITH_LIBCEPHSQLITE "libcephsqlite client library" ON) + +find_package(SQLite3) +if(SQLITE3_FOUND) + option(WITH_LIBCEPHSQLITE "libcephsqlite client library" ON) +else() + message(WARNING "disabling WITH_LIBCEPHSQLITE, which depends on SQLite3") + set(WITH_LIBCEPHSQLITE OFF) +endif() # key-value store option(WITH_KVS "Key value store is here" ON) diff --git a/cmake/modules/FindSQLite3.cmake b/cmake/modules/FindSQLite3.cmake new file mode 100644 index 0000000000000..3d96d66524e13 --- /dev/null +++ b/cmake/modules/FindSQLite3.cmake @@ -0,0 +1,10 @@ +find_path(SQLITE3_INCLUDE_DIR NAMES sqlite3.h PATHS /usr/include /usr/local/include) +find_library(SQLITE3_LIBRARY NAMES sqlite3) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(SQLITE3 DEFAULT_MSG SQLITE3_LIBRARY SQLITE3_INCLUDE_DIR) + +if(SQLITE3_FOUND) + set(SQLITE3_LIBRARIES ${SQLITE3_LIBRARY}) + set(SQLITE3_INCLUDE_DIRS ${SQLITE3_INCLUDE_DIR}) +endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cd387786d8c0d..dc5de2c6c1a07 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -806,8 +806,8 @@ endif(WITH_LIBCEPHFS) if(WITH_LIBCEPHSQLITE) set(libcephsqlite_srcs libcephsqlite.cc) add_library(cephsqlite ${CEPH_SHARED} ${libcephsqlite_srcs}) - target_link_libraries(cephsqlite PRIVATE client ceph-common - ${CRYPTO_LIBS} ${EXTRALIBS}) + set_target_properties(cephsqlite PROPERTIES COMPILE_FLAGS "-I${SQLITE3_INCLUDE_DIRS}") + target_link_libraries(cephsqlite radosstriper librados ${SQLITE3_LIBRARIES} ${EXTRALIBS}) if(ENABLE_SHARED) set_target_properties(cephsqlite PROPERTIES OUTPUT_NAME cephsqlite diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index 599747073a17e..b8a7e5f7c794c 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -961,4 +961,9 @@ add_ceph_unittest(unittest_any) add_executable(unittest_weighted_shuffle test_weighted_shuffle.cc) add_ceph_unittest(unittest_weighted_shuffle) +if(WITH_LIBCEPHSQLITE) + add_executable(test_libcephsqlite test_libcephsqlite.cc) + target_link_libraries(test_libcephsqlite cephsqlite radosstriper librados) +endif(WITH_LIBCEPHSQLITE) + #make check ends here -- 2.39.5