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