]> git.proxmox.com Git - ceph.git/blob - ceph/src/cls/CMakeLists.txt
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / cls / CMakeLists.txt
1 ## Rados object classes
2
3 set(cls_dir ${CMAKE_INSTALL_LIBDIR}/rados-classes)
4 set(cls_embedded_srcs)
5
6 # cls_sdk
7 add_library(cls_sdk SHARED sdk/cls_sdk.cc)
8 set_target_properties(cls_sdk PROPERTIES VERSION "1.0.0" SOVERSION "1")
9 install(TARGETS cls_sdk DESTINATION ${cls_dir})
10
11 # cls_hello
12 set(cls_hello_srcs hello/cls_hello.cc)
13 add_library(cls_hello SHARED ${cls_hello_srcs})
14 set_target_properties(cls_hello PROPERTIES
15 VERSION "1.0.0"
16 SOVERSION "1"
17 INSTALL_RPATH "")
18 install(TARGETS cls_hello DESTINATION ${cls_dir})
19 list(APPEND cls_embedded_srcs ${cls_hello_srcs})
20
21 # cls_numops
22 set(cls_numops_srcs numops/cls_numops.cc)
23 add_library(cls_numops SHARED ${cls_numops_srcs})
24 set_target_properties(cls_numops PROPERTIES
25 VERSION "1.0.0"
26 SOVERSION "1"
27 INSTALL_RPATH "")
28 install(TARGETS cls_numops DESTINATION ${cls_dir})
29
30 set(cls_numops_client_srcs numops/cls_numops_client.cc)
31 add_library(cls_numops_client STATIC ${cls_numops_client_srcs})
32
33 list(APPEND cls_embedded_srcs ${cls_numops_srcs} ${cls_numops_client_srcs})
34
35 # cls_rbd
36 if (WITH_RBD)
37 set(cls_rbd_srcs rbd/cls_rbd.cc rbd/cls_rbd_types.cc)
38 add_library(cls_rbd SHARED ${cls_rbd_srcs})
39 set_target_properties(cls_rbd PROPERTIES
40 VERSION "1.0.0"
41 SOVERSION "1"
42 INSTALL_RPATH "")
43 install(TARGETS cls_rbd DESTINATION ${cls_dir})
44
45 set(cls_rbd_client_srcs rbd/cls_rbd_client.cc rbd/cls_rbd_types.cc)
46 add_library(cls_rbd_client STATIC ${cls_rbd_client_srcs})
47 target_link_libraries(cls_rbd_client cls_lock_client)
48
49 list(APPEND cls_embedded_srcs ${cls_rbd_srcs} ${cls_rbd_client_srcs})
50 endif (WITH_RBD)
51
52 # cls_lock
53 set(cls_lock_srcs lock/cls_lock.cc)
54 add_library(cls_lock SHARED ${cls_lock_srcs})
55 set_target_properties(cls_lock PROPERTIES
56 VERSION "1.0.0"
57 SOVERSION "1"
58 INSTALL_RPATH "")
59 install(TARGETS cls_lock DESTINATION ${cls_dir})
60
61 set(cls_lock_client_srcs
62 lock/cls_lock_client.cc
63 lock/cls_lock_types.cc
64 lock/cls_lock_ops.cc)
65 add_library(cls_lock_client STATIC ${cls_lock_client_srcs})
66
67 list(APPEND cls_embedded_srcs ${cls_lock_srcs} ${cls_lock_client_srcs})
68
69 # cls_refcount
70 set(cls_refcount_srcs
71 refcount/cls_refcount.cc
72 refcount/cls_refcount_ops.cc
73 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
74 add_library(cls_refcount SHARED ${cls_refcount_srcs})
75 target_link_libraries(cls_refcount json_spirit)
76 set_target_properties(cls_refcount PROPERTIES
77 VERSION "1.0.0"
78 SOVERSION "1"
79 INSTALL_RPATH "")
80 install(TARGETS cls_refcount DESTINATION ${cls_dir})
81
82 set(cls_refcount_client_srcs
83 refcount/cls_refcount_client.cc
84 refcount/cls_refcount_ops.cc)
85 add_library(cls_refcount_client STATIC ${cls_refcount_client_srcs})
86
87 list(APPEND cls_embedded_srcs ${cls_refcount_srcs} ${cls_refcount_client_srcs})
88
89 # cls_version
90 set(cls_version_srcs version/cls_version.cc)
91 add_library(cls_version SHARED ${cls_version_srcs})
92 set_target_properties(cls_version PROPERTIES
93 VERSION "1.0.0"
94 SOVERSION "1"
95 INSTALL_RPATH "")
96 install(TARGETS cls_version DESTINATION ${cls_dir})
97
98 set(cls_version_client_srcs
99 version/cls_version_client.cc
100 version/cls_version_types.cc)
101 add_library(cls_version_client STATIC ${cls_version_client_srcs})
102
103 list(APPEND cls_embedded_srcs ${cls_version_srcs} ${cls_version_client_srcs})
104
105 # cls_log
106 set(cls_log_srcs log/cls_log.cc)
107 add_library(cls_log SHARED ${cls_log_srcs})
108 set_target_properties(cls_log PROPERTIES
109 VERSION "1.0.0"
110 SOVERSION "1"
111 INSTALL_RPATH "")
112 install(TARGETS cls_log DESTINATION ${cls_dir})
113
114 set(cls_log_client_srcs log/cls_log_client.cc)
115 add_library(cls_log_client STATIC ${cls_log_client_srcs})
116
117 list(APPEND cls_embedded_srcs ${cls_log_srcs} ${cls_log_client_srcs})
118
119 # cls_statelog
120 set(cls_statelog_srcs statelog/cls_statelog.cc)
121 add_library(cls_statelog SHARED ${cls_statelog_srcs})
122 set_target_properties(cls_statelog PROPERTIES
123 VERSION "1.0.0"
124 SOVERSION "1"
125 INSTALL_RPATH "")
126 install(TARGETS cls_statelog DESTINATION ${cls_dir})
127
128 set(cls_statelog_client_srcs statelog/cls_statelog_client.cc)
129 add_library(cls_statelog_client STATIC ${cls_statelog_client_srcs})
130
131 list(APPEND cls_embedded_srcs ${cls_statelog_srcs} ${cls_statelog_client_srcs})
132
133 # cls_timeindex
134 set(cls_timeindex_srcs timeindex/cls_timeindex.cc)
135 add_library(cls_timeindex SHARED ${cls_timeindex_srcs})
136 set_target_properties(cls_timeindex PROPERTIES
137 VERSION "1.0.0"
138 SOVERSION "1"
139 INSTALL_RPATH "")
140 install(TARGETS cls_timeindex DESTINATION ${cls_dir})
141
142 set(cls_timeindex_client_srcs timeindex/cls_timeindex_client.cc)
143 add_library(cls_timeindex_client STATIC ${cls_timeindex_client_srcs})
144
145 list(APPEND cls_embedded_srcs ${cls_timeindex_srcs} ${cls_timeindex_client_srcs})
146
147 # cls_replica_log
148 set(cls_replica_log_srcs replica_log/cls_replica_log.cc)
149 add_library(cls_replica_log SHARED ${cls_replica_log_srcs})
150 set_target_properties(cls_replica_log PROPERTIES
151 VERSION "1.0.0"
152 SOVERSION "1"
153 INSTALL_RPATH "")
154 install(TARGETS cls_replica_log DESTINATION ${cls_dir})
155
156 set(cls_replica_log_client_srcs
157 replica_log/cls_replica_log_types.cc
158 replica_log/cls_replica_log_ops.cc
159 replica_log/cls_replica_log_client.cc)
160 add_library(cls_replica_log_client STATIC ${cls_replica_log_client_srcs})
161
162 list(APPEND cls_embedded_srcs ${cls_replica_log_srcs} ${cls_replica_log_client_srcs})
163
164 # cls_user
165 set(cls_user_srcs user/cls_user.cc)
166 add_library(cls_user SHARED ${cls_user_srcs})
167 set_target_properties(cls_user PROPERTIES
168 VERSION "1.0.0"
169 SOVERSION "1"
170 INSTALL_RPATH "")
171 install(TARGETS cls_user DESTINATION ${cls_dir})
172
173 set(cls_user_client_srcs
174 user/cls_user_client.cc
175 user/cls_user_types.cc
176 user/cls_user_ops.cc)
177 add_library(cls_user_client STATIC ${cls_user_client_srcs})
178
179 list(APPEND cls_embedded_srcs ${cls_user_srcs} ${cls_user_client_srcs})
180
181 # cls_journal
182 set(cls_journal_srcs
183 journal/cls_journal.cc
184 journal/cls_journal_types.cc)
185 add_library(cls_journal SHARED ${cls_journal_srcs})
186 set_target_properties(cls_journal PROPERTIES
187 VERSION "1.0.0"
188 SOVERSION "1"
189 INSTALL_RPATH "")
190 install(TARGETS cls_journal DESTINATION ${cls_dir})
191
192 set(cls_journal_client_srcs
193 journal/cls_journal_client.cc
194 journal/cls_journal_types.cc)
195 add_library(cls_journal_client STATIC ${cls_journal_client_srcs})
196
197 list(APPEND cls_embedded_srcs ${cls_journal_srcs} ${cls_journal_client_srcs})
198
199 # cls_rgw
200 if (WITH_RADOSGW)
201 set(cls_rgw_srcs
202 rgw/cls_rgw.cc
203 rgw/cls_rgw_ops.cc
204 rgw/cls_rgw_types.cc
205 ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
206 add_library(cls_rgw SHARED ${cls_rgw_srcs})
207 target_link_libraries(cls_rgw json_spirit)
208 set_target_properties(cls_rgw PROPERTIES
209 VERSION "1.0.0"
210 SOVERSION "1"
211 INSTALL_RPATH "")
212 install(TARGETS cls_rgw DESTINATION ${cls_dir})
213
214 set(cls_rgw_client_srcs
215 rgw/cls_rgw_client.cc
216 rgw/cls_rgw_types.cc
217 rgw/cls_rgw_ops.cc)
218 add_library(cls_rgw_client STATIC ${cls_rgw_client_srcs})
219
220 list(APPEND cls_embedded_srcs ${cls_rgw_srcs} ${cls_rgw_client_srcs})
221 endif (WITH_RADOSGW)
222
223 # cls_cephfs
224 if (WITH_CEPHFS)
225 set(cls_cephfs_srcs
226 cephfs/cls_cephfs.cc)
227 add_library(cls_cephfs SHARED ${cls_cephfs_srcs})
228 set_target_properties(cls_cephfs PROPERTIES
229 VERSION "1.0.0"
230 SOVERSION "1"
231 INSTALL_RPATH "")
232 install(TARGETS cls_cephfs DESTINATION ${cls_dir})
233
234 set(cls_cephfs_client_srcs
235 cephfs/cls_cephfs_client.cc)
236 add_library(cls_cephfs_client STATIC ${cls_cephfs_client_srcs})
237
238 list(APPEND cls_embedded_srcs ${cls_cephfs_srcs} ${cls_cephfs_client_srcs})
239 endif (WITH_CEPHFS)
240
241 # cls_lua
242 set(cls_lua_srcs
243 lua/cls_lua.cc
244 lua/lua_bufferlist.cc)
245 add_library(cls_lua SHARED ${cls_lua_srcs})
246 set_target_properties(cls_lua PROPERTIES
247 VERSION "1.0.0"
248 SOVERSION "1"
249 INSTALL_RPATH "")
250 install(TARGETS cls_lua DESTINATION ${cls_dir})
251 target_link_libraries(cls_lua
252 liblua
253 json_spirit)
254
255 set(cls_lua_client_srcs
256 lua/cls_lua_client.cc)
257 add_library(cls_lua_client STATIC ${cls_lua_client_srcs})
258
259 list(APPEND cls_embedded_srcs ${cls_lua_srcs} ${cls_lua_client_srcs})
260
261 if(WITH_EMBEDDED)
262 include(MergeStaticLibraries)
263 list(REMOVE_DUPLICATES cls_embedded_srcs)
264 add_library(cephd_cls_base STATIC ${cls_embedded_srcs})
265 # while not necessary this seems to bring in the lua's include directories
266 # so that cls_lua srcs build correctly
267 target_link_libraries(cephd_cls_base liblua)
268 set_target_properties(cephd_cls_base PROPERTIES COMPILE_DEFINITIONS BUILDING_FOR_EMBEDDED)
269 merge_static_libraries(cephd_cls cephd_cls_base liblua)
270 endif()