3 mirroring_watcher/Types.cc
8 if(WITH_RBD_RWL OR WITH_RBD_SSD_CACHE)
9 list(APPEND librbd_types_srcs cache/pwl/Types.cc)
12 add_library(rbd_types STATIC
16 target_link_libraries(rbd_types
20 set(librbd_internal_srcs
22 AsyncObjectThrottle.cc
32 LibrbdAdminSocketHook.cc
55 cache/ImageWriteback.cc
56 cache/ObjectCacherObjectDispatch.cc
57 cache/ObjectCacherWriteback.cc
58 cache/WriteAroundObjectDispatch.cc
60 crypto/CryptoContextPool.cc
61 crypto/CryptoImageDispatch.cc
62 crypto/CryptoObjectDispatch.cc
63 crypto/FormatRequest.cc
65 crypto/ShutDownCryptoRequest.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
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
85 image/CreateRequest.cc
86 image/DetachChildRequest.cc
87 image/DetachParentRequest.cc
88 image/GetMetadataRequest.cc
89 image/ListWatchersRequest.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
104 io/ImageDispatchSpec.cc
105 io/ImageDispatcher.cc
108 io/ObjectDispatchSpec.cc
109 io/ObjectDispatcher.cc
111 io/QosImageDispatch.cc
112 io/QueueImageDispatch.cc
114 io/RefreshImageDispatch.cc
115 io/SimpleSchedulerObjectDispatch.cc
118 io/WriteBlockImageDispatch.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
127 journal/ResetRequest.cc
128 journal/StandardPolicy.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
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
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
204 trash/RemoveRequest.cc
206 watcher/RewatchRequest.cc
207 ${CMAKE_SOURCE_DIR}/src/common/ContextCompletion.cc)
210 list(APPEND librbd_internal_srcs ../common/EventTrace.cc)
213 if(LINUX AND HAVE_LIBCRYPTSETUP)
214 list(APPEND librbd_internal_srcs
215 crypto/luks/EncryptionFormat.cc
216 crypto/luks/Header.cc
217 crypto/luks/FormatRequest.cc
218 crypto/luks/LoadRequest.cc)
221 add_library(rbd_api STATIC librbd.cc)
222 add_library(rbd_internal STATIC
223 ${librbd_internal_srcs}
224 $<TARGET_OBJECTS:rados_snap_set_diff_obj>)
226 # librbd.cc includes tracing/librbd.h
227 add_dependencies(rbd_api librbd-tp)
228 # io/AioCompletion.cc includes tracing/librbd.h
229 add_dependencies(rbd_internal librbd-tp)
232 add_dependencies(rbd_internal eventtrace_tp)
234 target_link_libraries(rbd_internal PRIVATE
237 target_include_directories(rbd_internal PRIVATE ${OPENSSL_INCLUDE_DIR})
238 if(LINUX AND HAVE_LIBCRYPTSETUP)
239 target_include_directories(rbd_internal PRIVATE ${LIBCRYPTSETUP_INCLUDE_DIR})
240 target_link_libraries(rbd_internal PRIVATE ${LIBCRYPTSETUP_LIBRARIES})
243 add_custom_target(librbd_plugins)
244 set(librbd_plugins_dir ${CEPH_INSTALL_PKGLIBDIR}/librbd)
246 set(rbd_plugin_parent_cache_srcs
247 cache/ParentCacheObjectDispatch.cc
248 plugin/ParentCache.cc)
249 add_library(librbd_plugin_parent_cache SHARED
250 ${rbd_plugin_parent_cache_srcs})
251 target_link_libraries(librbd_plugin_parent_cache PRIVATE
252 ceph_immutable_object_cache_lib ceph-common librbd
255 set_target_properties(librbd_plugin_parent_cache PROPERTIES
256 OUTPUT_NAME ceph_librbd_parent_cache
259 install(TARGETS librbd_plugin_parent_cache DESTINATION ${librbd_plugins_dir})
260 add_dependencies(librbd_plugins librbd_plugin_parent_cache)
262 if(WITH_RBD_RWL OR WITH_RBD_SSD_CACHE)
263 set(rbd_plugin_pwl_srcs
264 cache/WriteLogImageDispatch.cc
265 cache/pwl/AbstractWriteLog.cc
266 cache/pwl/DiscardRequest.cc
267 cache/pwl/ImageCacheState.cc
268 cache/pwl/InitRequest.cc
269 cache/pwl/LogEntry.cc
271 cache/pwl/LogOperation.cc
273 cache/pwl/ShutdownRequest.cc
274 cache/pwl/SyncPoint.cc
276 plugin/WriteLogImageCache.cc)
278 if(WITH_RBD_SSD_CACHE)
279 set(rbd_plugin_pwl_srcs
280 ${rbd_plugin_pwl_srcs}
281 cache/pwl/ssd/LogEntry.cc
282 cache/pwl/ssd/LogOperation.cc
283 cache/pwl/ssd/ReadRequest.cc
284 cache/pwl/ssd/Request.cc
285 cache/pwl/ssd/WriteLog.cc)
288 set(rbd_plugin_pwl_srcs
289 ${rbd_plugin_pwl_srcs}
290 cache/pwl/rwl/WriteLog.cc
291 cache/pwl/rwl/LogEntry.cc
292 cache/pwl/rwl/LogOperation.cc
293 cache/pwl/rwl/ReadRequest.cc
294 cache/pwl/rwl/Request.cc)
297 add_library(librbd_plugin_pwl_cache SHARED
298 ${rbd_plugin_pwl_srcs})
299 target_link_libraries(librbd_plugin_pwl_cache PRIVATE
305 StdFilesystem::filesystem)
308 target_link_libraries(librbd_plugin_pwl_cache
313 set_target_properties(librbd_plugin_pwl_cache PROPERTIES
314 OUTPUT_NAME ceph_librbd_pwl_cache
317 install(TARGETS librbd_plugin_pwl_cache DESTINATION ${librbd_plugins_dir})
318 add_dependencies(librbd_plugins librbd_plugin_pwl_cache)
321 add_library(librbd ${CEPH_SHARED}
324 add_dependencies(librbd librbd-tp)
327 target_link_libraries(librbd PRIVATE
339 ${EXTRALIBS} ${GSSAPI_LIBRARIES})
341 target_link_libraries(librbd PRIVATE
345 set_target_properties(librbd PROPERTIES
349 CXX_VISIBILITY_PRESET hidden
350 VISIBILITY_INLINES_HIDDEN ON)
351 if(NOT APPLE AND NOT WIN32)
352 set_property(TARGET librbd APPEND_STRING PROPERTY
353 LINK_FLAGS " -Wl,--exclude-libs,ALL")
356 install(TARGETS librbd DESTINATION ${CMAKE_INSTALL_LIBDIR})