]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: build without leveldb
authorBassam Tabbara <bassam.tabbara@quantum.com>
Sat, 5 Nov 2016 20:44:20 +0000 (13:44 -0700)
committerBassam Tabbara <bassam.tabbara@quantum.com>
Wed, 9 Nov 2016 18:29:48 +0000 (10:29 -0800)
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 <bassam.tabbara@quantum.com>
CMakeLists.txt
src/civetweb
src/include/config-h.in.cmake
src/kv/CMakeLists.txt
src/kv/KeyValueDB.cc
src/test/common/CMakeLists.txt

index 2928a946dda3d52b28a38181e6332b531c389eba..63f21f2256ba4191d3686f0d5d64b6dcb475d78b 100644 (file)
@@ -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}")
index cc0dfa11dadfca8a7021687aa537a3d377f244cb..e12494070432b85d5ffce7dece81c0baad457a5f 160000 (submodule)
@@ -1 +1 @@
-Subproject commit cc0dfa11dadfca8a7021687aa537a3d377f244cb
+Subproject commit e12494070432b85d5ffce7dece81c0baad457a5f
index c320b036662b9f40bf907eebd72faa39716f60ac..983fe3684057dd93a645ab5940c363ef8e429e44 100644 (file)
 /* 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
 
index 1a502a9b93e4bb63992cd28d01514f10e0e42541..85857b9d1fa1ec07631f89a955578c5428313c6a 100644 (file)
@@ -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_OBJECTS:kv_objs>)
 target_include_directories(kv_objs BEFORE PUBLIC ${ROCKSDB_INCLUDE_DIR})
index b1ec4529d0641760f311b5db411763383d514fea..7a917b7a1836f1c9304b3d827359671268feaace 100644 (file)
@@ -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);
index bc5acb7d4390c42ffbd4c0b0652ea03e73cb98e9..3f71c209be13b55ead2461de4b2db62830096a9e 100644 (file)
@@ -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}