Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / 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()