]> git.proxmox.com Git - ceph.git/blame - ceph/src/cls/CMakeLists.txt
update source to Ceph Pacific 16.2.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)
77 set_target_properties(cls_otp PROPERTIES
78 VERSION "1.0.0"
79 SOVERSION "1"
80 INSTALL_RPATH ""
81 CXX_VISIBILITY_PRESET hidden)
82 install(TARGETS cls_otp DESTINATION ${cls_dir})
83
84 set(cls_otp_client_srcs
85 otp/cls_otp_client.cc
86 otp/cls_otp_types.cc
87 )
88 add_library(cls_otp_client STATIC ${cls_otp_client_srcs})
89endif (WITH_RADOSGW)
90
7c673cae
FG
91# cls_refcount
92set(cls_refcount_srcs
93 refcount/cls_refcount.cc
94 refcount/cls_refcount_ops.cc
95 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
96add_library(cls_refcount SHARED ${cls_refcount_srcs})
97target_link_libraries(cls_refcount json_spirit)
98set_target_properties(cls_refcount PROPERTIES
99 VERSION "1.0.0"
100 SOVERSION "1"
11fdf7f2
TL
101 INSTALL_RPATH ""
102 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
103install(TARGETS cls_refcount DESTINATION ${cls_dir})
104
105set(cls_refcount_client_srcs
106 refcount/cls_refcount_client.cc
107 refcount/cls_refcount_ops.cc)
108add_library(cls_refcount_client STATIC ${cls_refcount_client_srcs})
109
7c673cae
FG
110
111# cls_version
112set(cls_version_srcs version/cls_version.cc)
113add_library(cls_version SHARED ${cls_version_srcs})
114set_target_properties(cls_version PROPERTIES
115 VERSION "1.0.0"
116 SOVERSION "1"
11fdf7f2
TL
117 INSTALL_RPATH ""
118 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
119install(TARGETS cls_version DESTINATION ${cls_dir})
120
121set(cls_version_client_srcs
122 version/cls_version_client.cc
123 version/cls_version_types.cc)
124add_library(cls_version_client STATIC ${cls_version_client_srcs})
125
7c673cae
FG
126
127# cls_log
128set(cls_log_srcs log/cls_log.cc)
129add_library(cls_log SHARED ${cls_log_srcs})
130set_target_properties(cls_log PROPERTIES
131 VERSION "1.0.0"
132 SOVERSION "1"
11fdf7f2
TL
133 INSTALL_RPATH ""
134 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
135install(TARGETS cls_log DESTINATION ${cls_dir})
136
137set(cls_log_client_srcs log/cls_log_client.cc)
138add_library(cls_log_client STATIC ${cls_log_client_srcs})
139
7c673cae 140
7c673cae
FG
141# cls_timeindex
142set(cls_timeindex_srcs timeindex/cls_timeindex.cc)
143add_library(cls_timeindex SHARED ${cls_timeindex_srcs})
144set_target_properties(cls_timeindex PROPERTIES
145 VERSION "1.0.0"
146 SOVERSION "1"
11fdf7f2
TL
147 INSTALL_RPATH ""
148 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
149install(TARGETS cls_timeindex DESTINATION ${cls_dir})
150
9f95a23c
TL
151set(cls_timeindex_client_srcs
152 timeindex/cls_timeindex_types.cc
153 timeindex/cls_timeindex_client.cc)
7c673cae
FG
154add_library(cls_timeindex_client STATIC ${cls_timeindex_client_srcs})
155
7c673cae 156
7c673cae
FG
157# cls_user
158set(cls_user_srcs user/cls_user.cc)
159add_library(cls_user SHARED ${cls_user_srcs})
160set_target_properties(cls_user PROPERTIES
161 VERSION "1.0.0"
162 SOVERSION "1"
11fdf7f2
TL
163 INSTALL_RPATH ""
164 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
165install(TARGETS cls_user DESTINATION ${cls_dir})
166
167set(cls_user_client_srcs
168 user/cls_user_client.cc
169 user/cls_user_types.cc
170 user/cls_user_ops.cc)
171add_library(cls_user_client STATIC ${cls_user_client_srcs})
172
7c673cae
FG
173
174# cls_journal
175set(cls_journal_srcs
176 journal/cls_journal.cc
177 journal/cls_journal_types.cc)
178add_library(cls_journal SHARED ${cls_journal_srcs})
179set_target_properties(cls_journal PROPERTIES
180 VERSION "1.0.0"
181 SOVERSION "1"
11fdf7f2
TL
182 INSTALL_RPATH ""
183 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
184install(TARGETS cls_journal DESTINATION ${cls_dir})
185
186set(cls_journal_client_srcs
187 journal/cls_journal_client.cc
188 journal/cls_journal_types.cc)
189add_library(cls_journal_client STATIC ${cls_journal_client_srcs})
190
7c673cae
FG
191
192# cls_rgw
193if (WITH_RADOSGW)
194 set(cls_rgw_srcs
195 rgw/cls_rgw.cc
196 rgw/cls_rgw_ops.cc
197 rgw/cls_rgw_types.cc
198 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
199 add_library(cls_rgw SHARED ${cls_rgw_srcs})
200 target_link_libraries(cls_rgw json_spirit)
201 set_target_properties(cls_rgw PROPERTIES
202 VERSION "1.0.0"
203 SOVERSION "1"
11fdf7f2
TL
204 INSTALL_RPATH ""
205 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
206 install(TARGETS cls_rgw DESTINATION ${cls_dir})
207
208 set(cls_rgw_client_srcs
209 rgw/cls_rgw_client.cc
210 rgw/cls_rgw_types.cc
211 rgw/cls_rgw_ops.cc)
212 add_library(cls_rgw_client STATIC ${cls_rgw_client_srcs})
213
7c673cae
FG
214endif (WITH_RADOSGW)
215
216# cls_cephfs
217if (WITH_CEPHFS)
218 set(cls_cephfs_srcs
219 cephfs/cls_cephfs.cc)
220 add_library(cls_cephfs SHARED ${cls_cephfs_srcs})
221 set_target_properties(cls_cephfs PROPERTIES
222 VERSION "1.0.0"
223 SOVERSION "1"
11fdf7f2
TL
224 INSTALL_RPATH ""
225 CXX_VISIBILITY_PRESET hidden)
7c673cae
FG
226 install(TARGETS cls_cephfs DESTINATION ${cls_dir})
227
228 set(cls_cephfs_client_srcs
229 cephfs/cls_cephfs_client.cc)
230 add_library(cls_cephfs_client STATIC ${cls_cephfs_client_srcs})
231
7c673cae
FG
232endif (WITH_CEPHFS)
233
f67539c2
TL
234if (NOT WIN32)
235 # cls_lua
236 set(cls_lua_srcs
237 lua/cls_lua.cc
238 lua/lua_bufferlist.cc)
239 add_library(cls_lua SHARED ${cls_lua_srcs})
240 set_target_properties(cls_lua PROPERTIES
241 VERSION "1.0.0"
242 SOVERSION "1"
243 INSTALL_RPATH ""
244 CXX_VISIBILITY_PRESET hidden)
245 install(TARGETS cls_lua DESTINATION ${cls_dir})
246 target_link_libraries(cls_lua
247 ${LUA_LIBRARIES}
248 json_spirit)
249 target_include_directories(cls_lua PRIVATE "${LUA_INCLUDE_DIR}")
250endif (NOT WIN32)
7c673cae
FG
251
252set(cls_lua_client_srcs
253 lua/cls_lua_client.cc)
254add_library(cls_lua_client STATIC ${cls_lua_client_srcs})
255
11fdf7f2 256# cls_cas
f67539c2
TL
257set(cls_cas_client_srcs
258 cas/cls_cas_client.cc)
259add_library(cls_cas_client STATIC ${cls_cas_client_srcs})
260
261set(cls_cas_internal_srcs
262 cas/cls_cas_internal.cc)
263add_library(cls_cas_internal STATIC ${cls_cas_internal_srcs})
264
11fdf7f2
TL
265set(cls_cas_srcs
266 cas/cls_cas.cc)
267add_library(cls_cas SHARED ${cls_cas_srcs})
f67539c2 268target_link_libraries(cls_cas cls_cas_internal)
11fdf7f2
TL
269set_target_properties(cls_cas PROPERTIES
270 VERSION "1.0.0"
271 SOVERSION "1"
272 INSTALL_RPATH ""
273 CXX_VISIBILITY_PRESET hidden)
274install(TARGETS cls_cas DESTINATION ${cls_dir})
275
f67539c2 276
9f95a23c
TL
277
278#cls_queue
279set(cls_queue_srcs
280 queue/cls_queue.cc
281 queue/cls_queue_src.cc
282 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
283add_library(cls_queue SHARED ${cls_queue_srcs})
284set_target_properties(cls_queue PROPERTIES
285 VERSION "1.0.0"
286 SOVERSION "1"
287 INSTALL_RPATH ""
288 CXX_VISIBILITY_PRESET hidden)
289install(TARGETS cls_queue DESTINATION ${cls_dir})
290
291set(cls_queue_client_srcs
292 queue/cls_queue_client.cc)
293add_library(cls_queue_client STATIC ${cls_queue_client_srcs})
294
295# cls_rgw_gc
296if (WITH_RADOSGW)
297 set(cls_rgw_gc_srcs
298 rgw_gc/cls_rgw_gc.cc
299 queue/cls_queue_src.cc
300 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
301 add_library(cls_rgw_gc SHARED ${cls_rgw_gc_srcs})
302 set_target_properties(cls_rgw_gc PROPERTIES
303 VERSION "1.0.0"
304 SOVERSION "1"
305 INSTALL_RPATH ""
306 CXX_VISIBILITY_PRESET hidden)
307 install(TARGETS cls_rgw_gc DESTINATION ${cls_dir})
308
309 set(cls_rgw_gc_client_srcs
310 rgw_gc/cls_rgw_gc_client.cc)
311 add_library(cls_rgw_gc_client STATIC ${cls_rgw_gc_client_srcs})
312endif (WITH_RADOSGW)
f67539c2
TL
313
314
315#cls_2pc_queue
316set(cls_2pc_queue_srcs
317 2pc_queue/cls_2pc_queue.cc
318 queue/cls_queue_src.cc
319 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
320add_library(cls_2pc_queue SHARED ${cls_2pc_queue_srcs})
321set_target_properties(cls_2pc_queue PROPERTIES
322 VERSION "1.0.0"
323 SOVERSION "1"
324 INSTALL_RPATH ""
325 CXX_VISIBILITY_PRESET hidden)
326install(TARGETS cls_2pc_queue DESTINATION ${cls_dir})
327set(cls_2pc_queue_client_srcs
328 2pc_queue/cls_2pc_queue_client.cc)
329add_library(cls_2pc_queue_client STATIC ${cls_2pc_queue_client_srcs})
330
331
332add_subdirectory(cmpomap)
333
334# cls_fifo
335set(cls_fifo_srcs fifo/cls_fifo.cc)
336add_library(cls_fifo SHARED ${cls_fifo_srcs})
337set_target_properties(cls_fifo PROPERTIES
338 VERSION "1.0.0"
339 SOVERSION "1"
340 INSTALL_RPATH ""
341 CXX_VISIBILITY_PRESET hidden)
342install(TARGETS cls_fifo DESTINATION ${cls_dir})