From bbde2e037bf3d1a8425a396de86f5b67d6955154 Mon Sep 17 00:00:00 2001 From: Bassam Tabbara Date: Sat, 5 Nov 2016 13:44:20 -0700 Subject: [PATCH] cmake: build without leveldb now that monitors support rocksdb, fix the build system to enable compiling without leveldb. kv_backend would need to be set correctly if you were to to use rocksdb for the monitors. Signed-off-by: Bassam Tabbara --- CMakeLists.txt | 17 ++++++++--------- src/civetweb | 2 +- src/include/config-h.in.cmake | 3 +++ src/kv/CMakeLists.txt | 6 +++++- src/kv/KeyValueDB.cc | 6 ++++++ src/test/common/CMakeLists.txt | 2 +- 6 files changed, 24 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2928a946dda3d..63f21f2256ba4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,11 +65,6 @@ include_directories( ${PROJECT_BINARY_DIR}/src/include ${PROJECT_SOURCE_DIR}/src) -if(LEVELDB_PREFIX) - include_directories(${LEVELDB_PREFIX}/include) - link_directories(${LEVELDB_PREFIX}/lib) -endif() - if(OFED_PREFIX) include_directories(${OFED_PREFIX}/include) link_directories(${OFED_PREFIX}/lib) @@ -240,10 +235,14 @@ option(WITH_KVS "Key value store is here" ON) option(WITH_RBD "Remote block storage is here" ON) option(WITH_LEVELDB "LevelDB is here" ON) -if(${WITH_LEVELDB}) -find_package(leveldb REQUIRED) -find_file(HAVE_LEVELDB_FILTER_POLICY leveldb/filter_policy.h PATHS ${LEVELDB_INCLUDE_DIR}) -endif(${WITH_LEVELDB}) +if(WITH_LEVELDB) + if(LEVELDB_PREFIX) + include_directories(${LEVELDB_PREFIX}/include) + link_directories(${LEVELDB_PREFIX}/lib) + endif() + find_package(leveldb REQUIRED) + find_file(HAVE_LEVELDB_FILTER_POLICY leveldb/filter_policy.h PATHS ${LEVELDB_INCLUDE_DIR}) +endif(WITH_LEVELDB) find_package(atomic_ops REQUIRED) message(STATUS "${ATOMIC_OPS_LIBRARIES}") diff --git a/src/civetweb b/src/civetweb index cc0dfa11dadfc..e12494070432b 160000 --- a/src/civetweb +++ b/src/civetweb @@ -1 +1 @@ -Subproject commit cc0dfa11dadfca8a7021687aa537a3d377f244cb +Subproject commit e12494070432b85d5ffce7dece81c0baad457a5f diff --git a/src/include/config-h.in.cmake b/src/include/config-h.in.cmake index c320b036662b9..983fe3684057d 100644 --- a/src/include/config-h.in.cmake +++ b/src/include/config-h.in.cmake @@ -132,6 +132,9 @@ /* define if radosgw enabled */ #cmakedefine WITH_RADOSGW +/* define if leveldb is enabled */ +#cmakedefine WITH_LEVELDB + /* define if radosgw's asio frontend enabled */ #cmakedefine WITH_RADOSGW_ASIO_FRONTEND diff --git a/src/kv/CMakeLists.txt b/src/kv/CMakeLists.txt index 1a502a9b93e4b..85857b9d1fa1e 100644 --- a/src/kv/CMakeLists.txt +++ b/src/kv/CMakeLists.txt @@ -1,8 +1,12 @@ set(kv_srcs KeyValueDB.cc - LevelDBStore.cc MemDB.cc RocksDBStore.cc) + +if (WITH_LEVELDB) + list(APPEND kv_srcs LevelDBStore.cc) +endif (WITH_LEVELDB) + add_library(kv_objs OBJECT ${kv_srcs}) add_library(kv STATIC $) target_include_directories(kv_objs BEFORE PUBLIC ${ROCKSDB_INCLUDE_DIR}) diff --git a/src/kv/KeyValueDB.cc b/src/kv/KeyValueDB.cc index b1ec4529d0641..7a917b7a1836f 100644 --- a/src/kv/KeyValueDB.cc +++ b/src/kv/KeyValueDB.cc @@ -2,7 +2,9 @@ // vim: ts=8 sw=2 smarttab #include "KeyValueDB.h" +#ifdef WITH_LEVELDB #include "LevelDBStore.h" +#endif #include "MemDB.h" #ifdef HAVE_LIBROCKSDB #include "RocksDBStore.h" @@ -15,9 +17,11 @@ KeyValueDB *KeyValueDB::create(CephContext *cct, const string& type, const string& dir, void *p) { +#ifdef WITH_LEVELDB if (type == "leveldb") { return new LevelDBStore(cct, dir); } +#endif #ifdef HAVE_KINETIC if (type == "kinetic" && cct->check_experimental_feature_enabled("kinetic")) { @@ -39,9 +43,11 @@ KeyValueDB *KeyValueDB::create(CephContext *cct, const string& type, int KeyValueDB::test_init(const string& type, const string& dir) { +#ifdef WITH_LEVELDB if (type == "leveldb") { return LevelDBStore::_test_init(dir); } +#endif #ifdef HAVE_KINETIC if (type == "kinetic") { return KineticStore::_test_init(g_ceph_context); diff --git a/src/test/common/CMakeLists.txt b/src/test/common/CMakeLists.txt index bc5acb7d4390c..3f71c209be13b 100644 --- a/src/test/common/CMakeLists.txt +++ b/src/test/common/CMakeLists.txt @@ -6,7 +6,7 @@ add_executable(get_command_descriptions target_link_libraries(get_command_descriptions mon global - leveldb + ${LEVELDB_LIBRARIES} ${EXTRALIBS} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} -- 2.39.5