]>
Commit | Line | Data |
---|---|---|
31f18b77 FG |
1 | find_program(GPERF gperf) |
2 | if(NOT GPERF) | |
3 | message(FATAL_ERROR "Can't find gperf") | |
4 | endif() | |
20effc67 TL |
5 | |
6 | if(WITH_RADOSGW_SELECT_PARQUET) | |
7 | find_package(Arrow QUIET REQUIRED) | |
8 | set(ARROW_LIBRARIES "-larrow -lparquet") | |
9 | add_definitions(-D_ARROW_EXIST) | |
10 | message("-- arrow is installed, radosgw/s3select-op is able to process parquet objects") | |
11 | endif(WITH_RADOSGW_SELECT_PARQUET) | |
12 | ||
31f18b77 FG |
13 | function(gperf_generate input output) |
14 | add_custom_command( | |
15 | OUTPUT ${output} | |
11fdf7f2 | 16 | COMMAND ${GPERF} ${input} | sed "s/register //g" > ${output} |
31f18b77 FG |
17 | DEPENDS ${input} |
18 | COMMENT "Generate ${output}" | |
19 | ) | |
20 | endfunction() | |
21 | ||
f67539c2 TL |
22 | find_package(ICU 52.0 COMPONENTS uc REQUIRED) |
23 | ||
11fdf7f2 TL |
24 | set(librgw_common_srcs |
25 | services/svc_finisher.cc | |
9f95a23c TL |
26 | services/svc_bi_rados.cc |
27 | services/svc_bilog_rados.cc | |
28 | services/svc_bucket.cc | |
29 | services/svc_bucket_sobj.cc | |
30 | services/svc_bucket_sync_sobj.cc | |
31 | services/svc_cls.cc | |
32 | services/svc_config_key_rados.cc | |
9f95a23c TL |
33 | services/svc_mdlog.cc |
34 | services/svc_meta.cc | |
35 | services/svc_meta_be.cc | |
36 | services/svc_meta_be_otp.cc | |
37 | services/svc_meta_be_sobj.cc | |
11fdf7f2 | 38 | services/svc_notify.cc |
9f95a23c | 39 | services/svc_otp.cc |
11fdf7f2 TL |
40 | services/svc_quota.cc |
41 | services/svc_sync_modules.cc | |
42 | services/svc_rados.cc | |
43 | services/svc_sys_obj.cc | |
44 | services/svc_sys_obj_cache.cc | |
45 | services/svc_sys_obj_core.cc | |
9f95a23c TL |
46 | services/svc_tier_rados.cc |
47 | services/svc_user.cc | |
48 | services/svc_user_rados.cc | |
11fdf7f2 TL |
49 | services/svc_zone.cc |
50 | services/svc_zone_utils.cc | |
51 | rgw_service.cc | |
7c673cae FG |
52 | rgw_acl.cc |
53 | rgw_acl_s3.cc | |
54 | rgw_acl_swift.cc | |
9f95a23c | 55 | rgw_aio.cc |
11fdf7f2 | 56 | rgw_aio_throttle.cc |
7c673cae | 57 | rgw_auth.cc |
7c673cae | 58 | rgw_auth_s3.cc |
eafe8130 | 59 | rgw_arn.cc |
7c673cae FG |
60 | rgw_basic_types.cc |
61 | rgw_bucket.cc | |
f67539c2 | 62 | rgw_bucket_layout.cc |
9f95a23c | 63 | rgw_bucket_sync.cc |
7c673cae | 64 | rgw_cache.cc |
20effc67 | 65 | rgw_d3n_datacache.cc |
7c673cae FG |
66 | rgw_common.cc |
67 | rgw_compression.cc | |
adb31ebb | 68 | rgw_etag_verifier.cc |
7c673cae FG |
69 | rgw_cors.cc |
70 | rgw_cors_s3.cc | |
7c673cae | 71 | rgw_env.cc |
31f18b77 | 72 | rgw_es_query.cc |
7c673cae | 73 | rgw_formats.cc |
7c673cae | 74 | rgw_gc.cc |
9f95a23c | 75 | rgw_gc_log.cc |
7c673cae | 76 | rgw_http_client.cc |
7c673cae FG |
77 | rgw_keystone.cc |
78 | rgw_ldap.cc | |
7c673cae FG |
79 | rgw_lc.cc |
80 | rgw_lc_s3.cc | |
20effc67 | 81 | rgw_lc_tier.cc |
7c673cae FG |
82 | rgw_metadata.cc |
83 | rgw_multi.cc | |
84 | rgw_multi_del.cc | |
9f95a23c | 85 | rgw_obj_manifest.cc |
11fdf7f2 | 86 | rgw_pubsub.cc |
7c673cae FG |
87 | rgw_sync.cc |
88 | rgw_data_sync.cc | |
81eedcae | 89 | rgw_sync_counters.cc |
f67539c2 | 90 | rgw_sync_error_repo.cc |
7c673cae | 91 | rgw_sync_module.cc |
11fdf7f2 | 92 | rgw_sync_module_aws.cc |
7c673cae | 93 | rgw_sync_module_es.cc |
31f18b77 | 94 | rgw_sync_module_es_rest.cc |
7c673cae | 95 | rgw_sync_module_log.cc |
11fdf7f2 | 96 | rgw_sync_module_pubsub.cc |
9f95a23c | 97 | rgw_sync_policy.cc |
11fdf7f2 | 98 | rgw_pubsub_push.cc |
eafe8130 TL |
99 | rgw_notify.cc |
100 | rgw_notify_event_type.cc | |
11fdf7f2 | 101 | rgw_sync_module_pubsub_rest.cc |
11fdf7f2 | 102 | rgw_sync_trace.cc |
9f95a23c TL |
103 | rgw_trim_bilog.cc |
104 | rgw_trim_datalog.cc | |
105 | rgw_trim_mdlog.cc | |
7c673cae FG |
106 | rgw_period_history.cc |
107 | rgw_period_puller.cc | |
31f18b77 | 108 | rgw_reshard.cc |
7c673cae FG |
109 | rgw_coroutine.cc |
110 | rgw_cr_rados.cc | |
11fdf7f2 TL |
111 | rgw_cr_rest.cc |
112 | rgw_cr_tools.cc | |
7c673cae FG |
113 | rgw_object_expirer_core.cc |
114 | rgw_op.cc | |
11fdf7f2 | 115 | rgw_otp.cc |
7c673cae | 116 | rgw_policy_s3.cc |
9f95a23c | 117 | rgw_public_access.cc |
11fdf7f2 TL |
118 | rgw_putobj.cc |
119 | rgw_putobj_processor.cc | |
7c673cae FG |
120 | rgw_quota.cc |
121 | rgw_rados.cc | |
7c673cae | 122 | rgw_resolve.cc |
7c673cae FG |
123 | rgw_rest.cc |
124 | rgw_rest_client.cc | |
7c673cae FG |
125 | rgw_rest_conn.cc |
126 | rgw_rest_log.cc | |
127 | rgw_rest_metadata.cc | |
eafe8130 TL |
128 | rgw_rest_pubsub.cc |
129 | rgw_rest_pubsub_common.cc | |
7c673cae | 130 | rgw_rest_realm.cc |
7c673cae FG |
131 | rgw_rest_role.cc |
132 | rgw_rest_s3.cc | |
20effc67 | 133 | rgw_s3select.cc |
7c673cae | 134 | rgw_role.cc |
9f95a23c | 135 | rgw_sal.cc |
f67539c2 | 136 | rgw_sal_rados.cc |
d2e6a577 | 137 | rgw_string.cc |
224ce89b WB |
138 | rgw_tag.cc |
139 | rgw_tag_s3.cc | |
7c673cae | 140 | rgw_tools.cc |
f67539c2 | 141 | rgw_log_backing.cc |
7c673cae FG |
142 | rgw_user.cc |
143 | rgw_website.cc | |
144 | rgw_xml.cc | |
7c673cae FG |
145 | rgw_torrent.cc |
146 | rgw_crypt.cc | |
31f18b77 | 147 | rgw_crypt_sanitize.cc |
11fdf7f2 TL |
148 | rgw_iam_policy.cc |
149 | rgw_rest_user_policy.cc | |
150 | rgw_zone.cc | |
151 | rgw_sts.cc | |
152 | rgw_rest_sts.cc | |
eafe8130 | 153 | rgw_perf_counters.cc |
f91f0fd5 | 154 | rgw_rest_oidc_provider.cc |
9f95a23c | 155 | rgw_rest_iam.cc |
92f5a8d4 | 156 | rgw_object_lock.cc |
9f95a23c | 157 | rgw_kms.cc |
f67539c2 | 158 | rgw_kmip_client.cc |
f91f0fd5 | 159 | rgw_url.cc |
522d829b | 160 | rgw_oidc_provider.cc |
f67539c2 TL |
161 | rgw_datalog.cc |
162 | cls_fifo_legacy.cc | |
163 | rgw_lua_utils.cc | |
164 | rgw_lua.cc | |
20effc67 TL |
165 | rgw_lua_request.cc |
166 | rgw_bucket_encryption.cc | |
167 | rgw_tracer.cc) | |
11fdf7f2 TL |
168 | |
169 | if(WITH_RADOSGW_AMQP_ENDPOINT) | |
170 | list(APPEND librgw_common_srcs rgw_amqp.cc) | |
171 | endif() | |
9f95a23c TL |
172 | if(WITH_RADOSGW_KAFKA_ENDPOINT) |
173 | list(APPEND librgw_common_srcs rgw_kafka.cc) | |
174 | endif() | |
20effc67 TL |
175 | if(WITH_RADOSGW_DBSTORE) |
176 | add_subdirectory(store/dbstore) | |
177 | list(APPEND librgw_common_srcs rgw_sal_dbstore.cc) | |
178 | endif() | |
179 | if(WITH_JAEGER) | |
180 | list(APPEND librgw_common_srcs rgw_tracer.cc) | |
181 | endif() | |
11fdf7f2 | 182 | |
20effc67 | 183 | add_library(rgw_common STATIC ${librgw_common_srcs}) |
f67539c2 | 184 | |
20effc67 TL |
185 | include(CheckCXXCompilerFlag) |
186 | check_cxx_compiler_flag("-Wimplicit-const-int-float-conversion" | |
187 | COMPILER_SUPPORTS_WARN_IMPLICIT_CONST_INT_FLOAT_CONVERSION) | |
188 | if(COMPILER_SUPPORTS_WARN_IMPLICIT_CONST_INT_FLOAT_CONVERSION) | |
189 | target_compile_definitions(common-objs PRIVATE | |
190 | HAVE_WARN_IMPLICIT_CONST_INT_FLOAT_CONVERSION) | |
191 | endif() | |
f67539c2 | 192 | |
20effc67 TL |
193 | target_link_libraries(rgw_common |
194 | PRIVATE | |
195 | ceph-common | |
196 | cls_2pc_queue_client | |
197 | cls_cmpomap_client | |
198 | cls_lock_client | |
199 | cls_log_client | |
200 | cls_otp_client | |
201 | cls_refcount_client | |
202 | cls_rgw_client | |
203 | cls_rgw_gc_client | |
204 | cls_timeindex_client | |
205 | cls_user_client | |
206 | cls_version_client | |
207 | librados | |
208 | rt | |
209 | fmt::fmt | |
210 | ICU::uc | |
211 | OATH::OATH | |
212 | dmclock::dmclock | |
213 | ${CURL_LIBRARIES} | |
214 | ${EXPAT_LIBRARIES} | |
215 | ${LUA_LIBRARIES} | |
216 | ${ARROW_LIBRARIES} | |
217 | PUBLIC | |
218 | spawn) | |
219 | target_include_directories(rgw_common | |
220 | SYSTEM PUBLIC "services" | |
221 | PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw" | |
222 | PRIVATE "${LUA_INCLUDE_DIR}") | |
223 | if(WITH_RADOSGW_KAFKA_ENDPOINT) | |
224 | # used by rgw_kafka.cc | |
225 | target_link_libraries(rgw_common | |
226 | PRIVATE | |
227 | RDKafka::RDKafka) | |
228 | endif() | |
229 | if(WITH_RADOSGW_AMQP_ENDPOINT) | |
230 | # used by rgw_amqp.cc | |
231 | target_link_libraries(rgw_common | |
232 | PRIVATE | |
233 | RabbitMQ::RabbitMQ | |
234 | OpenSSL::SSL) | |
235 | endif() | |
236 | if(WITH_OPENLDAP) | |
237 | target_link_libraries(rgw_common | |
238 | PRIVATE | |
239 | OpenLDAP::OpenLDAP) | |
240 | endif() | |
241 | if(WITH_RADOSGW_LUA_PACKAGES) | |
242 | target_link_libraries(rgw_common | |
243 | PRIVATE Boost::filesystem StdFilesystem::filesystem) | |
244 | endif() | |
11fdf7f2 TL |
245 | |
246 | if(WITH_LTTNG) | |
247 | # rgw/rgw_op.cc includes "tracing/rgw_op.h" | |
248 | # rgw/rgw_rados.cc includes "tracing/rgw_rados.h" | |
249 | add_dependencies(rgw_common rgw_op-tp rgw_rados-tp) | |
250 | endif() | |
251 | ||
f67539c2 | 252 | if(WITH_JAEGER) |
20effc67 TL |
253 | add_dependencies(rgw_common ${jaeger_base}) |
254 | target_link_libraries(rgw_common PUBLIC ${jaeger_base}) | |
255 | endif() | |
256 | ||
257 | if(WITH_RADOSGW_DBSTORE) | |
258 | target_link_libraries(rgw_common PRIVATE global dbstore) | |
f67539c2 TL |
259 | endif() |
260 | ||
11fdf7f2 TL |
261 | set(rgw_a_srcs |
262 | rgw_auth_keystone.cc | |
263 | rgw_client_io.cc | |
264 | rgw_frontend.cc | |
265 | rgw_http_client_curl.cc | |
266 | rgw_loadgen.cc | |
267 | rgw_log.cc | |
268 | rgw_period_pusher.cc | |
269 | rgw_realm_reloader.cc | |
270 | rgw_realm_watcher.cc | |
271 | rgw_os_lib.cc | |
272 | rgw_process.cc | |
273 | rgw_rest_bucket.cc | |
274 | rgw_rest_config.cc | |
275 | rgw_rest_log.cc | |
276 | rgw_rest_metadata.cc | |
277 | rgw_rest_realm.cc | |
278 | rgw_rest_swift.cc | |
279 | rgw_rest_usage.cc | |
20effc67 | 280 | rgw_rest_info.cc |
11fdf7f2 | 281 | rgw_rest_user.cc |
20effc67 | 282 | rgw_rest_ratelimit.cc |
11fdf7f2 TL |
283 | rgw_swift_auth.cc |
284 | rgw_usage.cc | |
285 | rgw_opa.cc | |
286 | rgw_sts.cc | |
287 | rgw_rest_sts.cc) | |
31f18b77 FG |
288 | |
289 | gperf_generate(${CMAKE_SOURCE_DIR}/src/rgw/rgw_iam_policy_keywords.gperf | |
290 | rgw_iam_policy_keywords.frag.cc) | |
291 | set_source_files_properties(rgw_iam_policy.cc PROPERTIES | |
292 | OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/rgw/rgw_iam_policy_keywords.frag.cc | |
293 | COMPILE_FLAGS -I${CMAKE_BINARY_DIR}/src/rgw) | |
294 | ||
7c673cae | 295 | |
11fdf7f2 | 296 | add_library(rgw_a STATIC |
20effc67 | 297 | ${rgw_a_srcs}) |
7c673cae | 298 | |
9f95a23c | 299 | target_compile_definitions(rgw_a PUBLIC "-DCLS_CLIENT_HIDE_IOCTX") |
11fdf7f2 | 300 | target_include_directories(rgw_a PUBLIC "${CMAKE_SOURCE_DIR}/src/dmclock/support/src") |
f64942e4 | 301 | target_include_directories(rgw_a SYSTEM PUBLIC "../rapidjson/include") |
f91f0fd5 | 302 | target_include_directories(rgw_a SYSTEM PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw") |
7c673cae | 303 | |
11fdf7f2 TL |
304 | if(WITH_RADOSGW_AMQP_ENDPOINT) |
305 | find_package(RabbitMQ REQUIRED) | |
306 | endif() | |
9f95a23c TL |
307 | if(WITH_RADOSGW_KAFKA_ENDPOINT) |
308 | find_package(RDKafka 0.9.2 REQUIRED) | |
309 | endif() | |
11fdf7f2 TL |
310 | |
311 | target_link_libraries(rgw_a | |
312 | PRIVATE | |
20effc67 TL |
313 | common_utf8 global |
314 | ${CRYPTO_LIBS} | |
315 | ${LUA_LIBRARIES} | |
316 | ${ARROW_LIBRARIES} | |
317 | OATH::OATH | |
318 | PUBLIC | |
319 | rgw_common | |
320 | spawn) | |
7c673cae | 321 | |
11fdf7f2 TL |
322 | if(WITH_CURL_OPENSSL) |
323 | # used by rgw_http_client_curl.cc | |
324 | target_link_libraries(rgw_a PRIVATE OpenSSL::Crypto) | |
f64942e4 | 325 | endif() |
11fdf7f2 | 326 | |
11fdf7f2 | 327 | set(rgw_libs rgw_a) |
94b18763 | 328 | |
f67539c2 TL |
329 | list(APPEND rgw_libs ${LUA_LIBRARIES}) |
330 | ||
9f95a23c TL |
331 | set(rgw_schedulers_srcs |
332 | rgw_dmclock_scheduler_ctx.cc | |
20effc67 TL |
333 | rgw_dmclock_sync_scheduler.cc |
334 | rgw_dmclock_async_scheduler.cc) | |
7c673cae FG |
335 | set(radosgw_srcs |
336 | rgw_loadgen_process.cc | |
20effc67 TL |
337 | rgw_asio_client.cc |
338 | rgw_asio_frontend.cc) | |
7c673cae | 339 | |
9f95a23c TL |
340 | add_library(rgw_schedulers STATIC ${rgw_schedulers_srcs}) |
341 | target_link_libraries(rgw_schedulers | |
20effc67 | 342 | PUBLIC dmclock::dmclock spawn) |
9f95a23c | 343 | |
20effc67 TL |
344 | add_library(radosgw SHARED |
345 | ${radosgw_srcs} | |
346 | ${rgw_a_srcs} | |
347 | rgw_main.cc | |
348 | rgw_kmip_client_impl.cc) | |
9f95a23c TL |
349 | |
350 | target_compile_definitions(radosgw PUBLIC "-DCLS_CLIENT_HIDE_IOCTX") | |
20effc67 TL |
351 | target_include_directories(radosgw |
352 | PUBLIC "${CMAKE_SOURCE_DIR}/src/dmclock/support/src" | |
353 | PRIVATE "${CMAKE_SOURCE_DIR}/src/libkmip") | |
9f95a23c TL |
354 | target_include_directories(radosgw SYSTEM PUBLIC "../rapidjson/include") |
355 | ||
356 | target_link_libraries(radosgw | |
f67539c2 | 357 | PRIVATE ${rgw_libs} rgw_schedulers kmip |
9f95a23c TL |
358 | PUBLIC dmclock::dmclock |
359 | ) | |
20effc67 TL |
360 | if(WITH_RADOSGW_BEAST_OPENSSL) |
361 | # used by rgw_asio_frontend.cc | |
362 | target_link_libraries(radosgw PRIVATE OpenSSL::SSL) | |
11fdf7f2 | 363 | endif() |
9f95a23c TL |
364 | set_target_properties(radosgw PROPERTIES OUTPUT_NAME radosgw VERSION 2.0.0 |
365 | SOVERSION 2) | |
366 | install(TARGETS radosgw DESTINATION ${CMAKE_INSTALL_LIBDIR}) | |
7c673cae | 367 | |
9f95a23c TL |
368 | add_executable(radosgwd radosgw.cc) |
369 | target_link_libraries(radosgwd radosgw librados | |
11fdf7f2 | 370 | cls_rgw_client cls_otp_client cls_lock_client cls_refcount_client |
f67539c2 | 371 | cls_log_client cls_timeindex_client neorados_cls_fifo |
11fdf7f2 | 372 | cls_version_client cls_user_client |
9f95a23c | 373 | global |
20effc67 | 374 | ${LIB_RESOLV} |
7c673cae FG |
375 | ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES} |
376 | ${ALLOC_LIBS}) | |
9f95a23c TL |
377 | set_target_properties(radosgwd PROPERTIES OUTPUT_NAME radosgw) |
378 | install(TARGETS radosgwd DESTINATION bin) | |
7c673cae FG |
379 | |
380 | set(radosgw_admin_srcs | |
381 | rgw_admin.cc | |
f67539c2 | 382 | rgw_sync_checkpoint.cc |
7c673cae FG |
383 | rgw_orphan.cc) |
384 | add_executable(radosgw-admin ${radosgw_admin_srcs}) | |
11fdf7f2 TL |
385 | target_link_libraries(radosgw-admin ${rgw_libs} librados |
386 | cls_rgw_client cls_otp_client cls_lock_client cls_refcount_client | |
f67539c2 | 387 | cls_log_client cls_timeindex_client neorados_cls_fifo |
11fdf7f2 | 388 | cls_version_client cls_user_client |
20effc67 TL |
389 | global ${LIB_RESOLV} |
390 | OATH::OATH | |
11fdf7f2 | 391 | ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES}) |
7c673cae FG |
392 | install(TARGETS radosgw-admin DESTINATION bin) |
393 | ||
31f18b77 FG |
394 | set(radosgw_es_srcs |
395 | rgw_es_main.cc) | |
396 | add_executable(radosgw-es ${radosgw_es_srcs}) | |
11fdf7f2 TL |
397 | target_link_libraries(radosgw-es ${rgw_libs} librados |
398 | cls_rgw_client cls_otp_client cls_lock_client cls_refcount_client | |
f67539c2 | 399 | cls_log_client cls_timeindex_client neorados_cls_fifo |
11fdf7f2 | 400 | cls_version_client cls_user_client |
20effc67 | 401 | global ${LIB_RESOLV} |
11fdf7f2 | 402 | ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES}) |
31f18b77 FG |
403 | install(TARGETS radosgw-es DESTINATION bin) |
404 | ||
7c673cae FG |
405 | set(radosgw_token_srcs |
406 | rgw_token.cc) | |
407 | add_executable(radosgw-token ${radosgw_token_srcs}) | |
408 | target_link_libraries(radosgw-token librados | |
409 | global ${ALLOC_LIBS}) | |
410 | install(TARGETS radosgw-token DESTINATION bin) | |
411 | ||
412 | set(radosgw_object_expirer_srcs | |
413 | rgw_object_expirer.cc) | |
414 | add_executable(radosgw-object-expirer ${radosgw_object_expirer_srcs}) | |
11fdf7f2 TL |
415 | target_link_libraries(radosgw-object-expirer ${rgw_libs} librados |
416 | cls_rgw_client cls_otp_client cls_lock_client cls_refcount_client | |
f67539c2 | 417 | cls_log_client cls_timeindex_client neorados_cls_fifo |
11fdf7f2 | 418 | cls_version_client cls_user_client |
20effc67 | 419 | global ${LIB_RESOLV} |
7c673cae FG |
420 | ${CURL_LIBRARIES} ${EXPAT_LIBRARIES}) |
421 | install(TARGETS radosgw-object-expirer DESTINATION bin) | |
422 | ||
423 | set(librgw_srcs | |
424 | librgw.cc | |
425 | rgw_file.cc) | |
426 | add_library(rgw SHARED ${librgw_srcs}) | |
11fdf7f2 TL |
427 | target_link_libraries(rgw |
428 | PRIVATE | |
429 | ${rgw_libs} | |
7c673cae FG |
430 | librados |
431 | cls_rgw_client | |
11fdf7f2 | 432 | cls_otp_client |
7c673cae FG |
433 | cls_lock_client |
434 | cls_refcount_client | |
435 | cls_log_client | |
7c673cae | 436 | cls_timeindex_client |
f67539c2 | 437 | neorados_cls_fifo |
7c673cae | 438 | cls_version_client |
7c673cae FG |
439 | cls_user_client |
440 | global | |
441 | ${LIB_RESOLV} | |
442 | ${CURL_LIBRARIES} | |
11fdf7f2 TL |
443 | ${EXPAT_LIBRARIES} |
444 | PUBLIC | |
445 | dmclock::dmclock) | |
446 | ||
447 | if(WITH_RADOSGW_AMQP_ENDPOINT) | |
448 | target_link_libraries(rgw PRIVATE RabbitMQ::RabbitMQ) | |
f67539c2 | 449 | target_link_libraries(rgw PRIVATE OpenSSL::SSL) |
11fdf7f2 TL |
450 | endif() |
451 | ||
9f95a23c TL |
452 | if(WITH_RADOSGW_KAFKA_ENDPOINT) |
453 | target_link_libraries(rgw PRIVATE RDKafka::RDKafka) | |
454 | endif() | |
455 | ||
f67539c2 TL |
456 | target_link_libraries(rgw PRIVATE ${LUA_LIBRARIES}) |
457 | ||
7c673cae FG |
458 | set_target_properties(rgw PROPERTIES OUTPUT_NAME rgw VERSION 2.0.0 |
459 | SOVERSION 2) | |
460 | install(TARGETS rgw DESTINATION ${CMAKE_INSTALL_LIBDIR}) | |
11fdf7f2 | 461 | |
11fdf7f2 TL |
462 | if(WITH_TESTS) |
463 | add_executable(ceph_rgw_jsonparser | |
464 | rgw_jsonparser.cc) | |
465 | target_link_libraries(ceph_rgw_jsonparser | |
466 | ${rgw_libs} | |
467 | global) | |
468 | ||
469 | add_executable(ceph_rgw_multiparser | |
470 | rgw_multiparser.cc) | |
471 | target_link_libraries(ceph_rgw_multiparser | |
472 | ${rgw_libs} | |
473 | global) | |
474 | ||
475 | install(TARGETS | |
476 | ceph_rgw_jsonparser | |
477 | ceph_rgw_multiparser | |
478 | DESTINATION bin) | |
479 | endif(WITH_TESTS) | |
e306af50 | 480 | |
f67539c2 TL |
481 | install(PROGRAMS |
482 | rgw-gap-list | |
483 | rgw-gap-list-comparator | |
484 | rgw-orphan-list | |
e306af50 | 485 | DESTINATION bin) |