]> git.proxmox.com Git - ceph.git/blob - ceph/src/librbd/CMakeLists.txt
import 15.2.9
[ceph.git] / ceph / src / librbd / CMakeLists.txt
1 if(Boost_VERSION VERSION_GREATER_EQUAL 1.74)
2 add_definitions(-DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
3 endif()
4
5 add_library(rbd_types STATIC
6 journal/Types.cc
7 mirroring_watcher/Types.cc
8 trash_watcher/Types.cc
9 watcher/Types.cc
10 WatchNotifyTypes.cc)
11
12 set(librbd_internal_srcs
13 AsyncObjectThrottle.cc
14 AsyncRequest.cc
15 ConfigWatcher.cc
16 DeepCopyRequest.cc
17 ExclusiveLock.cc
18 ImageCtx.cc
19 ImageState.cc
20 ImageWatcher.cc
21 internal.cc
22 Journal.cc
23 LibrbdAdminSocketHook.cc
24 ManagedLock.cc
25 MirroringWatcher.cc
26 ObjectMap.cc
27 Operations.cc
28 TrashWatcher.cc
29 Utils.cc
30 Watcher.cc
31 api/Config.cc
32 api/DiffIterate.cc
33 api/Group.cc
34 api/Image.cc
35 api/Migration.cc
36 api/Mirror.cc
37 api/Namespace.cc
38 api/Pool.cc
39 api/PoolMetadata.cc
40 api/Snapshot.cc
41 api/Trash.cc
42 cache/ImageWriteback.cc
43 cache/ObjectCacherObjectDispatch.cc
44 cache/ParentCacheObjectDispatch.cc
45 cache/ObjectCacherWriteback.cc
46 cache/PassthroughImageCache.cc
47 cache/WriteAroundObjectDispatch.cc
48 deep_copy/ImageCopyRequest.cc
49 deep_copy/MetadataCopyRequest.cc
50 deep_copy/ObjectCopyRequest.cc
51 deep_copy/SetHeadRequest.cc
52 deep_copy/SnapshotCopyRequest.cc
53 deep_copy/SnapshotCreateRequest.cc
54 deep_copy/Utils.cc
55 exclusive_lock/AutomaticPolicy.cc
56 exclusive_lock/PreAcquireRequest.cc
57 exclusive_lock/PostAcquireRequest.cc
58 exclusive_lock/PreReleaseRequest.cc
59 exclusive_lock/StandardPolicy.cc
60 image/AttachChildRequest.cc
61 image/AttachParentRequest.cc
62 image/CloneRequest.cc
63 image/CloseRequest.cc
64 image/CreateRequest.cc
65 image/DetachChildRequest.cc
66 image/DetachParentRequest.cc
67 image/GetMetadataRequest.cc
68 image/ListWatchersRequest.cc
69 image/OpenRequest.cc
70 image/PreRemoveRequest.cc
71 image/RefreshParentRequest.cc
72 image/RefreshRequest.cc
73 image/RemoveRequest.cc
74 image/SetFlagsRequest.cc
75 image/SetSnapRequest.cc
76 image/ValidatePoolRequest.cc
77 image_watcher/NotifyLockOwner.cc
78 io/AioCompletion.cc
79 io/AsyncOperation.cc
80 io/CopyupRequest.cc
81 io/FlushTracker.cc
82 io/ImageDispatchSpec.cc
83 io/ImageRequest.cc
84 io/ImageRequestWQ.cc
85 io/ObjectDispatch.cc
86 io/ObjectDispatchSpec.cc
87 io/ObjectDispatcher.cc
88 io/ObjectRequest.cc
89 io/ReadResult.cc
90 io/SimpleSchedulerObjectDispatch.cc
91 io/Utils.cc
92 journal/CreateRequest.cc
93 journal/DemoteRequest.cc
94 journal/ObjectDispatch.cc
95 journal/OpenRequest.cc
96 journal/PromoteRequest.cc
97 journal/RemoveRequest.cc
98 journal/Replay.cc
99 journal/ResetRequest.cc
100 journal/StandardPolicy.cc
101 journal/Utils.cc
102 managed_lock/AcquireRequest.cc
103 managed_lock/BreakRequest.cc
104 managed_lock/GetLockerRequest.cc
105 managed_lock/ReacquireRequest.cc
106 managed_lock/ReleaseRequest.cc
107 managed_lock/Utils.cc
108 mirror/DemoteRequest.cc
109 mirror/DisableRequest.cc
110 mirror/EnableRequest.cc
111 mirror/GetInfoRequest.cc
112 mirror/GetStatusRequest.cc
113 mirror/GetUuidRequest.cc
114 mirror/ImageRemoveRequest.cc
115 mirror/ImageStateUpdateRequest.cc
116 mirror/PromoteRequest.cc
117 mirror/snapshot/CreateNonPrimaryRequest.cc
118 mirror/snapshot/CreatePrimaryRequest.cc
119 mirror/snapshot/DemoteRequest.cc
120 mirror/snapshot/GetImageStateRequest.cc
121 mirror/snapshot/ImageMeta.cc
122 mirror/snapshot/PromoteRequest.cc
123 mirror/snapshot/RemoveImageStateRequest.cc
124 mirror/snapshot/SetImageStateRequest.cc
125 mirror/snapshot/Types.cc
126 mirror/snapshot/UnlinkPeerRequest.cc
127 mirror/snapshot/Utils.cc
128 mirror/snapshot/WriteImageStateRequest.cc
129 object_map/CreateRequest.cc
130 object_map/DiffRequest.cc
131 object_map/InvalidateRequest.cc
132 object_map/LockRequest.cc
133 object_map/RefreshRequest.cc
134 object_map/RemoveRequest.cc
135 object_map/Request.cc
136 object_map/ResizeRequest.cc
137 object_map/SnapshotCreateRequest.cc
138 object_map/SnapshotRemoveRequest.cc
139 object_map/SnapshotRollbackRequest.cc
140 object_map/UnlockRequest.cc
141 object_map/UpdateRequest.cc
142 operation/DisableFeaturesRequest.cc
143 operation/EnableFeaturesRequest.cc
144 operation/FlattenRequest.cc
145 operation/MetadataRemoveRequest.cc
146 operation/MetadataSetRequest.cc
147 operation/MigrateRequest.cc
148 operation/ObjectMapIterate.cc
149 operation/RebuildObjectMapRequest.cc
150 operation/RenameRequest.cc
151 operation/Request.cc
152 operation/ResizeRequest.cc
153 operation/SnapshotCreateRequest.cc
154 operation/SnapshotProtectRequest.cc
155 operation/SnapshotRemoveRequest.cc
156 operation/SnapshotRenameRequest.cc
157 operation/SnapshotRollbackRequest.cc
158 operation/SnapshotUnprotectRequest.cc
159 operation/SnapshotLimitRequest.cc
160 operation/SparsifyRequest.cc
161 operation/TrimRequest.cc
162 trash/MoveRequest.cc
163 trash/RemoveRequest.cc
164 watcher/Notifier.cc
165 watcher/RewatchRequest.cc
166 ${CMAKE_SOURCE_DIR}/src/common/ContextCompletion.cc)
167
168 if(WITH_EVENTTRACE)
169 list(APPEND librbd_internal_srcs ../common/EventTrace.cc)
170 endif()
171
172 if(WITH_RBD_RWL)
173 set(librbd_internal_srcs
174 ${librbd_internal_srcs}
175 cache/rwl/ImageCacheState.cc
176 cache/rwl/LogEntry.cc
177 cache/rwl/LogOperation.cc
178 cache/rwl/Request.cc
179 cache/rwl/SyncPoint.cc
180 cache/rwl/Types.cc
181 cache/ReplicatedWriteLog.cc)
182 endif()
183
184 add_library(rbd_api STATIC librbd.cc)
185 add_library(rbd_internal STATIC
186 ${librbd_internal_srcs}
187 $<TARGET_OBJECTS:rados_snap_set_diff_obj>)
188 if(WITH_LTTNG)
189 # librbd.cc includes tracing/librbd.h
190 add_dependencies(rbd_api librbd-tp)
191 # io/AioCompletion.cc includes tracing/librbd.h
192 add_dependencies(rbd_internal librbd-tp)
193 endif()
194 if(WITH_EVENTTRACE)
195 add_dependencies(rbd_internal eventtrace_tp)
196 endif()
197 target_link_libraries(rbd_internal PRIVATE
198 ceph_immutable_object_cache_lib
199 osdc)
200
201 if(WITH_RBD_RWL)
202 target_link_libraries(rbd_internal PRIVATE
203 pmem::pmemobj
204 pmem::pmem)
205 endif()
206
207 add_library(librbd ${CEPH_SHARED}
208 librbd.cc)
209 if(WITH_LTTNG)
210 add_dependencies(librbd librbd-tp)
211 endif()
212
213 target_link_libraries(librbd PRIVATE
214 rbd_internal
215 rbd_types
216 journal
217 librados
218 cls_rbd_client
219 cls_lock_client
220 cls_journal_client
221 ceph-common
222 pthread
223 ${CMAKE_DL_LIBS}
224 ${EXTRALIBS} ${GSSAPI_LIBRARIES})
225 if(HAVE_UDEV)
226 target_link_libraries(librbd PRIVATE
227 udev)
228 endif()
229 if(ENABLE_SHARED)
230 set_target_properties(librbd PROPERTIES
231 OUTPUT_NAME rbd
232 VERSION 1.12.0
233 SOVERSION 1
234 CXX_VISIBILITY_PRESET hidden
235 VISIBILITY_INLINES_HIDDEN ON)
236 if(NOT APPLE)
237 set_property(TARGET librbd APPEND_STRING PROPERTY
238 LINK_FLAGS " -Wl,--exclude-libs,ALL")
239 endif()
240 endif(ENABLE_SHARED)
241 install(TARGETS librbd DESTINATION ${CMAKE_INSTALL_LIBDIR})