]> git.proxmox.com Git - ceph.git/blob - ceph/src/librbd/CMakeLists.txt
bump version to 18.2.2-pve1
[ceph.git] / ceph / src / librbd / CMakeLists.txt
1 set(librbd_types_srcs
2 journal/Types.cc
3 mirroring_watcher/Types.cc
4 trash_watcher/Types.cc
5 watcher/Types.cc
6 WatchNotifyTypes.cc)
7
8 if(WITH_RBD_RWL OR WITH_RBD_SSD_CACHE)
9 list(APPEND librbd_types_srcs cache/pwl/Types.cc)
10 endif()
11
12 add_library(rbd_types STATIC
13 ${librbd_types_srcs})
14
15 if (WITH_RBD_RWL)
16 target_link_libraries(rbd_types
17 PUBLIC pmdk::pmemobj)
18 endif()
19
20 set(librbd_internal_srcs
21 AsioEngine.cc
22 AsyncObjectThrottle.cc
23 AsyncRequest.cc
24 ConfigWatcher.cc
25 DeepCopyRequest.cc
26 ExclusiveLock.cc
27 ImageCtx.cc
28 ImageState.cc
29 ImageWatcher.cc
30 internal.cc
31 Journal.cc
32 LibrbdAdminSocketHook.cc
33 ManagedLock.cc
34 MirroringWatcher.cc
35 ObjectMap.cc
36 Operations.cc
37 PluginRegistry.cc
38 TrashWatcher.cc
39 Utils.cc
40 Watcher.cc
41 api/Config.cc
42 api/DiffIterate.cc
43 api/Group.cc
44 api/Image.cc
45 api/Io.cc
46 api/Migration.cc
47 api/Mirror.cc
48 api/Namespace.cc
49 api/Pool.cc
50 api/PoolMetadata.cc
51 api/Snapshot.cc
52 api/Trash.cc
53 api/Utils.cc
54 asio/ContextWQ.cc
55 cache/ImageWriteback.cc
56 cache/ObjectCacherObjectDispatch.cc
57 cache/ObjectCacherWriteback.cc
58 cache/WriteAroundObjectDispatch.cc
59 crypto/BlockCrypto.cc
60 crypto/CryptoContextPool.cc
61 crypto/CryptoImageDispatch.cc
62 crypto/CryptoObjectDispatch.cc
63 crypto/FormatRequest.cc
64 crypto/LoadRequest.cc
65 crypto/ShutDownCryptoRequest.cc
66 crypto/Utils.cc
67 crypto/openssl/DataCryptor.cc
68 deep_copy/ImageCopyRequest.cc
69 deep_copy/MetadataCopyRequest.cc
70 deep_copy/ObjectCopyRequest.cc
71 deep_copy/SetHeadRequest.cc
72 deep_copy/SnapshotCopyRequest.cc
73 deep_copy/SnapshotCreateRequest.cc
74 deep_copy/Utils.cc
75 exclusive_lock/AutomaticPolicy.cc
76 exclusive_lock/ImageDispatch.cc
77 exclusive_lock/PreAcquireRequest.cc
78 exclusive_lock/PostAcquireRequest.cc
79 exclusive_lock/PreReleaseRequest.cc
80 exclusive_lock/StandardPolicy.cc
81 image/AttachChildRequest.cc
82 image/AttachParentRequest.cc
83 image/CloneRequest.cc
84 image/CloseRequest.cc
85 image/CreateRequest.cc
86 image/DetachChildRequest.cc
87 image/DetachParentRequest.cc
88 image/GetMetadataRequest.cc
89 image/ListWatchersRequest.cc
90 image/OpenRequest.cc
91 image/PreRemoveRequest.cc
92 image/RefreshParentRequest.cc
93 image/RefreshRequest.cc
94 image/RemoveRequest.cc
95 image/SetFlagsRequest.cc
96 image/SetSnapRequest.cc
97 image/ValidatePoolRequest.cc
98 image_watcher/NotifyLockOwner.cc
99 io/AioCompletion.cc
100 io/AsyncOperation.cc
101 io/CopyupRequest.cc
102 io/FlushTracker.cc
103 io/ImageDispatch.cc
104 io/ImageDispatchSpec.cc
105 io/ImageDispatcher.cc
106 io/ImageRequest.cc
107 io/ObjectDispatch.cc
108 io/ObjectDispatchSpec.cc
109 io/ObjectDispatcher.cc
110 io/ObjectRequest.cc
111 io/QosImageDispatch.cc
112 io/QueueImageDispatch.cc
113 io/ReadResult.cc
114 io/RefreshImageDispatch.cc
115 io/SimpleSchedulerObjectDispatch.cc
116 io/Types.cc
117 io/Utils.cc
118 io/WriteBlockImageDispatch.cc
119 io/IoOperations.cc
120 journal/CreateRequest.cc
121 journal/DemoteRequest.cc
122 journal/ObjectDispatch.cc
123 journal/OpenRequest.cc
124 journal/PromoteRequest.cc
125 journal/RemoveRequest.cc
126 journal/Replay.cc
127 journal/ResetRequest.cc
128 journal/StandardPolicy.cc
129 journal/Utils.cc
130 managed_lock/AcquireRequest.cc
131 managed_lock/BreakRequest.cc
132 managed_lock/GetLockerRequest.cc
133 managed_lock/ReacquireRequest.cc
134 managed_lock/ReleaseRequest.cc
135 managed_lock/Utils.cc
136 migration/FileStream.cc
137 migration/HttpClient.cc
138 migration/HttpStream.cc
139 migration/ImageDispatch.cc
140 migration/NativeFormat.cc
141 migration/OpenSourceImageRequest.cc
142 migration/QCOWFormat.cc
143 migration/RawFormat.cc
144 migration/RawSnapshot.cc
145 migration/S3Stream.cc
146 migration/SourceSpecBuilder.cc
147 migration/Utils.cc
148 mirror/DemoteRequest.cc
149 mirror/DisableRequest.cc
150 mirror/EnableRequest.cc
151 mirror/GetInfoRequest.cc
152 mirror/GetStatusRequest.cc
153 mirror/GetUuidRequest.cc
154 mirror/ImageRemoveRequest.cc
155 mirror/ImageStateUpdateRequest.cc
156 mirror/PromoteRequest.cc
157 mirror/snapshot/CreateNonPrimaryRequest.cc
158 mirror/snapshot/CreatePrimaryRequest.cc
159 mirror/snapshot/DemoteRequest.cc
160 mirror/snapshot/GetImageStateRequest.cc
161 mirror/snapshot/ImageMeta.cc
162 mirror/snapshot/PromoteRequest.cc
163 mirror/snapshot/RemoveImageStateRequest.cc
164 mirror/snapshot/SetImageStateRequest.cc
165 mirror/snapshot/Types.cc
166 mirror/snapshot/UnlinkPeerRequest.cc
167 mirror/snapshot/Utils.cc
168 mirror/snapshot/WriteImageStateRequest.cc
169 object_map/CreateRequest.cc
170 object_map/DiffRequest.cc
171 object_map/InvalidateRequest.cc
172 object_map/LockRequest.cc
173 object_map/RefreshRequest.cc
174 object_map/RemoveRequest.cc
175 object_map/Request.cc
176 object_map/ResizeRequest.cc
177 object_map/SnapshotCreateRequest.cc
178 object_map/SnapshotRemoveRequest.cc
179 object_map/SnapshotRollbackRequest.cc
180 object_map/UnlockRequest.cc
181 object_map/UpdateRequest.cc
182 operation/DisableFeaturesRequest.cc
183 operation/EnableFeaturesRequest.cc
184 operation/FlattenRequest.cc
185 operation/MetadataRemoveRequest.cc
186 operation/MetadataSetRequest.cc
187 operation/MigrateRequest.cc
188 operation/ObjectMapIterate.cc
189 operation/RebuildObjectMapRequest.cc
190 operation/RenameRequest.cc
191 operation/Request.cc
192 operation/ResizeRequest.cc
193 operation/SnapshotCreateRequest.cc
194 operation/SnapshotProtectRequest.cc
195 operation/SnapshotRemoveRequest.cc
196 operation/SnapshotRenameRequest.cc
197 operation/SnapshotRollbackRequest.cc
198 operation/SnapshotUnprotectRequest.cc
199 operation/SnapshotLimitRequest.cc
200 operation/SparsifyRequest.cc
201 operation/TrimRequest.cc
202 plugin/Api.cc
203 trash/MoveRequest.cc
204 trash/RemoveRequest.cc
205 watcher/Notifier.cc
206 watcher/RewatchRequest.cc
207 ${CMAKE_SOURCE_DIR}/src/common/ContextCompletion.cc)
208
209 if(WITH_EVENTTRACE)
210 list(APPEND librbd_internal_srcs ../common/EventTrace.cc)
211 endif()
212
213 if(LINUX AND HAVE_LIBCRYPTSETUP)
214 list(APPEND librbd_internal_srcs
215 crypto/luks/LUKSEncryptionFormat.cc
216 crypto/luks/FormatRequest.cc
217 crypto/luks/FlattenRequest.cc
218 crypto/luks/Header.cc
219 crypto/luks/LoadRequest.cc
220 crypto/luks/Magic.cc)
221 endif()
222
223 add_library(rbd_api STATIC librbd.cc)
224 add_library(rbd_internal STATIC
225 ${librbd_internal_srcs}
226 $<TARGET_OBJECTS:rados_snap_set_diff_obj>)
227 if(WITH_LTTNG)
228 # librbd.cc includes tracing/librbd.h
229 add_dependencies(rbd_api librbd-tp)
230 # io/AioCompletion.cc includes tracing/librbd.h
231 add_dependencies(rbd_internal librbd-tp)
232 endif()
233 if(WITH_EVENTTRACE)
234 add_dependencies(rbd_internal eventtrace_tp)
235 endif()
236 target_link_libraries(rbd_internal PRIVATE
237 osdc rbd_types
238 OpenSSL::SSL)
239 target_include_directories(rbd_internal PRIVATE ${OPENSSL_INCLUDE_DIR})
240 if(LINUX AND HAVE_LIBCRYPTSETUP)
241 target_include_directories(rbd_internal PRIVATE ${LIBCRYPTSETUP_INCLUDE_DIR})
242 target_link_libraries(rbd_internal PRIVATE ${LIBCRYPTSETUP_LIBRARIES})
243 endif()
244
245 add_custom_target(librbd_plugins)
246 set(librbd_plugins_dir ${CEPH_INSTALL_PKGLIBDIR}/librbd)
247
248 set(rbd_plugin_parent_cache_srcs
249 cache/ParentCacheObjectDispatch.cc
250 plugin/ParentCache.cc)
251 add_library(librbd_plugin_parent_cache SHARED
252 ${rbd_plugin_parent_cache_srcs})
253 target_link_libraries(librbd_plugin_parent_cache PRIVATE
254 ceph_immutable_object_cache_lib ceph-common librbd
255 libneorados
256 librados)
257 set_target_properties(librbd_plugin_parent_cache PROPERTIES
258 OUTPUT_NAME ceph_librbd_parent_cache
259 VERSION 1.0.0
260 SOVERSION 1)
261 install(TARGETS librbd_plugin_parent_cache DESTINATION ${librbd_plugins_dir})
262 add_dependencies(librbd_plugins librbd_plugin_parent_cache)
263
264 if(WITH_RBD_RWL OR WITH_RBD_SSD_CACHE)
265 set(rbd_plugin_pwl_srcs
266 cache/WriteLogImageDispatch.cc
267 cache/pwl/AbstractWriteLog.cc
268 cache/pwl/DiscardRequest.cc
269 cache/pwl/ImageCacheState.cc
270 cache/pwl/InitRequest.cc
271 cache/pwl/LogEntry.cc
272 cache/pwl/LogMap.cc
273 cache/pwl/LogOperation.cc
274 cache/pwl/Request.cc
275 cache/pwl/ShutdownRequest.cc
276 cache/pwl/SyncPoint.cc
277 cache/pwl/Types.cc
278 plugin/WriteLogImageCache.cc)
279
280 if(WITH_RBD_SSD_CACHE)
281 set(rbd_plugin_pwl_srcs
282 ${rbd_plugin_pwl_srcs}
283 cache/pwl/ssd/LogEntry.cc
284 cache/pwl/ssd/LogOperation.cc
285 cache/pwl/ssd/ReadRequest.cc
286 cache/pwl/ssd/Request.cc
287 cache/pwl/ssd/WriteLog.cc)
288 endif()
289 if(WITH_RBD_RWL)
290 set(rbd_plugin_pwl_srcs
291 ${rbd_plugin_pwl_srcs}
292 cache/pwl/rwl/WriteLog.cc
293 cache/pwl/rwl/LogEntry.cc
294 cache/pwl/rwl/LogOperation.cc
295 cache/pwl/rwl/ReadRequest.cc
296 cache/pwl/rwl/Request.cc)
297 endif()
298
299 add_library(librbd_plugin_pwl_cache SHARED
300 ${rbd_plugin_pwl_srcs})
301 target_link_libraries(librbd_plugin_pwl_cache PRIVATE
302 blk
303 ceph-common
304 cls_rbd_client
305 libneorados
306 librados
307 StdFilesystem::filesystem)
308
309 if(WITH_RBD_RWL)
310 target_link_libraries(librbd_plugin_pwl_cache
311 PUBLIC pmdk::pmemobj
312 PRIVATE pmdk::pmem)
313 endif()
314
315 set_target_properties(librbd_plugin_pwl_cache PROPERTIES
316 OUTPUT_NAME ceph_librbd_pwl_cache
317 VERSION 1.0.0
318 SOVERSION 1)
319 install(TARGETS librbd_plugin_pwl_cache DESTINATION ${librbd_plugins_dir})
320 add_dependencies(librbd_plugins librbd_plugin_pwl_cache)
321 endif()
322
323 add_library(librbd ${CEPH_SHARED}
324 librbd.cc)
325 if(WITH_LTTNG)
326 add_dependencies(librbd librbd-tp)
327 endif()
328
329 target_link_libraries(librbd PRIVATE
330 rbd_internal
331 rbd_types
332 journal
333 cls_rbd_client
334 cls_lock_client
335 cls_journal_client
336 libneorados
337 librados
338 ceph-common
339 pthread
340 ${CMAKE_DL_LIBS}
341 ${EXTRALIBS} ${GSSAPI_LIBRARIES})
342 if(HAVE_UDEV)
343 target_link_libraries(librbd PRIVATE
344 udev)
345 endif()
346 if(ENABLE_SHARED)
347 set_target_properties(librbd PROPERTIES
348 OUTPUT_NAME rbd
349 VERSION 1.18.0
350 SOVERSION 1
351 CXX_VISIBILITY_PRESET hidden
352 VISIBILITY_INLINES_HIDDEN ON)
353 if(NOT APPLE AND NOT WIN32)
354 set_property(TARGET librbd APPEND_STRING PROPERTY
355 LINK_FLAGS " -Wl,--exclude-libs,ALL")
356 endif()
357 endif(ENABLE_SHARED)
358 install(TARGETS librbd DESTINATION ${CMAKE_INSTALL_LIBDIR})