3 filestore/XfsFileStoreBackend.cc
10 filestore/chain_xattr.cc
11 filestore/BtrfsFileStoreBackend.cc
12 filestore/DBObjectMap.cc
13 filestore/FileJournal.cc
14 filestore/FileStore.cc
15 filestore/JournalThrottle.cc
16 filestore/GenericFileStoreBackend.cc
17 filestore/JournalingObjectStore.cc
18 filestore/HashIndex.cc
19 filestore/IndexManager.cc
21 filestore/WBThrottle.cc
22 filestore/ZFSFileStoreBackend.cc
25 kstore/kstore_types.cc
31 list(APPEND libos_srcs
32 bluestore/Allocator.cc
33 bluestore/BitmapFreelistManager.cc
34 bluestore/BlockDevice.cc
36 bluestore/bluefs_types.cc
37 bluestore/BlueRocksEnv.cc
38 bluestore/BlueStore.cc
39 bluestore/bluestore_types.cc
40 bluestore/FreelistManager.cc
41 bluestore/KernelDevice.cc
42 bluestore/StupidAllocator.cc
43 bluestore/BitMapAllocator.cc
44 bluestore/BitAllocator.cc
49 list(APPEND libos_srcs
54 list(APPEND libos_srcs
55 bluestore/NVMEDevice.cc)
56 ADD_DEFINITIONS(-D__SSE4_2__ -D__SSE4_1__ -D__SSSE3__ -D__SSE3__)
57 add_compile_options(-mcrc32 -msse3 -mssse3 -msse4.1 -msse4.2)
60 add_library(os STATIC ${libos_srcs} $<TARGET_OBJECTS:kv_objs>)
63 target_link_libraries(os ${AIO_LIBRARIES})
67 target_link_libraries(os ${FUSE_LIBRARIES})
71 target_link_libraries(os
74 target_include_directories(os
80 add_dependencies(os objectstore-tp)
83 target_link_libraries(os kv)
85 add_dependencies(os compressor_plugins)
86 add_dependencies(os crypto_plugins)
90 add_executable(ceph-bluestore-tool
91 bluestore/bluestore_tool.cc)
92 target_link_libraries(ceph-bluestore-tool
94 install(TARGETS ceph-bluestore-tool
99 include_directories("${CMAKE_SOURCE_DIR}/src/spdk/include")
100 add_custom_target(build_spdk
102 $(MAKE) DPDK_INC_DIR=${DPDK_INCLUDE_DIR}
103 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/spdk/lib
104 COMMENT "spdk building")
105 # TODO: should use add_library(spdk INTERFACE IMPORTED) instead in new cmake,
106 # if INTERFACE is supported.
107 foreach(lib nvme log env_dpdk util)
108 add_library(spdk_${lib} STATIC IMPORTED)
109 add_dependencies(spdk_${lib} build_spdk)
110 target_link_libraries(os LINK_PRIVATE spdk_${lib})
111 set_target_properties(spdk_${lib} PROPERTIES
112 IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/src/spdk/build/lib/libspdk_${lib}.a"
113 INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/src/spdk/include")
114 list(APPEND SPDK_LIBRARIES spdk_${lib})
118 if(WITH_LTTNG AND WITH_EVENTTRACE)
119 add_dependencies(os eventtrace_tp)