summaryrefslogtreecommitdiffstats
path: root/src/cls/CMakeLists.txt
blob: 7981fd347485a860075ba3dde699611598273ce7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
## Rados object classes

set(cls_dir ${CMAKE_INSTALL_LIBDIR}/rados-classes)

# cls_sdk
add_library(cls_sdk SHARED sdk/cls_sdk.cc)
set_target_properties(cls_sdk PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_sdk DESTINATION ${cls_dir})

# cls_hello
set(cls_hello_srcs hello/cls_hello.cc)
add_library(cls_hello SHARED ${cls_hello_srcs})
set_target_properties(cls_hello PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_hello DESTINATION ${cls_dir})

# cls_numops
set(cls_numops_srcs numops/cls_numops.cc)
add_library(cls_numops SHARED ${cls_numops_srcs})
set_target_properties(cls_numops PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_numops DESTINATION ${cls_dir})

set(cls_numops_client_srcs numops/cls_numops_client.cc)
add_library(cls_numops_client STATIC ${cls_numops_client_srcs})


# cls_rbd
if (WITH_RBD)
  set(cls_rbd_srcs rbd/cls_rbd.cc rbd/cls_rbd_types.cc)
  add_library(cls_rbd SHARED ${cls_rbd_srcs})
  set_target_properties(cls_rbd PROPERTIES
    VERSION "1.0.0"
    SOVERSION "1"
    INSTALL_RPATH ""
    CXX_VISIBILITY_PRESET hidden)
  install(TARGETS cls_rbd DESTINATION ${cls_dir})

  set(cls_rbd_client_srcs rbd/cls_rbd_client.cc rbd/cls_rbd_types.cc)
  add_library(cls_rbd_client STATIC ${cls_rbd_client_srcs})
  target_link_libraries(cls_rbd_client cls_lock_client)

endif (WITH_RBD)

# cls_lock
set(cls_lock_srcs lock/cls_lock.cc)
add_library(cls_lock SHARED ${cls_lock_srcs})
set_target_properties(cls_lock PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_lock DESTINATION ${cls_dir})

set(cls_lock_client_srcs
  lock/cls_lock_client.cc
  lock/cls_lock_types.cc
  lock/cls_lock_ops.cc)
add_library(cls_lock_client STATIC ${cls_lock_client_srcs})


# cls_otp
if (WITH_RADOSGW)
  set(cls_otp_srcs otp/cls_otp.cc)
  add_library(cls_otp SHARED ${cls_otp_srcs})
  target_link_libraries(cls_otp OATH::OATH)
  target_include_directories(cls_otp
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/driver/rados"
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/spawn/include")
  set_target_properties(cls_otp PROPERTIES
    VERSION "1.0.0"
    SOVERSION "1"
    INSTALL_RPATH ""
    CXX_VISIBILITY_PRESET hidden)
  install(TARGETS cls_otp DESTINATION ${cls_dir})

  set(cls_otp_client_srcs
    otp/cls_otp_client.cc
    otp/cls_otp_types.cc
    )
  add_library(cls_otp_client STATIC ${cls_otp_client_srcs})
endif (WITH_RADOSGW)

# cls_refcount
set(cls_refcount_srcs
  refcount/cls_refcount.cc
  refcount/cls_refcount_ops.cc
  ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
add_library(cls_refcount SHARED ${cls_refcount_srcs})
target_link_libraries(cls_refcount json_spirit)
set_target_properties(cls_refcount PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_refcount DESTINATION ${cls_dir})

set(cls_refcount_client_srcs
  refcount/cls_refcount_client.cc
  refcount/cls_refcount_ops.cc)
add_library(cls_refcount_client STATIC ${cls_refcount_client_srcs})


# cls_version
set(cls_version_srcs version/cls_version.cc)
add_library(cls_version SHARED ${cls_version_srcs})
set_target_properties(cls_version PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_version DESTINATION ${cls_dir})

set(cls_version_client_srcs
  version/cls_version_client.cc
  version/cls_version_types.cc)
add_library(cls_version_client STATIC ${cls_version_client_srcs})


# cls_log
set(cls_log_srcs log/cls_log.cc)
add_library(cls_log SHARED ${cls_log_srcs})
set_target_properties(cls_log PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_log DESTINATION ${cls_dir})

set(cls_log_client_srcs log/cls_log_client.cc)
add_library(cls_log_client STATIC ${cls_log_client_srcs})


# cls_timeindex
set(cls_timeindex_srcs timeindex/cls_timeindex.cc)
add_library(cls_timeindex SHARED ${cls_timeindex_srcs})
set_target_properties(cls_timeindex PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_timeindex DESTINATION ${cls_dir})

set(cls_timeindex_client_srcs
  timeindex/cls_timeindex_types.cc
  timeindex/cls_timeindex_client.cc)
add_library(cls_timeindex_client STATIC ${cls_timeindex_client_srcs})


# cls_user
set(cls_user_srcs user/cls_user.cc)
add_library(cls_user SHARED ${cls_user_srcs})
set_target_properties(cls_user PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_user DESTINATION ${cls_dir})

set(cls_user_client_srcs
  user/cls_user_client.cc
  user/cls_user_types.cc
  user/cls_user_ops.cc)
add_library(cls_user_client STATIC ${cls_user_client_srcs})


# cls_journal
set(cls_journal_srcs
  journal/cls_journal.cc
  journal/cls_journal_types.cc)
add_library(cls_journal SHARED ${cls_journal_srcs})
set_target_properties(cls_journal PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_journal DESTINATION ${cls_dir})

set(cls_journal_client_srcs
  journal/cls_journal_client.cc
  journal/cls_journal_types.cc)
add_library(cls_journal_client STATIC ${cls_journal_client_srcs})


# cls_rgw
if (WITH_RADOSGW)
  set(cls_rgw_srcs
    rgw/cls_rgw.cc
    rgw/cls_rgw_ops.cc
    rgw/cls_rgw_types.cc
    ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
  add_library(cls_rgw SHARED ${cls_rgw_srcs})
  target_link_libraries(cls_rgw fmt json_spirit)
  target_include_directories(cls_rgw
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/driver/rados"
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/spawn/include")
  set_target_properties(cls_rgw PROPERTIES
    VERSION "1.0.0"
    SOVERSION "1"
    INSTALL_RPATH ""
    CXX_VISIBILITY_PRESET hidden)
  install(TARGETS cls_rgw DESTINATION ${cls_dir})

  set(cls_rgw_client_srcs
    rgw/cls_rgw_client.cc
    rgw/cls_rgw_types.cc
    rgw/cls_rgw_ops.cc)
  add_library(cls_rgw_client STATIC ${cls_rgw_client_srcs})
  target_include_directories(cls_rgw_client
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/driver/rados"
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/spawn/include")

endif (WITH_RADOSGW)

# cls_cephfs
if (WITH_CEPHFS)
  set(cls_cephfs_srcs
    cephfs/cls_cephfs.cc)
  add_library(cls_cephfs SHARED ${cls_cephfs_srcs})
  set_target_properties(cls_cephfs PROPERTIES
    VERSION "1.0.0"
    SOVERSION "1"
    INSTALL_RPATH ""
    CXX_VISIBILITY_PRESET hidden)
  install(TARGETS cls_cephfs DESTINATION ${cls_dir})

  set(cls_cephfs_client_srcs
    cephfs/cls_cephfs_client.cc)
  add_library(cls_cephfs_client STATIC ${cls_cephfs_client_srcs})

endif (WITH_CEPHFS)

if (NOT WIN32)
  # cls_lua
  set(cls_lua_srcs
      lua/cls_lua.cc
      lua/lua_bufferlist.cc)
  add_library(cls_lua SHARED ${cls_lua_srcs})
  set_target_properties(cls_lua PROPERTIES
    VERSION "1.0.0"
    SOVERSION "1"
    INSTALL_RPATH ""
    CXX_VISIBILITY_PRESET hidden)
  install(TARGETS cls_lua DESTINATION ${cls_dir})
  target_link_libraries(cls_lua
      ${LUA_LIBRARIES}
      json_spirit)
  target_include_directories(cls_lua PRIVATE "${LUA_INCLUDE_DIR}")
endif (NOT WIN32)

set(cls_lua_client_srcs
    lua/cls_lua_client.cc)
add_library(cls_lua_client STATIC ${cls_lua_client_srcs})

# cls_cas
set(cls_cas_client_srcs
  cas/cls_cas_client.cc)
add_library(cls_cas_client STATIC ${cls_cas_client_srcs})

set(cls_cas_internal_srcs
  cas/cls_cas_internal.cc)
add_library(cls_cas_internal STATIC ${cls_cas_internal_srcs})

set(cls_cas_srcs 
  cas/cls_cas.cc)
add_library(cls_cas SHARED ${cls_cas_srcs})
target_link_libraries(cls_cas cls_cas_internal)
set_target_properties(cls_cas PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_cas DESTINATION ${cls_dir})



#cls_queue
set(cls_queue_srcs
  queue/cls_queue.cc
  queue/cls_queue_src.cc
  ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
add_library(cls_queue SHARED ${cls_queue_srcs})
set_target_properties(cls_queue PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_queue DESTINATION ${cls_dir})

set(cls_queue_client_srcs
  queue/cls_queue_client.cc)
add_library(cls_queue_client STATIC ${cls_queue_client_srcs})

# cls_rgw_gc
if (WITH_RADOSGW)
  set(cls_rgw_gc_srcs
    rgw_gc/cls_rgw_gc.cc
    queue/cls_queue_src.cc
    ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
  add_library(cls_rgw_gc SHARED ${cls_rgw_gc_srcs})
  target_include_directories(cls_rgw_gc
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/driver/rados"
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/spawn/include")
  set_target_properties(cls_rgw_gc PROPERTIES
    VERSION "1.0.0"
    SOVERSION "1"
    INSTALL_RPATH ""
    CXX_VISIBILITY_PRESET hidden)
  install(TARGETS cls_rgw_gc DESTINATION ${cls_dir})

  set(cls_rgw_gc_client_srcs
    rgw_gc/cls_rgw_gc_client.cc)
  add_library(cls_rgw_gc_client STATIC ${cls_rgw_gc_client_srcs})
  target_include_directories(cls_rgw_gc_client
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/driver/rados"
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
	  PUBLIC "${CMAKE_SOURCE_DIR}/src/spawn/include")
endif (WITH_RADOSGW)


#cls_2pc_queue
set(cls_2pc_queue_srcs
  2pc_queue/cls_2pc_queue.cc
  queue/cls_queue_src.cc
  ${CMAKE_SOURCE_DIR}/src/common/ceph_json.cc)
add_library(cls_2pc_queue SHARED ${cls_2pc_queue_srcs})
set_target_properties(cls_2pc_queue PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_2pc_queue DESTINATION ${cls_dir})
set(cls_2pc_queue_client_srcs
  2pc_queue/cls_2pc_queue_client.cc)
add_library(cls_2pc_queue_client STATIC ${cls_2pc_queue_client_srcs})


add_subdirectory(cmpomap)

# cls_fifo
set(cls_fifo_srcs fifo/cls_fifo.cc)
add_library(cls_fifo SHARED ${cls_fifo_srcs})
set_target_properties(cls_fifo PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
target_link_libraries(cls_fifo fmt)
install(TARGETS cls_fifo DESTINATION ${cls_dir})

# cls_test_remote_reads
set(cls_test_remote_reads_srcs test_remote_reads/cls_test_remote_reads.cc)
add_library(cls_test_remote_reads SHARED ${cls_test_remote_reads_srcs})
set_target_properties(cls_test_remote_reads PROPERTIES
  VERSION "1.0.0"
  SOVERSION "1"
  INSTALL_RPATH ""
  CXX_VISIBILITY_PRESET hidden)
install(TARGETS cls_test_remote_reads DESTINATION ${cls_dir})