1 ## Rados object classes
3 set(cls_dir ${CMAKE_INSTALL_LIBDIR}/rados-classes)
6 add_library(cls_sdk SHARED sdk/cls_sdk.cc)
7 set_target_properties(cls_sdk PROPERTIES
11 CXX_VISIBILITY_PRESET hidden)
12 install(TARGETS cls_sdk DESTINATION ${cls_dir})
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
21 CXX_VISIBILITY_PRESET hidden)
22 install(TARGETS cls_hello DESTINATION ${cls_dir})
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
31 CXX_VISIBILITY_PRESET hidden)
32 install(TARGETS cls_numops DESTINATION ${cls_dir})
34 set(cls_numops_client_srcs numops/cls_numops_client.cc)
35 add_library(cls_numops_client STATIC ${cls_numops_client_srcs})
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
46 CXX_VISIBILITY_PRESET hidden)
47 install(TARGETS cls_rbd DESTINATION ${cls_dir})
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)
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
62 CXX_VISIBILITY_PRESET hidden)
63 install(TARGETS cls_lock DESTINATION ${cls_dir})
65 set(cls_lock_client_srcs
66 lock/cls_lock_client.cc
67 lock/cls_lock_types.cc
69 add_library(cls_lock_client STATIC ${cls_lock_client_srcs})
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
85 CXX_VISIBILITY_PRESET hidden)
86 install(TARGETS cls_otp DESTINATION ${cls_dir})
88 set(cls_otp_client_srcs
92 add_library(cls_otp_client STATIC ${cls_otp_client_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
106 CXX_VISIBILITY_PRESET hidden)
107 install(TARGETS cls_refcount DESTINATION ${cls_dir})
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})
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
122 CXX_VISIBILITY_PRESET hidden)
123 install(TARGETS cls_version DESTINATION ${cls_dir})
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})
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
138 CXX_VISIBILITY_PRESET hidden)
139 install(TARGETS cls_log DESTINATION ${cls_dir})
141 set(cls_log_client_srcs log/cls_log_client.cc)
142 add_library(cls_log_client STATIC ${cls_log_client_srcs})
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
152 CXX_VISIBILITY_PRESET hidden)
153 install(TARGETS cls_timeindex DESTINATION ${cls_dir})
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})
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
168 CXX_VISIBILITY_PRESET hidden)
169 install(TARGETS cls_user DESTINATION ${cls_dir})
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})
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
187 CXX_VISIBILITY_PRESET hidden)
188 install(TARGETS cls_journal DESTINATION ${cls_dir})
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})
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
213 CXX_VISIBILITY_PRESET hidden)
214 install(TARGETS cls_rgw DESTINATION ${cls_dir})
216 set(cls_rgw_client_srcs
217 rgw/cls_rgw_client.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")
231 cephfs/cls_cephfs.cc)
232 add_library(cls_cephfs SHARED ${cls_cephfs_srcs})
233 set_target_properties(cls_cephfs PROPERTIES
237 CXX_VISIBILITY_PRESET hidden)
238 install(TARGETS cls_cephfs DESTINATION ${cls_dir})
240 set(cls_cephfs_client_srcs
241 cephfs/cls_cephfs_client.cc)
242 add_library(cls_cephfs_client STATIC ${cls_cephfs_client_srcs})
250 lua/lua_bufferlist.cc)
251 add_library(cls_lua SHARED ${cls_lua_srcs})
252 set_target_properties(cls_lua PROPERTIES
256 CXX_VISIBILITY_PRESET hidden)
257 install(TARGETS cls_lua DESTINATION ${cls_dir})
258 target_link_libraries(cls_lua
261 target_include_directories(cls_lua PRIVATE "${LUA_INCLUDE_DIR}")
264 set(cls_lua_client_srcs
265 lua/cls_lua_client.cc)
266 add_library(cls_lua_client STATIC ${cls_lua_client_srcs})
269 set(cls_cas_client_srcs
270 cas/cls_cas_client.cc)
271 add_library(cls_cas_client STATIC ${cls_cas_client_srcs})
273 set(cls_cas_internal_srcs
274 cas/cls_cas_internal.cc)
275 add_library(cls_cas_internal STATIC ${cls_cas_internal_srcs})
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
285 CXX_VISIBILITY_PRESET hidden)
286 install(TARGETS cls_cas DESTINATION ${cls_dir})
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
300 CXX_VISIBILITY_PRESET hidden)
301 install(TARGETS cls_queue DESTINATION ${cls_dir})
303 set(cls_queue_client_srcs
304 queue/cls_queue_client.cc)
305 add_library(cls_queue_client STATIC ${cls_queue_client_srcs})
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
322 CXX_VISIBILITY_PRESET hidden)
323 install(TARGETS cls_rgw_gc DESTINATION ${cls_dir})
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")
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
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})
352 add_subdirectory(cmpomap)
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
361 CXX_VISIBILITY_PRESET hidden)
362 target_link_libraries(cls_fifo fmt)
363 install(TARGETS cls_fifo DESTINATION ${cls_dir})
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
372 CXX_VISIBILITY_PRESET hidden)
373 install(TARGETS cls_test_remote_reads DESTINATION ${cls_dir})