1 ## Rados object classes
3 set(cls_dir ${CMAKE_INSTALL_LIBDIR}/rados-classes)
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})
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
18 install(TARGETS cls_hello DESTINATION ${cls_dir})
19 list(APPEND cls_embedded_srcs ${cls_hello_srcs})
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
28 install(TARGETS cls_numops DESTINATION ${cls_dir})
30 set(cls_numops_client_srcs numops/cls_numops_client.cc)
31 add_library(cls_numops_client STATIC ${cls_numops_client_srcs})
33 list(APPEND cls_embedded_srcs ${cls_numops_srcs} ${cls_numops_client_srcs})
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
43 install(TARGETS cls_rbd DESTINATION ${cls_dir})
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)
49 list(APPEND cls_embedded_srcs ${cls_rbd_srcs} ${cls_rbd_client_srcs})
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
59 install(TARGETS cls_lock DESTINATION ${cls_dir})
61 set(cls_lock_client_srcs
62 lock/cls_lock_client.cc
63 lock/cls_lock_types.cc
65 add_library(cls_lock_client STATIC ${cls_lock_client_srcs})
67 list(APPEND cls_embedded_srcs ${cls_lock_srcs} ${cls_lock_client_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
80 install(TARGETS cls_refcount DESTINATION ${cls_dir})
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})
87 list(APPEND cls_embedded_srcs ${cls_refcount_srcs} ${cls_refcount_client_srcs})
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
96 install(TARGETS cls_version DESTINATION ${cls_dir})
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})
103 list(APPEND cls_embedded_srcs ${cls_version_srcs} ${cls_version_client_srcs})
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
112 install(TARGETS cls_log DESTINATION ${cls_dir})
114 set(cls_log_client_srcs log/cls_log_client.cc)
115 add_library(cls_log_client STATIC ${cls_log_client_srcs})
117 list(APPEND cls_embedded_srcs ${cls_log_srcs} ${cls_log_client_srcs})
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
126 install(TARGETS cls_statelog DESTINATION ${cls_dir})
128 set(cls_statelog_client_srcs statelog/cls_statelog_client.cc)
129 add_library(cls_statelog_client STATIC ${cls_statelog_client_srcs})
131 list(APPEND cls_embedded_srcs ${cls_statelog_srcs} ${cls_statelog_client_srcs})
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
140 install(TARGETS cls_timeindex DESTINATION ${cls_dir})
142 set(cls_timeindex_client_srcs timeindex/cls_timeindex_client.cc)
143 add_library(cls_timeindex_client STATIC ${cls_timeindex_client_srcs})
145 list(APPEND cls_embedded_srcs ${cls_timeindex_srcs} ${cls_timeindex_client_srcs})
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
154 install(TARGETS cls_replica_log DESTINATION ${cls_dir})
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})
162 list(APPEND cls_embedded_srcs ${cls_replica_log_srcs} ${cls_replica_log_client_srcs})
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
171 install(TARGETS cls_user DESTINATION ${cls_dir})
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})
179 list(APPEND cls_embedded_srcs ${cls_user_srcs} ${cls_user_client_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
190 install(TARGETS cls_journal DESTINATION ${cls_dir})
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})
197 list(APPEND cls_embedded_srcs ${cls_journal_srcs} ${cls_journal_client_srcs})
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
212 install(TARGETS cls_rgw DESTINATION ${cls_dir})
214 set(cls_rgw_client_srcs
215 rgw/cls_rgw_client.cc
218 add_library(cls_rgw_client STATIC ${cls_rgw_client_srcs})
220 list(APPEND cls_embedded_srcs ${cls_rgw_srcs} ${cls_rgw_client_srcs})
226 cephfs/cls_cephfs.cc)
227 add_library(cls_cephfs SHARED ${cls_cephfs_srcs})
228 set_target_properties(cls_cephfs PROPERTIES
232 install(TARGETS cls_cephfs DESTINATION ${cls_dir})
234 set(cls_cephfs_client_srcs
235 cephfs/cls_cephfs_client.cc)
236 add_library(cls_cephfs_client STATIC ${cls_cephfs_client_srcs})
238 list(APPEND cls_embedded_srcs ${cls_cephfs_srcs} ${cls_cephfs_client_srcs})
244 lua/lua_bufferlist.cc)
245 add_library(cls_lua SHARED ${cls_lua_srcs})
246 set_target_properties(cls_lua PROPERTIES
250 install(TARGETS cls_lua DESTINATION ${cls_dir})
251 target_link_libraries(cls_lua
255 set(cls_lua_client_srcs
256 lua/cls_lua_client.cc)
257 add_library(cls_lua_client STATIC ${cls_lua_client_srcs})
259 list(APPEND cls_embedded_srcs ${cls_lua_srcs} ${cls_lua_client_srcs})
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)