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
19 kstore/kstore_types.cc
23 list(APPEND libos_srcs
24 bluestore/Allocator.cc
25 bluestore/BitmapFreelistManager.cc
26 bluestore/BlockDevice.cc
28 bluestore/bluefs_types.cc
29 bluestore/BlueRocksEnv.cc
30 bluestore/BlueStore.cc
31 bluestore/bluestore_types.cc
32 bluestore/fastbmap_allocator_impl.cc
33 bluestore/FreelistManager.cc
34 bluestore/StupidAllocator.cc
35 bluestore/BitmapAllocator.cc
36 bluestore/AvlAllocator.cc
37 bluestore/HybridAllocator.cc
42 if(HAVE_LIBAIO OR HAVE_POSIXAIO)
43 list(APPEND libos_srcs
44 bluestore/KernelDevice.cc
49 list(APPEND libos_srcs
53 if(WITH_BLUESTORE_PMEM)
54 list(APPEND libos_srcs
55 bluestore/PMEMDevice.cc)
59 list(APPEND libos_srcs
60 filestore/XfsFileStoreBackend.cc
65 add_library(os_zfs_objs OBJECT
66 filestore/ZFSFileStoreBackend.cc
68 target_include_directories(os_zfs_objs SYSTEM PRIVATE
70 list(APPEND libos_srcs $<TARGET_OBJECTS:os_zfs_objs>)
74 list(APPEND libos_srcs
75 bluestore/NVMEDevice.cc)
78 add_library(os STATIC ${libos_srcs})
80 target_link_libraries(os heap_profiler kv)
83 add_library(bluefs SHARED
84 bluestore/BlueRocksEnv.cc)
85 target_include_directories(bluefs SYSTEM PUBLIC
86 $<TARGET_PROPERTY:RocksDB::RocksDB,INTERFACE_INCLUDE_DIRECTORIES>)
87 target_link_libraries(bluefs global)
88 install(TARGETS bluefs DESTINATION lib)
92 target_link_libraries(os ${AIO_LIBRARIES})
96 target_link_libraries(os FUSE::FUSE)
100 target_link_libraries(os ${ZFS_LIBRARIES})
104 target_link_libraries(os
109 add_dependencies(os objectstore-tp)
110 add_dependencies(os bluestore-tp)
113 target_link_libraries(os kv)
115 add_dependencies(os compressor_plugins)
116 add_dependencies(os crypto_plugins)
120 add_executable(ceph-bluestore-tool
121 bluestore/bluestore_tool.cc)
122 target_link_libraries(ceph-bluestore-tool
124 install(TARGETS ceph-bluestore-tool
128 if(WITH_BLUESTORE_PMEM)
129 target_link_libraries(os pmem::pmem)
133 add_dependencies(os eventtrace_tp)
137 include(ExternalProject)
138 if("${CMAKE_GENERATOR}" MATCHES "Make")
139 set(make_cmd "$(MAKE)")
143 ExternalProject_Add(liburing_ext
144 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/src/
145 GIT_REPOSITORY http://git.kernel.dk/liburing
146 GIT_TAG "4e360f71131918c36774f51688e5c65dea8d43f2"
147 SOURCE_DIR ${CMAKE_BINARY_DIR}/src/liburing
148 CONFIGURE_COMMAND <SOURCE_DIR>/configure
149 BUILD_COMMAND env CC=${CMAKE_C_COMPILER} ${make_cmd} -C src -s
153 add_library(liburing STATIC IMPORTED GLOBAL)
154 add_dependencies(liburing liburing_ext)
155 set_target_properties(liburing PROPERTIES
156 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
157 IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/src/liburing/src/liburing.a")
158 target_link_libraries(os liburing)
159 target_include_directories(os SYSTEM PRIVATE "${CMAKE_BINARY_DIR}/src/liburing/src/include")