rgw_sync_module_log.cc
rgw_sync_module_pubsub.cc
rgw_pubsub_push.cc
- rgw_amqp.cc
rgw_sync_module_pubsub_rest.cc
rgw_sync_log_trim.cc
rgw_sync_trace.cc
rgw_rest_sts.cc
rgw_perf_counters.cc)
+if(WITH_RADOSGW_AMQP_ENDPOINT)
+ list(APPEND librgw_common_srcs rgw_amqp.cc)
+endif()
+
add_library(rgw_common OBJECT ${librgw_common_srcs})
target_include_directories(rgw_common SYSTEM PUBLIC "services")
target_include_directories(rgw_a SYSTEM PUBLIC "../rapidjson/include")
-find_package(RabbitMQ REQUIRED)
+if(WITH_RADOSGW_AMQP_ENDPOINT)
+ find_package(RabbitMQ REQUIRED)
+endif()
+
target_link_libraries(rgw_a
PUBLIC dmclock::dmclock
PRIVATE
add_library(radosgw_a STATIC ${radosgw_srcs}
$<TARGET_OBJECTS:civetweb_common_objs>)
-target_link_libraries(radosgw_a PRIVATE rgw_a RabbitMQ::RabbitMQ)
+target_link_libraries(radosgw_a PRIVATE rgw_a)
if(WITH_RADOSGW_BEAST_FRONTEND AND WITH_RADOSGW_BEAST_OPENSSL)
# used by rgw_asio_frontend.cc
target_link_libraries(radosgw_a PRIVATE OpenSSL::SSL)
endif()
+if(WITH_RADOSGW_AMQP_ENDPOINT)
+ # used by rgw_amqp.cc
+ target_link_libraries(radosgw_a PRIVATE RabbitMQ::RabbitMQ)
+endif()
add_executable(radosgw rgw_main.cc)
target_link_libraries(radosgw radosgw_a librados
cls_log_client cls_timeindex_client
cls_version_client cls_user_client
global ${FCGI_LIBRARY} ${LIB_RESOLV}
- ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES} RabbitMQ::RabbitMQ)
+ ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES})
+if(WITH_RADOSGW_AMQP_ENDPOINT)
+ target_link_libraries(radosgw-admin RabbitMQ::RabbitMQ)
+endif()
install(TARGETS radosgw-admin DESTINATION bin)
set(radosgw_es_srcs
cls_log_client cls_timeindex_client
cls_version_client cls_user_client
global ${FCGI_LIBRARY} ${LIB_RESOLV}
- ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES} RabbitMQ::RabbitMQ)
+ ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES})
+if(WITH_RADOSGW_AMQP_ENDPOINT)
+ target_link_libraries(radosgw-es RabbitMQ::RabbitMQ)
+endif()
install(TARGETS radosgw-es DESTINATION bin)
set(radosgw_token_srcs
cls_log_client cls_timeindex_client
cls_version_client cls_user_client
global ${FCGI_LIBRARY} ${LIB_RESOLV}
- ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} RabbitMQ::RabbitMQ)
+ ${CURL_LIBRARIES} ${EXPAT_LIBRARIES})
+if(WITH_RADOSGW_AMQP_ENDPOINT)
+ target_link_libraries(radosgw-object-expirer RabbitMQ::RabbitMQ)
+endif()
install(TARGETS radosgw-object-expirer DESTINATION bin)
set(librgw_srcs
global
${LIB_RESOLV}
${CURL_LIBRARIES}
- ${EXPAT_LIBRARIES}
- RabbitMQ::RabbitMQ)
+ ${EXPAT_LIBRARIES})
+if(WITH_RADOSGW_AMQP_ENDPOINT)
+ target_link_libraries(rgw PRIVATE RabbitMQ::RabbitMQ)
+endif()
set_target_properties(rgw PROPERTIES OUTPUT_NAME rgw VERSION 2.0.0
SOVERSION 2)
install(TARGETS rgw DESTINATION ${CMAKE_INSTALL_LIBDIR})
${CURL_LIBRARIES}
${EXPAT_LIBRARIES}
${OPENLDAP_LIBRARIES}
- dmclock::dmclock
- RabbitMQ::RabbitMQ)
+ dmclock::dmclock)
set_target_properties(rgw_admin_user PROPERTIES OUTPUT_NAME rgw_admin_user VERSION 1.0.0
SOVERSION 0)
install(TARGETS rgw_admin_user DESTINATION ${CMAKE_INSTALL_LIBDIR})
+if(WITH_RADOSGW_AMQP_ENDPOINT)
+ target_link_libraries(rgw_admin_user PRIVATE RabbitMQ::RabbitMQ)
+endif()
if(WITH_BOOST_CONTEXT)
target_link_libraries(rgw_admin_user PRIVATE Boost::coroutine Boost::context)
endif()
#include "rgw_common.h"
#include "rgw_data_sync.h"
#include "rgw_pubsub.h"
+#include "acconfig.h"
+#ifdef WITH_RADOSGW_AMQP_ENDPOINT
#include "rgw_amqp.h"
+#endif
#include <boost/asio/yield.hpp>
#include <boost/algorithm/string.hpp>
#include <functional>
}
};
+#ifdef WITH_RADOSGW_AMQP_ENDPOINT
class RGWPubSubAMQPEndpoint : public RGWPubSubEndpoint {
private:
enum ack_level_t {
static const std::string AMQP_0_9_1("0-9-1");
static const std::string AMQP_1_0("1-0");
+#endif // ifdef WITH_RADOSGW_AMQP_ENDPOINT
RGWPubSubEndpoint::Ptr RGWPubSubEndpoint::create(const std::string& endpoint,
const std::string& topic,
const auto& schema = endpoint.substr(0,pos);
if (schema == "http" || schema == "https") {
return Ptr(new RGWPubSubHTTPEndpoint(endpoint, args));
+#ifdef WITH_RADOSGW_AMQP_ENDPOINT
} else if (schema == "amqp") {
bool exists;
std::string version = args.get("amqp-version", &exists);
} else if (schema == "amqps") {
throw configuration_error("amqps not supported");
return nullptr;
+#endif
}
throw configuration_error("unknown schema " + schema);
-# amqp mock library
-set(amqp_mock_src
- amqp_mock.cc amqp_url.c)
-add_library(amqp_mock STATIC ${amqp_mock_src})
+
+if(WITH_RADOSGW_AMQP_ENDPOINT)
+ # amqp mock library
+ set(amqp_mock_src
+ amqp_mock.cc amqp_url.c)
+ add_library(amqp_mock STATIC ${amqp_mock_src})
+endif()
#unittest_rgw_bencode
add_executable(unittest_rgw_bencode test_rgw_bencode.cc)
target_link_libraries(unittest_rgw_dmclock_scheduler Boost::coroutine Boost::context)
endif()
-# unittest_rgw_amqp
-add_executable(unittest_rgw_amqp test_rgw_amqp.cc)
-add_ceph_unittest(unittest_rgw_amqp)
-
-target_link_libraries(unittest_rgw_amqp rgw_a amqp_mock)
-
+if(WITH_RADOSGW_AMQP_ENDPOINT)
+ add_executable(unittest_rgw_amqp test_rgw_amqp.cc)
+ add_ceph_unittest(unittest_rgw_amqp)
+ target_link_libraries(unittest_rgw_amqp rgw_a amqp_mock)
+endif()