blob: 8fc8d3533edafb826e23cec9d288c609939d0dc9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
set(libos_srcs
ObjectStore.cc
Transaction.cc
filestore/chain_xattr.cc
filestore/BtrfsFileStoreBackend.cc
filestore/DBObjectMap.cc
filestore/FileJournal.cc
filestore/FileStore.cc
filestore/JournalThrottle.cc
filestore/GenericFileStoreBackend.cc
filestore/JournalingObjectStore.cc
filestore/HashIndex.cc
filestore/IndexManager.cc
filestore/LFNIndex.cc
filestore/WBThrottle.cc
memstore/MemStore.cc
kstore/KStore.cc
kstore/kstore_types.cc
fs/FS.cc)
if(WITH_BLUESTORE)
list(APPEND libos_srcs
bluestore/Allocator.cc
bluestore/BitmapFreelistManager.cc
bluestore/BlockDevice.cc
bluestore/BlueFS.cc
bluestore/bluefs_types.cc
bluestore/BlueRocksEnv.cc
bluestore/BlueStore.cc
bluestore/bluestore_types.cc
bluestore/fastbmap_allocator_impl.cc
bluestore/FreelistManager.cc
bluestore/StupidAllocator.cc
bluestore/BitmapAllocator.cc
bluestore/AvlAllocator.cc
bluestore/HybridAllocator.cc
)
endif(WITH_BLUESTORE)
if(HAVE_LIBAIO OR HAVE_POSIXAIO)
list(APPEND libos_srcs
bluestore/KernelDevice.cc
bluestore/aio.cc)
endif()
if(WITH_FUSE)
list(APPEND libos_srcs
FuseStore.cc)
endif(WITH_FUSE)
if(WITH_PMEM)
list(APPEND libos_srcs
bluestore/PMEMDevice.cc)
endif(WITH_PMEM)
if(HAVE_LIBXFS)
list(APPEND libos_srcs
filestore/XfsFileStoreBackend.cc
fs/XFS.cc)
endif()
if(HAVE_LIBZFS)
add_library(os_zfs_objs OBJECT
filestore/ZFSFileStoreBackend.cc
fs/ZFS.cc)
target_include_directories(os_zfs_objs SYSTEM PRIVATE
${ZFS_INCLUDE_DIRS})
list(APPEND libos_srcs $<TARGET_OBJECTS:os_zfs_objs>)
endif()
if(WITH_SPDK)
list(APPEND libos_srcs
bluestore/NVMEDevice.cc)
endif()
add_library(os STATIC ${libos_srcs})
target_link_libraries(os heap_profiler kv)
if(WITH_BLUEFS)
add_library(bluefs SHARED
bluestore/BlueRocksEnv.cc)
target_include_directories(bluefs SYSTEM PUBLIC
$<TARGET_PROPERTY:RocksDB::RocksDB,INTERFACE_INCLUDE_DIRECTORIES>)
target_link_libraries(bluefs global)
install(TARGETS bluefs DESTINATION lib)
endif(WITH_BLUEFS)
if(HAVE_LIBAIO)
target_link_libraries(os ${AIO_LIBRARIES})
endif(HAVE_LIBAIO)
if(WITH_FUSE)
target_link_libraries(os FUSE::FUSE)
endif()
if(HAVE_LIBZFS)
target_link_libraries(os ${ZFS_LIBRARIES})
endif()
if(WITH_SPDK)
target_link_libraries(os
${SPDK_LIBRARIES})
endif()
if(WITH_LTTNG)
add_dependencies(os objectstore-tp)
endif()
target_link_libraries(os kv)
add_dependencies(os compressor_plugins)
add_dependencies(os crypto_plugins)
if(WITH_BLUESTORE)
add_executable(ceph-bluestore-tool
bluestore/bluestore_tool.cc)
target_link_libraries(ceph-bluestore-tool
os global)
install(TARGETS ceph-bluestore-tool
DESTINATION bin)
endif()
if(WITH_PMEM)
include(ExternalProject)
ExternalProject_Add(nvml_ext
DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/src/
GIT_REPOSITORY "https://github.com/ceph/nvml.git"
GIT_TAG "dd622819dd4ee97d3920f913c70be"
SOURCE_DIR ${CMAKE_BINARY_DIR}/src/nvml
CONFIGURE_COMMAND ""
BUILD_COMMAND $(MAKE)
BUILD_IN_SOURCE 1
INSTALL_COMMAND "true")
ExternalProject_Add_Step(nvml_ext forcebuild
DEPENDEES configure
DEPENDERS build
COMMAND "true"
ALWAYS 1)
add_library(pmem STATIC IMPORTED GLOBAL)
add_dependencies(pmem nvml_ext)
set_target_properties(pmem PROPERTIES
IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/src/nvml/src/nondebug/libpmem.a"
INTERFACE_LINK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries(os pmem)
target_include_directories(os SYSTEM PRIVATE "${CMAKE_BINARY_DIR}/src/nvml/src/include")
endif(WITH_PMEM)
if(WITH_LTTNG AND WITH_EVENTTRACE)
add_dependencies(os eventtrace_tp)
endif()
|