common/util.cc)
add_library(common_util_obj OBJECT ${common_util_src})
add_library(mon STATIC ${lib_mon_srcs} $<TARGET_OBJECTS:mon_common_objs>
- $<TARGET_OBJECTS:os_mon_objs> $<TARGET_OBJECTS:osd_mon_objs>
+ $<TARGET_OBJECTS:kv_objs> $<TARGET_OBJECTS:osd_mon_objs>
$<TARGET_OBJECTS:common_util_obj>)
set(ceph_mon_srcs
os/filestore/XfsFileStoreBackend.cc
os/fs/XFS.cc)
endif(${HAVE_XFS})
-set(libkv_srcs
- kv/LevelDBStore.cc
- kv/RocksDBStore.cc
- kv/KeyValueDB.cc)
set(libos_srcs
os/ObjectStore.cc
os/Transaction.cc
os/bluestore/FreelistManager.cc
os/bluestore/StupidAllocator.cc
os/fs/FS.cc
- ${libkv_srcs}
${libos_xfs_srcs})
-add_custom_command(OUTPUT "${CMAKE_SOURCE_DIR}/src/rocksdb/librocksdb.a"
- COMMAND cd ${CMAKE_SOURCE_DIR}/src/rocksdb && EXTRA_CXXFLAGS=-fPIC PORTABLE=1 make static_lib)
+# make rocksdb statically
+add_custom_target(build_rocksdb
+ COMMAND
+ EXTRA_CXXFLAGS=-fPIC PORTABLE=1 make static_lib
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/rocksdb
+ COMMENT "rocksdb building")
-set(os_mon_files
- kv/LevelDBStore.cc)
-add_library(os_mon_objs OBJECT ${os_mon_files})
-add_library(os STATIC ${libos_srcs}
- $<TARGET_OBJECTS:os_mon_objs>
- "${CMAKE_SOURCE_DIR}/src/rocksdb/librocksdb.a")
-target_link_libraries(os bz2 z "${CMAKE_SOURCE_DIR}/src/rocksdb/librocksdb.a")
+# add a dummy target to attach librocksdb.a and it's include_directories
+add_library(rocksdb INTERFACE)
+set_target_properties(rocksdb PROPERTIES INTERFACE_LINK_LIBRARIES "${CMAKE_SOURCE_DIR}/src/rocksdb/librocksdb.a")
+add_dependencies(rocksdb build_rocksdb)
+target_include_directories(rocksdb INTERFACE "${CMAKE_SOURCE_DIR}/src/rocksdb/include")
+
+add_subdirectory(kv)
+
+add_library(os STATIC ${libos_srcs} $<TARGET_OBJECTS:kv_objs>)
if(${HAVE_LIBAIO})
target_link_libraries(os aio)
endif(${HAVE_LIBAIO})
-target_link_libraries(os leveldb snappy)
-target_include_directories(os PUBLIC "${CMAKE_SOURCE_DIR}/src/rocksdb/include")
+target_link_libraries(os kv leveldb snappy rocksdb)
set(cls_references_files objclass/class_api.cc)
add_library(cls_references_objs OBJECT ${cls_references_files})
add_executable(get_command_descriptions
common/get_command_descriptions.cc
${CMAKE_SOURCE_DIR}/src/common/TextTable.cc
- $<TARGET_OBJECTS:os_mon_objs>
$<TARGET_OBJECTS:heap_profiler_objs>
)
target_link_libraries(get_command_descriptions
set_target_properties(unittest_snap_mapper PROPERTIES COMPILE_FLAGS
${UNITTEST_CXX_FLAGS})
-#TODO: rocksdb unittests
-if(WITH_SLIBROCKSDB)
-# unittest_rocksdb_option_static
-add_executable(unittest_rocksdb_option_static EXCLUDE_FROM_ALL
- objectstore/TestRocksdbOptionParse.cc
- $<TARGET_OBJECTS:heap_profiler_objs>
- )
-add_test(unittest_rocksdb_option_static unittest_rocksdb_option_static)
-add_dependencies(check unittest_rocksdb_option_static)
-target_link_libraries(unittest_rocksdb_option_static os librocksdb global ${CMAKE_DL_LIBS}
- ${BLKID_LIBRARIES} ${TCMALLOC_LIBS} ${UNITTEST_LIBS})
-set(UNITTEST_ROCKSDB_STATIC_FLAGS "-std=gnu++11 -Irocksdb/include")
-set_target_properties(unittest_rocksdb_option_static PROPERTIES COMPILE_FLAGS
- ${UNITTEST_CXX_FLAGS} ${LIBROCKSDB_CFLAGS} ${AM_CXXFLAGS} ${UNITTEST_ROCKSDB_STATIC_FLAGS})
-endif(WITH_SLIBROCKSDB)
-
-if(WITH_DLIBROCKSDB)
-# unittest_rocksdb_option
-add_executable(unittest_rocksdb_option EXCLUDE_FROM_ALL
- objectstore/TestRocksdbOptionParse.cc
- $<TARGET_OBJECTS:heap_profiler_objs>
- )
-add_test(unittest_rocksdb_option_static unittest_rocksdb_option)
-add_dependencies(check unittest_rocksdb_option)
-target_link_libraries(unittest_rocksdb_option os rocksdb global ${CMAKE_DL_LIBS}
- ${BLKID_LIBRARIES} ${TCMALLOC_LIBS} ${UNITTEST_LIBS})
-set(UNITTEST_ROCKSDB_FLAGS "-std=gnu++11")
-set_target_properties(unittest_rocksdb_option_static PROPERTIES COMPILE_FLAGS
- ${UNITTEST_CXX_FLAGS} ${LIBROCKSDB_CFLAGS} ${AM_CXXFLAGS} ${UNITTEST_ROCKSDB_STATIC_FLAGS})
-endif(WITH_DLIBROCKSDB)
-
# unittest_mds_authcap
add_executable(unittest_mds_authcap EXCLUDE_FROM_ALL
mds/TestMDSAuthCaps.cc
set_target_properties(unittest_async_compressor PROPERTIES COMPILE_FLAGS
${UNITTEST_CXX_FLAGS})
+# unittest_rocksdb_option
+add_executable(unittest_rocksdb_option EXCLUDE_FROM_ALL
+ objectstore/TestRocksdbOptionParse.cc
+ $<TARGET_OBJECTS:heap_profiler_objs>
+ )
+add_test(unittest_rocksdb_option unittest_rocksdb_option)
+add_dependencies(check unittest_rocksdb_option)
+target_link_libraries(unittest_rocksdb_option global os rocksdb ${CMAKE_DL_LIBS}
+ ${BLKID_LIBRARIES} ${TCMALLOC_LIBS} ${UNITTEST_LIBS})
+set_target_properties(unittest_rocksdb_option PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
+
+# unittest_bluefs
+add_executable(unittest_bluefs EXCLUDE_FROM_ALL objectstore/test_bluefs.cc)
+add_test(unittest_bluefs unittest_bluefs)
+add_dependencies(check unittest_bluefs)
+target_link_libraries(unittest_bluefs os global ${UNITTEST_LIBS})
+set_target_properties(unittest_bluefs PROPERTIES COMPILE_FLAGS
+ ${UNITTEST_CXX_FLAGS})
+
+# unittest_bluestore_types
+add_executable(unittest_bluestore_types EXCLUDE_FROM_ALL objectstore/test_bluestore_types.cc)
+add_test(unittest_bluestore_types unittest_bluestore_types)
+add_dependencies(check unittest_bluestore_types)
+target_link_libraries(unittest_bluestore_types os global ${UNITTEST_LIBS})
+set_target_properties(unittest_bluestore_types PROPERTIES COMPILE_FLAGS
+ ${UNITTEST_CXX_FLAGS})
+
add_subdirectory(erasure-code EXCLUDE_FROM_ALL)
#make check ends here