]> git.proxmox.com Git - ceph.git/blame - ceph/src/cls/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / cls / CMakeLists.txt
CommitLineData
7c673cae
FG
1## Rados object classes
2
3set(cls_dir ${CMAKE_INSTALL_LIBDIR}/rados-classes)
7c673cae
FG
4
5# cls_sdk
6add_library(cls_sdk SHARED sdk/cls_sdk.cc)
11fdf7f2
TL
7set_target_properties(cls_sdk PROPERTIES
8 VERSION "1.0.0"
9 SOVERSION "1"
10 INSTALL_RPATH ""
11 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
12install(TARGETS cls_sdk DESTINATION ${cls_dir})
13
14# cls_hello
15set(cls_hello_srcs hello/cls_hello.cc)
16add_library(cls_hello SHARED ${cls_hello_srcs})
17set_target_properties(cls_hello PROPERTIES
18 VERSION "1.0.0"
19 SOVERSION "1"
11fdf7f2
TL
20 INSTALL_RPATH ""
21 CXX_VISIBILITY_PRESET hidden)
7c673cae 22install(TARGETS cls_hello DESTINATION ${cls_dir})
7c673cae
FG
23
24# cls_numops
25set(cls_numops_srcs numops/cls_numops.cc)
26add_library(cls_numops SHARED ${cls_numops_srcs})
27set_target_properties(cls_numops PROPERTIES
28 VERSION "1.0.0"
29 SOVERSION "1"
11fdf7f2
TL
30 INSTALL_RPATH ""
31 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
32install(TARGETS cls_numops DESTINATION ${cls_dir})
33
34set(cls_numops_client_srcs numops/cls_numops_client.cc)
35add_library(cls_numops_client STATIC ${cls_numops_client_srcs})
36
7c673cae
FG
37
38# cls_rbd
39if (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"
11fdf7f2
TL
45 INSTALL_RPATH ""
46 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
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
7c673cae
FG
53endif (WITH_RBD)
54
55# cls_lock
56set(cls_lock_srcs lock/cls_lock.cc)
57add_library(cls_lock SHARED ${cls_lock_srcs})
58set_target_properties(cls_lock PROPERTIES
59 VERSION "1.0.0"
60 SOVERSION "1"
11fdf7f2
TL
61 INSTALL_RPATH ""
62 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
63install(TARGETS cls_lock DESTINATION ${cls_dir})
64
65set(cls_lock_client_srcs
66 lock/cls_lock_client.cc
67 lock/cls_lock_types.cc
68 lock/cls_lock_ops.cc)
69add_library(cls_lock_client STATIC ${cls_lock_client_srcs})
70
7c673cae 71
11fdf7f2
TL
72# cls_otp
73if (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)
1e59de90
TL
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")
11fdf7f2
TL
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})
93endif (WITH_RADOSGW)
94
7c673cae
FG
95# cls_refcount
96set(cls_refcount_srcs
97 refcount/cls_refcount.cc
98 refcount/cls_refcount_ops.cc
99 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
100add_library(cls_refcount SHARED ${cls_refcount_srcs})
101target_link_libraries(cls_refcount json_spirit)
102set_target_properties(cls_refcount PROPERTIES
103 VERSION "1.0.0"
104 SOVERSION "1"
11fdf7f2
TL
105 INSTALL_RPATH ""
106 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
107install(TARGETS cls_refcount DESTINATION ${cls_dir})
108
109set(cls_refcount_client_srcs
110 refcount/cls_refcount_client.cc
111 refcount/cls_refcount_ops.cc)
112add_library(cls_refcount_client STATIC ${cls_refcount_client_srcs})
113
7c673cae
FG
114
115# cls_version
116set(cls_version_srcs version/cls_version.cc)
117add_library(cls_version SHARED ${cls_version_srcs})
118set_target_properties(cls_version PROPERTIES
119 VERSION "1.0.0"
120 SOVERSION "1"
11fdf7f2
TL
121 INSTALL_RPATH ""
122 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
123install(TARGETS cls_version DESTINATION ${cls_dir})
124
125set(cls_version_client_srcs
126 version/cls_version_client.cc
127 version/cls_version_types.cc)
128add_library(cls_version_client STATIC ${cls_version_client_srcs})
129
7c673cae
FG
130
131# cls_log
132set(cls_log_srcs log/cls_log.cc)
133add_library(cls_log SHARED ${cls_log_srcs})
134set_target_properties(cls_log PROPERTIES
135 VERSION "1.0.0"
136 SOVERSION "1"
11fdf7f2
TL
137 INSTALL_RPATH ""
138 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
139install(TARGETS cls_log DESTINATION ${cls_dir})
140
141set(cls_log_client_srcs log/cls_log_client.cc)
142add_library(cls_log_client STATIC ${cls_log_client_srcs})
143
7c673cae 144
7c673cae
FG
145# cls_timeindex
146set(cls_timeindex_srcs timeindex/cls_timeindex.cc)
147add_library(cls_timeindex SHARED ${cls_timeindex_srcs})
148set_target_properties(cls_timeindex PROPERTIES
149 VERSION "1.0.0"
150 SOVERSION "1"
11fdf7f2
TL
151 INSTALL_RPATH ""
152 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
153install(TARGETS cls_timeindex DESTINATION ${cls_dir})
154
9f95a23c
TL
155set(cls_timeindex_client_srcs
156 timeindex/cls_timeindex_types.cc
157 timeindex/cls_timeindex_client.cc)
7c673cae
FG
158add_library(cls_timeindex_client STATIC ${cls_timeindex_client_srcs})
159
7c673cae 160
7c673cae
FG
161# cls_user
162set(cls_user_srcs user/cls_user.cc)
163add_library(cls_user SHARED ${cls_user_srcs})
164set_target_properties(cls_user PROPERTIES
165 VERSION "1.0.0"
166 SOVERSION "1"
11fdf7f2
TL
167 INSTALL_RPATH ""
168 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
169install(TARGETS cls_user DESTINATION ${cls_dir})
170
171set(cls_user_client_srcs
172 user/cls_user_client.cc
173 user/cls_user_types.cc
174 user/cls_user_ops.cc)
175add_library(cls_user_client STATIC ${cls_user_client_srcs})
176
7c673cae
FG
177
178# cls_journal
179set(cls_journal_srcs
180 journal/cls_journal.cc
181 journal/cls_journal_types.cc)
182add_library(cls_journal SHARED ${cls_journal_srcs})
183set_target_properties(cls_journal PROPERTIES
184 VERSION "1.0.0"
185 SOVERSION "1"
11fdf7f2
TL
186 INSTALL_RPATH ""
187 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
188install(TARGETS cls_journal DESTINATION ${cls_dir})
189
190set(cls_journal_client_srcs
191 journal/cls_journal_client.cc
192 journal/cls_journal_types.cc)
193add_library(cls_journal_client STATIC ${cls_journal_client_srcs})
194
7c673cae
FG
195
196# cls_rgw
197if (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})
1e59de90
TL
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")
7c673cae
FG
209 set_target_properties(cls_rgw PROPERTIES
210 VERSION "1.0.0"
211 SOVERSION "1"
11fdf7f2
TL
212 INSTALL_RPATH ""
213 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
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})
1e59de90
TL
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")
7c673cae 225
7c673cae
FG
226endif (WITH_RADOSGW)
227
228# cls_cephfs
229if (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"
11fdf7f2
TL
236 INSTALL_RPATH ""
237 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
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
7c673cae
FG
244endif (WITH_CEPHFS)
245
f67539c2
TL
246if (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}")
262endif (NOT WIN32)
7c673cae
FG
263
264set(cls_lua_client_srcs
265 lua/cls_lua_client.cc)
266add_library(cls_lua_client STATIC ${cls_lua_client_srcs})
267
11fdf7f2 268# cls_cas
f67539c2
TL
269set(cls_cas_client_srcs
270 cas/cls_cas_client.cc)
271add_library(cls_cas_client STATIC ${cls_cas_client_srcs})
272
273set(cls_cas_internal_srcs
274 cas/cls_cas_internal.cc)
275add_library(cls_cas_internal STATIC ${cls_cas_internal_srcs})
276
11fdf7f2
TL
277set(cls_cas_srcs
278 cas/cls_cas.cc)
279add_library(cls_cas SHARED ${cls_cas_srcs})
f67539c2 280target_link_libraries(cls_cas cls_cas_internal)
11fdf7f2
TL
281set_target_properties(cls_cas PROPERTIES
282 VERSION "1.0.0"
283 SOVERSION "1"
284 INSTALL_RPATH ""
285 CXX_VISIBILITY_PRESET hidden)
286install(TARGETS cls_cas DESTINATION ${cls_dir})
287
f67539c2 288
9f95a23c
TL
289
290#cls_queue
291set(cls_queue_srcs
292 queue/cls_queue.cc
293 queue/cls_queue_src.cc
294 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
295add_library(cls_queue SHARED ${cls_queue_srcs})
296set_target_properties(cls_queue PROPERTIES
297 VERSION "1.0.0"
298 SOVERSION "1"
299 INSTALL_RPATH ""
300 CXX_VISIBILITY_PRESET hidden)
301install(TARGETS cls_queue DESTINATION ${cls_dir})
302
303set(cls_queue_client_srcs
304 queue/cls_queue_client.cc)
305add_library(cls_queue_client STATIC ${cls_queue_client_srcs})
306
307# cls_rgw_gc
308if (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})
1e59de90
TL
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")
9f95a23c
TL
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})
1e59de90
TL
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")
9f95a23c 332endif (WITH_RADOSGW)
f67539c2
TL
333
334
335#cls_2pc_queue
336set(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)
340add_library(cls_2pc_queue SHARED ${cls_2pc_queue_srcs})
341set_target_properties(cls_2pc_queue PROPERTIES
342 VERSION "1.0.0"
343 SOVERSION "1"
344 INSTALL_RPATH ""
345 CXX_VISIBILITY_PRESET hidden)
346install(TARGETS cls_2pc_queue DESTINATION ${cls_dir})
347set(cls_2pc_queue_client_srcs
348 2pc_queue/cls_2pc_queue_client.cc)
349add_library(cls_2pc_queue_client STATIC ${cls_2pc_queue_client_srcs})
350
351
352add_subdirectory(cmpomap)
353
354# cls_fifo
355set(cls_fifo_srcs fifo/cls_fifo.cc)
356add_library(cls_fifo SHARED ${cls_fifo_srcs})
357set_target_properties(cls_fifo PROPERTIES
358 VERSION "1.0.0"
359 SOVERSION "1"
360 INSTALL_RPATH ""
361 CXX_VISIBILITY_PRESET hidden)
1e59de90 362target_link_libraries(cls_fifo fmt)
f67539c2 363install(TARGETS cls_fifo DESTINATION ${cls_dir})
20effc67
TL
364
365# cls_test_remote_reads
366set(cls_test_remote_reads_srcs test_remote_reads/cls_test_remote_reads.cc)
367add_library(cls_test_remote_reads SHARED ${cls_test_remote_reads_srcs})
368set_target_properties(cls_test_remote_reads PROPERTIES
369 VERSION "1.0.0"
370 SOVERSION "1"
371 INSTALL_RPATH ""
372 CXX_VISIBILITY_PRESET hidden)
373install(TARGETS cls_test_remote_reads DESTINATION ${cls_dir})