set(librgw_common_srcs
services/svc_finisher.cc
+ services/svc_bi_rados.cc
+ services/svc_bilog_rados.cc
+ services/svc_bucket.cc
+ services/svc_bucket_sobj.cc
+ services/svc_bucket_sync_sobj.cc
+ services/svc_cls.cc
+ services/svc_config_key_rados.cc
+ services/svc_datalog_rados.cc
+ services/svc_mdlog.cc
+ services/svc_meta.cc
+ services/svc_meta_be.cc
+ services/svc_meta_be_otp.cc
+ services/svc_meta_be_sobj.cc
services/svc_notify.cc
+ services/svc_otp.cc
services/svc_quota.cc
services/svc_sync_modules.cc
services/svc_rados.cc
services/svc_sys_obj.cc
services/svc_sys_obj_cache.cc
services/svc_sys_obj_core.cc
+ services/svc_tier_rados.cc
+ services/svc_user.cc
+ services/svc_user_rados.cc
services/svc_zone.cc
services/svc_zone_utils.cc
rgw_service.cc
rgw_acl.cc
rgw_acl_s3.cc
rgw_acl_swift.cc
+ rgw_aio.cc
rgw_aio_throttle.cc
rgw_auth.cc
rgw_auth_s3.cc
rgw_arn.cc
rgw_basic_types.cc
rgw_bucket.cc
+ rgw_bucket_sync.cc
rgw_cache.cc
rgw_common.cc
rgw_compression.cc
rgw_es_query.cc
rgw_formats.cc
rgw_gc.cc
+ rgw_gc_log.cc
rgw_http_client.cc
rgw_json_enc.cc
rgw_keystone.cc
rgw_metadata.cc
rgw_multi.cc
rgw_multi_del.cc
+ rgw_obj_manifest.cc
rgw_pubsub.cc
rgw_sync.cc
rgw_data_sync.cc
rgw_sync_module_es_rest.cc
rgw_sync_module_log.cc
rgw_sync_module_pubsub.cc
+ rgw_sync_policy.cc
rgw_pubsub_push.cc
rgw_notify.cc
rgw_notify_event_type.cc
rgw_sync_module_pubsub_rest.cc
- rgw_sync_log_trim.cc
rgw_sync_trace.cc
+ rgw_trim_bilog.cc
+ rgw_trim_datalog.cc
+ rgw_trim_mdlog.cc
rgw_period_history.cc
rgw_period_puller.cc
rgw_reshard.cc
rgw_op.cc
rgw_otp.cc
rgw_policy_s3.cc
+ rgw_public_access.cc
rgw_putobj.cc
rgw_putobj_processor.cc
rgw_quota.cc
rgw_rest_role.cc
rgw_rest_s3.cc
rgw_role.cc
+ rgw_sal.cc
rgw_string.cc
rgw_tag.cc
rgw_tag_s3.cc
rgw_sts.cc
rgw_rest_sts.cc
rgw_perf_counters.cc
- rgw_object_lock.cc)
+ rgw_rest_iam.cc
+ rgw_object_lock.cc
+ rgw_kms.cc
+ rgw_url.cc)
if(WITH_RADOSGW_AMQP_ENDPOINT)
list(APPEND librgw_common_srcs rgw_amqp.cc)
endif()
+if(WITH_RADOSGW_KAFKA_ENDPOINT)
+ list(APPEND librgw_common_srcs rgw_kafka.cc)
+endif()
add_library(rgw_common OBJECT ${librgw_common_srcs})
target_include_directories(rgw_common SYSTEM PUBLIC "services")
target_include_directories(rgw_common PUBLIC "${CMAKE_SOURCE_DIR}/src/dmclock/support/src")
+target_include_directories(rgw_common PUBLIC "${CMAKE_SOURCE_DIR}/src/fmt/include")
+
+if(WITH_BOOST_CONTEXT)
+ target_include_directories(rgw_common PRIVATE
+ $<TARGET_PROPERTY:spawn,INTERFACE_INCLUDE_DIRECTORIES>)
+endif()
if(WITH_LTTNG)
# rgw/rgw_op.cc includes "tracing/rgw_op.h"
add_dependencies(rgw_a civetweb_h)
+target_compile_definitions(rgw_a PUBLIC "-DCLS_CLIENT_HIDE_IOCTX")
target_include_directories(rgw_a PUBLIC "${CMAKE_SOURCE_DIR}/src/dmclock/support/src")
target_include_directories(rgw_a SYSTEM PUBLIC "../rapidjson/include")
if(WITH_RADOSGW_AMQP_ENDPOINT)
find_package(RabbitMQ REQUIRED)
endif()
+if(WITH_RADOSGW_KAFKA_ENDPOINT)
+ find_package(RDKafka 0.9.2 REQUIRED)
+endif()
target_link_libraries(rgw_a
PRIVATE
librados cls_otp_client cls_lock_client cls_rgw_client cls_refcount_client
cls_log_client cls_timeindex_client cls_version_client
- cls_user_client ceph-common common_utf8 global
+ cls_user_client cls_rgw_gc_client ceph-common common_utf8 global
${CURL_LIBRARIES}
${EXPAT_LIBRARIES}
${OPENLDAP_LIBRARIES} ${CRYPTO_LIBS}
endif()
if(WITH_BOOST_CONTEXT)
- target_link_libraries(rgw_a PRIVATE Boost::coroutine Boost::context)
+ target_link_libraries(rgw_a PUBLIC spawn)
endif()
set(rgw_libs rgw_a)
# used by rgw_amqp.cc
list(APPEND rgw_libs RabbitMQ::RabbitMQ)
endif()
+if(WITH_RADOSGW_KAFKA_ENDPOINT)
+ # used by rgw_kafka.cc
+ list(APPEND rgw_libs RDKafka::RDKafka)
+endif()
+set(rgw_schedulers_srcs
+ rgw_dmclock_scheduler_ctx.cc
+ rgw_dmclock_sync_scheduler.cc)
set(radosgw_srcs
rgw_loadgen_process.cc
rgw_civetweb.cc
rgw_civetweb_frontend.cc
- rgw_civetweb_log.cc
- rgw_dmclock_scheduler_ctx.cc
- rgw_dmclock_sync_scheduler.cc)
-
+ rgw_civetweb_log.cc)
if (WITH_RADOSGW_FCGI_FRONTEND)
list(APPEND radosgw_srcs rgw_fcgi_process.cc)
endif()
if(WITH_RADOSGW_BEAST_FRONTEND)
list(APPEND radosgw_srcs
rgw_asio_client.cc
- rgw_asio_frontend.cc
+ rgw_asio_frontend.cc)
+ list(APPEND rgw_schedulers_srcs
rgw_dmclock_async_scheduler.cc)
endif()
-add_library(radosgw_a STATIC ${radosgw_srcs}
+add_library(rgw_schedulers STATIC ${rgw_schedulers_srcs})
+target_link_libraries(rgw_schedulers
+ PUBLIC dmclock::dmclock)
+
+add_library(radosgw SHARED ${radosgw_srcs} ${rgw_a_srcs} rgw_main.cc
$<TARGET_OBJECTS:civetweb_common_objs>)
-target_link_libraries(radosgw_a PRIVATE ${rgw_libs})
-if(WITH_RADOSGW_BEAST_FRONTEND AND WITH_RADOSGW_BEAST_OPENSSL)
- # used by rgw_asio_frontend.cc
- target_link_libraries(radosgw_a PRIVATE OpenSSL::SSL)
+
+add_dependencies(radosgw civetweb_h)
+
+target_compile_definitions(radosgw PUBLIC "-DCLS_CLIENT_HIDE_IOCTX")
+target_include_directories(radosgw PUBLIC "${CMAKE_SOURCE_DIR}/src/dmclock/support/src")
+target_include_directories(radosgw SYSTEM PUBLIC "../rapidjson/include")
+
+target_link_libraries(radosgw
+ PRIVATE ${rgw_libs} rgw_schedulers
+ PUBLIC dmclock::dmclock
+)
+if(WITH_RADOSGW_BEAST_FRONTEND)
+ target_link_libraries(rgw_schedulers PUBLIC spawn)
+ if(WITH_RADOSGW_BEAST_OPENSSL)
+ # used by rgw_asio_frontend.cc
+ target_link_libraries(radosgw PRIVATE OpenSSL::SSL)
+ endif()
endif()
+set_target_properties(radosgw PROPERTIES OUTPUT_NAME radosgw VERSION 2.0.0
+ SOVERSION 2)
+install(TARGETS radosgw DESTINATION ${CMAKE_INSTALL_LIBDIR})
-add_executable(radosgw rgw_main.cc)
-target_link_libraries(radosgw radosgw_a librados
+add_executable(radosgwd radosgw.cc)
+target_link_libraries(radosgwd radosgw librados
cls_rgw_client cls_otp_client cls_lock_client cls_refcount_client
cls_log_client cls_timeindex_client
cls_version_client cls_user_client
- global dmclock::dmclock
+ global
${FCGI_LIBRARY} ${LIB_RESOLV}
${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES}
${ALLOC_LIBS})
-install(TARGETS radosgw DESTINATION bin)
+set_target_properties(radosgwd PROPERTIES OUTPUT_NAME radosgw)
+install(TARGETS radosgwd DESTINATION bin)
set(radosgw_admin_srcs
rgw_admin.cc
target_link_libraries(rgw PRIVATE RabbitMQ::RabbitMQ)
endif()
+if(WITH_RADOSGW_KAFKA_ENDPOINT)
+ target_link_libraries(rgw PRIVATE RDKafka::RDKafka)
+endif()
+
set_target_properties(rgw PROPERTIES OUTPUT_NAME rgw VERSION 2.0.0
SOVERSION 2)
install(TARGETS rgw DESTINATION ${CMAKE_INSTALL_LIBDIR})
cls_timeindex_client
cls_version_client
cls_user_client
+ cls_rgw_gc_client
global
${CURL_LIBRARIES}
${EXPAT_LIBRARIES}
if(WITH_RADOSGW_AMQP_ENDPOINT)
target_link_libraries(rgw_admin_user PRIVATE RabbitMQ::RabbitMQ)
endif()
+if(WITH_RADOSGW_KAFKA_ENDPOINT)
+ target_link_libraries(rgw_admin_user PRIVATE RDKafka::RDKafka)
+endif()
if(WITH_BOOST_CONTEXT)
- target_link_libraries(rgw_admin_user PRIVATE Boost::coroutine Boost::context)
+ target_link_libraries(rgw_admin_user PRIVATE spawn)
endif()
if(WITH_TESTS)
ceph_rgw_multiparser
DESTINATION bin)
endif(WITH_TESTS)
+
+install(PROGRAMS rgw-orphan-list
+ DESTINATION bin)