]> git.proxmox.com Git - ceph.git/blob - ceph/src/cls/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / cls / CMakeLists.txt
1 ## Rados object classes
2
3 set(cls_dir ${CMAKE_INSTALL_LIBDIR}/rados-classes)
4
5 # cls_sdk
6 add_library(cls_sdk SHARED sdk/cls_sdk.cc)
7 set_target_properties(cls_sdk PROPERTIES
8 VERSION "1.0.0"
9 SOVERSION "1"
10 INSTALL_RPATH ""
11 CXX_VISIBILITY_PRESET hidden)
12 install(TARGETS cls_sdk DESTINATION ${cls_dir})
13
14 # cls_hello
15 set(cls_hello_srcs hello/cls_hello.cc)
16 add_library(cls_hello SHARED ${cls_hello_srcs})
17 set_target_properties(cls_hello PROPERTIES
18 VERSION "1.0.0"
19 SOVERSION "1"
20 INSTALL_RPATH ""
21 CXX_VISIBILITY_PRESET hidden)
22 install(TARGETS cls_hello DESTINATION ${cls_dir})
23
24 # cls_numops
25 set(cls_numops_srcs numops/cls_numops.cc)
26 add_library(cls_numops SHARED ${cls_numops_srcs})
27 set_target_properties(cls_numops PROPERTIES
28 VERSION "1.0.0"
29 SOVERSION "1"
30 INSTALL_RPATH ""
31 CXX_VISIBILITY_PRESET hidden)
32 install(TARGETS cls_numops DESTINATION ${cls_dir})
33
34 set(cls_numops_client_srcs numops/cls_numops_client.cc)
35 add_library(cls_numops_client STATIC ${cls_numops_client_srcs})
36
37
38 # cls_rbd
39 if (WITH_RBD)
40 set(cls_rbd_srcs rbd/cls_rbd.cc rbd/cls_rbd_types.cc)
41 add_library(cls_rbd SHARED ${cls_rbd_srcs})
42 set_target_properties(cls_rbd PROPERTIES
43 VERSION "1.0.0"
44 SOVERSION "1"
45 INSTALL_RPATH ""
46 CXX_VISIBILITY_PRESET hidden)
47 install(TARGETS cls_rbd DESTINATION ${cls_dir})
48
49 set(cls_rbd_client_srcs rbd/cls_rbd_client.cc rbd/cls_rbd_types.cc)
50 add_library(cls_rbd_client STATIC ${cls_rbd_client_srcs})
51 target_link_libraries(cls_rbd_client cls_lock_client)
52
53 endif (WITH_RBD)
54
55 # cls_lock
56 set(cls_lock_srcs lock/cls_lock.cc)
57 add_library(cls_lock SHARED ${cls_lock_srcs})
58 set_target_properties(cls_lock PROPERTIES
59 VERSION "1.0.0"
60 SOVERSION "1"
61 INSTALL_RPATH ""
62 CXX_VISIBILITY_PRESET hidden)
63 install(TARGETS cls_lock DESTINATION ${cls_dir})
64
65 set(cls_lock_client_srcs
66 lock/cls_lock_client.cc
67 lock/cls_lock_types.cc
68 lock/cls_lock_ops.cc)
69 add_library(cls_lock_client STATIC ${cls_lock_client_srcs})
70
71
72 # cls_otp
73 if (WITH_RADOSGW)
74 set(cls_otp_srcs otp/cls_otp.cc)
75 add_library(cls_otp SHARED ${cls_otp_srcs})
76 target_link_libraries(cls_otp OATH::OATH)
77 target_include_directories(cls_otp
78 PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/driver/rados"
79 PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
80 PUBLIC "${CMAKE_SOURCE_DIR}/src/spawn/include")
81 set_target_properties(cls_otp PROPERTIES
82 VERSION "1.0.0"
83 SOVERSION "1"
84 INSTALL_RPATH ""
85 CXX_VISIBILITY_PRESET hidden)
86 install(TARGETS cls_otp DESTINATION ${cls_dir})
87
88 set(cls_otp_client_srcs
89 otp/cls_otp_client.cc
90 otp/cls_otp_types.cc
91 )
92 add_library(cls_otp_client STATIC ${cls_otp_client_srcs})
93 endif (WITH_RADOSGW)
94
95 # cls_refcount
96 set(cls_refcount_srcs
97 refcount/cls_refcount.cc
98 refcount/cls_refcount_ops.cc
99 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
100 add_library(cls_refcount SHARED ${cls_refcount_srcs})
101 target_link_libraries(cls_refcount json_spirit)
102 set_target_properties(cls_refcount PROPERTIES
103 VERSION "1.0.0"
104 SOVERSION "1"
105 INSTALL_RPATH ""
106 CXX_VISIBILITY_PRESET hidden)
107 install(TARGETS cls_refcount DESTINATION ${cls_dir})
108
109 set(cls_refcount_client_srcs
110 refcount/cls_refcount_client.cc
111 refcount/cls_refcount_ops.cc)
112 add_library(cls_refcount_client STATIC ${cls_refcount_client_srcs})
113
114
115 # cls_version
116 set(cls_version_srcs version/cls_version.cc)
117 add_library(cls_version SHARED ${cls_version_srcs})
118 set_target_properties(cls_version PROPERTIES
119 VERSION "1.0.0"
120 SOVERSION "1"
121 INSTALL_RPATH ""
122 CXX_VISIBILITY_PRESET hidden)
123 install(TARGETS cls_version DESTINATION ${cls_dir})
124
125 set(cls_version_client_srcs
126 version/cls_version_client.cc
127 version/cls_version_types.cc)
128 add_library(cls_version_client STATIC ${cls_version_client_srcs})
129
130
131 # cls_log
132 set(cls_log_srcs log/cls_log.cc)
133 add_library(cls_log SHARED ${cls_log_srcs})
134 set_target_properties(cls_log PROPERTIES
135 VERSION "1.0.0"
136 SOVERSION "1"
137 INSTALL_RPATH ""
138 CXX_VISIBILITY_PRESET hidden)
139 install(TARGETS cls_log DESTINATION ${cls_dir})
140
141 set(cls_log_client_srcs log/cls_log_client.cc)
142 add_library(cls_log_client STATIC ${cls_log_client_srcs})
143
144
145 # cls_timeindex
146 set(cls_timeindex_srcs timeindex/cls_timeindex.cc)
147 add_library(cls_timeindex SHARED ${cls_timeindex_srcs})
148 set_target_properties(cls_timeindex PROPERTIES
149 VERSION "1.0.0"
150 SOVERSION "1"
151 INSTALL_RPATH ""
152 CXX_VISIBILITY_PRESET hidden)
153 install(TARGETS cls_timeindex DESTINATION ${cls_dir})
154
155 set(cls_timeindex_client_srcs
156 timeindex/cls_timeindex_types.cc
157 timeindex/cls_timeindex_client.cc)
158 add_library(cls_timeindex_client STATIC ${cls_timeindex_client_srcs})
159
160
161 # cls_user
162 set(cls_user_srcs user/cls_user.cc)
163 add_library(cls_user SHARED ${cls_user_srcs})
164 set_target_properties(cls_user PROPERTIES
165 VERSION "1.0.0"
166 SOVERSION "1"
167 INSTALL_RPATH ""
168 CXX_VISIBILITY_PRESET hidden)
169 install(TARGETS cls_user DESTINATION ${cls_dir})
170
171 set(cls_user_client_srcs
172 user/cls_user_client.cc
173 user/cls_user_types.cc
174 user/cls_user_ops.cc)
175 add_library(cls_user_client STATIC ${cls_user_client_srcs})
176
177
178 # cls_journal
179 set(cls_journal_srcs
180 journal/cls_journal.cc
181 journal/cls_journal_types.cc)
182 add_library(cls_journal SHARED ${cls_journal_srcs})
183 set_target_properties(cls_journal PROPERTIES
184 VERSION "1.0.0"
185 SOVERSION "1"
186 INSTALL_RPATH ""
187 CXX_VISIBILITY_PRESET hidden)
188 install(TARGETS cls_journal DESTINATION ${cls_dir})
189
190 set(cls_journal_client_srcs
191 journal/cls_journal_client.cc
192 journal/cls_journal_types.cc)
193 add_library(cls_journal_client STATIC ${cls_journal_client_srcs})
194
195
196 # cls_rgw
197 if (WITH_RADOSGW)
198 set(cls_rgw_srcs
199 rgw/cls_rgw.cc
200 rgw/cls_rgw_ops.cc
201 rgw/cls_rgw_types.cc
202 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
203 add_library(cls_rgw SHARED ${cls_rgw_srcs})
204 target_link_libraries(cls_rgw fmt json_spirit)
205 target_include_directories(cls_rgw
206 PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/driver/rados"
207 PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
208 PUBLIC "${CMAKE_SOURCE_DIR}/src/spawn/include")
209 set_target_properties(cls_rgw PROPERTIES
210 VERSION "1.0.0"
211 SOVERSION "1"
212 INSTALL_RPATH ""
213 CXX_VISIBILITY_PRESET hidden)
214 install(TARGETS cls_rgw DESTINATION ${cls_dir})
215
216 set(cls_rgw_client_srcs
217 rgw/cls_rgw_client.cc
218 rgw/cls_rgw_types.cc
219 rgw/cls_rgw_ops.cc)
220 add_library(cls_rgw_client STATIC ${cls_rgw_client_srcs})
221 target_include_directories(cls_rgw_client
222 PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/driver/rados"
223 PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
224 PUBLIC "${CMAKE_SOURCE_DIR}/src/spawn/include")
225
226 endif (WITH_RADOSGW)
227
228 # cls_cephfs
229 if (WITH_CEPHFS)
230 set(cls_cephfs_srcs
231 cephfs/cls_cephfs.cc)
232 add_library(cls_cephfs SHARED ${cls_cephfs_srcs})
233 set_target_properties(cls_cephfs PROPERTIES
234 VERSION "1.0.0"
235 SOVERSION "1"
236 INSTALL_RPATH ""
237 CXX_VISIBILITY_PRESET hidden)
238 install(TARGETS cls_cephfs DESTINATION ${cls_dir})
239
240 set(cls_cephfs_client_srcs
241 cephfs/cls_cephfs_client.cc)
242 add_library(cls_cephfs_client STATIC ${cls_cephfs_client_srcs})
243
244 endif (WITH_CEPHFS)
245
246 if (NOT WIN32)
247 # cls_lua
248 set(cls_lua_srcs
249 lua/cls_lua.cc
250 lua/lua_bufferlist.cc)
251 add_library(cls_lua SHARED ${cls_lua_srcs})
252 set_target_properties(cls_lua PROPERTIES
253 VERSION "1.0.0"
254 SOVERSION "1"
255 INSTALL_RPATH ""
256 CXX_VISIBILITY_PRESET hidden)
257 install(TARGETS cls_lua DESTINATION ${cls_dir})
258 target_link_libraries(cls_lua
259 ${LUA_LIBRARIES}
260 json_spirit)
261 target_include_directories(cls_lua PRIVATE "${LUA_INCLUDE_DIR}")
262 endif (NOT WIN32)
263
264 set(cls_lua_client_srcs
265 lua/cls_lua_client.cc)
266 add_library(cls_lua_client STATIC ${cls_lua_client_srcs})
267
268 # cls_cas
269 set(cls_cas_client_srcs
270 cas/cls_cas_client.cc)
271 add_library(cls_cas_client STATIC ${cls_cas_client_srcs})
272
273 set(cls_cas_internal_srcs
274 cas/cls_cas_internal.cc)
275 add_library(cls_cas_internal STATIC ${cls_cas_internal_srcs})
276
277 set(cls_cas_srcs
278 cas/cls_cas.cc)
279 add_library(cls_cas SHARED ${cls_cas_srcs})
280 target_link_libraries(cls_cas cls_cas_internal)
281 set_target_properties(cls_cas PROPERTIES
282 VERSION "1.0.0"
283 SOVERSION "1"
284 INSTALL_RPATH ""
285 CXX_VISIBILITY_PRESET hidden)
286 install(TARGETS cls_cas DESTINATION ${cls_dir})
287
288
289
290 #cls_queue
291 set(cls_queue_srcs
292 queue/cls_queue.cc
293 queue/cls_queue_src.cc
294 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
295 add_library(cls_queue SHARED ${cls_queue_srcs})
296 set_target_properties(cls_queue PROPERTIES
297 VERSION "1.0.0"
298 SOVERSION "1"
299 INSTALL_RPATH ""
300 CXX_VISIBILITY_PRESET hidden)
301 install(TARGETS cls_queue DESTINATION ${cls_dir})
302
303 set(cls_queue_client_srcs
304 queue/cls_queue_client.cc)
305 add_library(cls_queue_client STATIC ${cls_queue_client_srcs})
306
307 # cls_rgw_gc
308 if (WITH_RADOSGW)
309 set(cls_rgw_gc_srcs
310 rgw_gc/cls_rgw_gc.cc
311 queue/cls_queue_src.cc
312 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
313 add_library(cls_rgw_gc SHARED ${cls_rgw_gc_srcs})
314 target_include_directories(cls_rgw_gc
315 PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/driver/rados"
316 PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
317 PUBLIC "${CMAKE_SOURCE_DIR}/src/spawn/include")
318 set_target_properties(cls_rgw_gc PROPERTIES
319 VERSION "1.0.0"
320 SOVERSION "1"
321 INSTALL_RPATH ""
322 CXX_VISIBILITY_PRESET hidden)
323 install(TARGETS cls_rgw_gc DESTINATION ${cls_dir})
324
325 set(cls_rgw_gc_client_srcs
326 rgw_gc/cls_rgw_gc_client.cc)
327 add_library(cls_rgw_gc_client STATIC ${cls_rgw_gc_client_srcs})
328 target_include_directories(cls_rgw_gc_client
329 PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/driver/rados"
330 PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
331 PUBLIC "${CMAKE_SOURCE_DIR}/src/spawn/include")
332 endif (WITH_RADOSGW)
333
334
335 #cls_2pc_queue
336 set(cls_2pc_queue_srcs
337 2pc_queue/cls_2pc_queue.cc
338 queue/cls_queue_src.cc
339 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
340 add_library(cls_2pc_queue SHARED ${cls_2pc_queue_srcs})
341 set_target_properties(cls_2pc_queue PROPERTIES
342 VERSION "1.0.0"
343 SOVERSION "1"
344 INSTALL_RPATH ""
345 CXX_VISIBILITY_PRESET hidden)
346 install(TARGETS cls_2pc_queue DESTINATION ${cls_dir})
347 set(cls_2pc_queue_client_srcs
348 2pc_queue/cls_2pc_queue_client.cc)
349 add_library(cls_2pc_queue_client STATIC ${cls_2pc_queue_client_srcs})
350
351
352 add_subdirectory(cmpomap)
353
354 # cls_fifo
355 set(cls_fifo_srcs fifo/cls_fifo.cc)
356 add_library(cls_fifo SHARED ${cls_fifo_srcs})
357 set_target_properties(cls_fifo PROPERTIES
358 VERSION "1.0.0"
359 SOVERSION "1"
360 INSTALL_RPATH ""
361 CXX_VISIBILITY_PRESET hidden)
362 target_link_libraries(cls_fifo fmt)
363 install(TARGETS cls_fifo DESTINATION ${cls_dir})
364
365 # cls_test_remote_reads
366 set(cls_test_remote_reads_srcs test_remote_reads/cls_test_remote_reads.cc)
367 add_library(cls_test_remote_reads SHARED ${cls_test_remote_reads_srcs})
368 set_target_properties(cls_test_remote_reads PROPERTIES
369 VERSION "1.0.0"
370 SOVERSION "1"
371 INSTALL_RPATH ""
372 CXX_VISIBILITY_PRESET hidden)
373 install(TARGETS cls_test_remote_reads DESTINATION ${cls_dir})