4 filestore/chain_xattr.cc
5 filestore/BtrfsFileStoreBackend.cc
6 filestore/DBObjectMap.cc
7 filestore/FileJournal.cc
9 filestore/JournalThrottle.cc
10 filestore/GenericFileStoreBackend.cc
11 filestore/JournalingObjectStore.cc
12 filestore/HashIndex.cc
13 filestore/IndexManager.cc
15 filestore/WBThrottle.cc
18 kstore/kstore_types.cc
22 list(APPEND libos_srcs
23 bluestore/Allocator.cc
24 bluestore/BitmapFreelistManager.cc
25 bluestore/BlockDevice.cc
27 bluestore/bluefs_types.cc
28 bluestore/BlueRocksEnv.cc
29 bluestore/BlueStore.cc
30 bluestore/bluestore_types.cc
31 bluestore/FreelistManager.cc
32 bluestore/KernelDevice.cc
33 bluestore/StupidAllocator.cc
34 bluestore/BitMapAllocator.cc
35 bluestore/BitAllocator.cc
41 list(APPEND libos_srcs
46 list(APPEND libos_srcs
47 bluestore/PMEMDevice.cc)
51 list(APPEND libos_srcs
52 filestore/XfsFileStoreBackend.cc
57 add_library(os_zfs_objs OBJECT
58 filestore/ZFSFileStoreBackend.cc
60 target_include_directories(os_zfs_objs PRIVATE
62 list(APPEND libos_srcs $<TARGET_OBJECTS:os_zfs_objs>)
66 list(APPEND libos_srcs
67 bluestore/NVMEDevice.cc)
68 ADD_DEFINITIONS(-D__SSE4_2__ -D__SSE4_1__ -D__SSSE3__ -D__SSE3__)
69 add_compile_options(-mcrc32 -msse3 -mssse3 -msse4.1 -msse4.2)
72 add_library(os STATIC ${libos_srcs} $<TARGET_OBJECTS:kv_objs>)
75 target_link_libraries(os ${AIO_LIBRARIES})
79 target_link_libraries(os ${FUSE_LIBRARIES})
83 target_link_libraries(os ${PMEM_LIBRARY})
87 target_link_libraries(os ${ZFS_LIBRARIES})
91 target_link_libraries(os
94 target_include_directories(os
100 add_dependencies(os objectstore-tp)
103 target_link_libraries(os kv)
105 add_dependencies(os compressor_plugins)
106 add_dependencies(os crypto_plugins)
110 add_executable(ceph-bluestore-tool
111 bluestore/bluestore_tool.cc)
112 target_link_libraries(ceph-bluestore-tool
114 install(TARGETS ceph-bluestore-tool
119 include_directories("${CMAKE_SOURCE_DIR}/src/spdk/include")
120 add_custom_target(build_spdk
122 $(MAKE) DPDK_INC_DIR=${DPDK_INCLUDE_DIR}
123 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/spdk/lib
124 COMMENT "spdk building")
125 # TODO: should use add_library(spdk INTERFACE IMPORTED) instead in new cmake,
126 # if INTERFACE is supported.
127 foreach(lib nvme log env_dpdk util)
128 add_library(spdk_${lib} STATIC IMPORTED)
129 add_dependencies(spdk_${lib} build_spdk)
130 target_link_libraries(os LINK_PRIVATE spdk_${lib})
131 set_target_properties(spdk_${lib} PROPERTIES
132 IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/src/spdk/build/lib/libspdk_${lib}.a"
133 INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/src/spdk/include")
134 list(APPEND SPDK_LIBRARIES spdk_${lib})
138 if(WITH_LTTNG AND WITH_EVENTTRACE)
139 add_dependencies(os eventtrace_tp)