]> git.proxmox.com Git - ceph.git/blame - ceph/src/os/CMakeLists.txt
update sources to 12.2.10
[ceph.git] / ceph / src / os / CMakeLists.txt
CommitLineData
7c673cae
FG
1set(libos_srcs
2 ObjectStore.cc
3 Transaction.cc
4 filestore/chain_xattr.cc
5 filestore/BtrfsFileStoreBackend.cc
6 filestore/DBObjectMap.cc
7 filestore/FileJournal.cc
8 filestore/FileStore.cc
9 filestore/JournalThrottle.cc
10 filestore/GenericFileStoreBackend.cc
11 filestore/JournalingObjectStore.cc
12 filestore/HashIndex.cc
13 filestore/IndexManager.cc
14 filestore/LFNIndex.cc
15 filestore/WBThrottle.cc
7c673cae
FG
16 memstore/MemStore.cc
17 kstore/KStore.cc
18 kstore/kstore_types.cc
c07f9fc5 19 fs/FS.cc)
7c673cae
FG
20
21if(HAVE_LIBAIO)
22 list(APPEND libos_srcs
23 bluestore/Allocator.cc
24 bluestore/BitmapFreelistManager.cc
25 bluestore/BlockDevice.cc
26 bluestore/BlueFS.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
c07f9fc5 36 bluestore/aio.cc
7c673cae
FG
37 )
38endif(HAVE_LIBAIO)
39
40if(WITH_FUSE)
41 list(APPEND libos_srcs
42 FuseStore.cc)
43endif(WITH_FUSE)
44
31f18b77
FG
45if(WITH_PMEM)
46 list(APPEND libos_srcs
47 bluestore/PMEMDevice.cc)
48endif(WITH_PMEM)
49
224ce89b
WB
50if(HAVE_LIBXFS)
51 list(APPEND libos_srcs
52 filestore/XfsFileStoreBackend.cc
53 fs/XFS.cc)
54endif()
55
56if(HAVE_LIBZFS)
57 add_library(os_zfs_objs OBJECT
58 filestore/ZFSFileStoreBackend.cc
59 fs/ZFS.cc)
60 target_include_directories(os_zfs_objs PRIVATE
61 ${ZFS_INCLUDE_DIRS})
62 list(APPEND libos_srcs $<TARGET_OBJECTS:os_zfs_objs>)
63endif()
64
7c673cae
FG
65if(WITH_SPDK)
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)
70endif()
71
91327a77
AA
72add_library(os STATIC ${libos_srcs}
73 $<TARGET_OBJECTS:kv_objs> $<TARGET_OBJECTS:heap_profiler_objs>)
74
75
7c673cae
FG
76
77if(HAVE_LIBAIO)
78 target_link_libraries(os ${AIO_LIBRARIES})
79endif(HAVE_LIBAIO)
80
81if(WITH_FUSE)
82 target_link_libraries(os ${FUSE_LIBRARIES})
83endif()
84
31f18b77
FG
85if(WITH_PMEM)
86 target_link_libraries(os ${PMEM_LIBRARY})
87endif()
88
224ce89b
WB
89if(HAVE_LIBZFS)
90 target_link_libraries(os ${ZFS_LIBRARIES})
91endif()
92
7c673cae
FG
93if(WITH_SPDK)
94 target_link_libraries(os
95 ${SPDK_LIBRARIES}
96 ${DPDK_LIBRARIES})
97 target_include_directories(os
98 PRIVATE
99 ${DPDK_INCLUDE_DIR})
100endif(WITH_SPDK)
101
102if(WITH_LTTNG)
103 add_dependencies(os objectstore-tp)
104endif()
105
106target_link_libraries(os kv)
107
108add_dependencies(os compressor_plugins)
109add_dependencies(os crypto_plugins)
110
111
112if(HAVE_LIBAIO)
113 add_executable(ceph-bluestore-tool
114 bluestore/bluestore_tool.cc)
115 target_link_libraries(ceph-bluestore-tool
116 os global)
117 install(TARGETS ceph-bluestore-tool
118 DESTINATION bin)
119endif()
120
121if(WITH_SPDK)
122 include_directories("${CMAKE_SOURCE_DIR}/src/spdk/include")
123 add_custom_target(build_spdk
124 COMMAND
125 $(MAKE) DPDK_INC_DIR=${DPDK_INCLUDE_DIR}
126 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/spdk/lib
127 COMMENT "spdk building")
128 # TODO: should use add_library(spdk INTERFACE IMPORTED) instead in new cmake,
129 # if INTERFACE is supported.
130 foreach(lib nvme log env_dpdk util)
131 add_library(spdk_${lib} STATIC IMPORTED)
132 add_dependencies(spdk_${lib} build_spdk)
133 target_link_libraries(os LINK_PRIVATE spdk_${lib})
134 set_target_properties(spdk_${lib} PROPERTIES
135 IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/src/spdk/build/lib/libspdk_${lib}.a"
136 INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/src/spdk/include")
137 list(APPEND SPDK_LIBRARIES spdk_${lib})
138 endforeach()
139endif(WITH_SPDK)
140
141if(WITH_LTTNG AND WITH_EVENTTRACE)
142 add_dependencies(os eventtrace_tp)
143endif()