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