aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/rmqcpp
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/rmqcpp
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/rmqcpp')
-rw-r--r--vcpkg/ports/rmqcpp/disable-tests-and-examples.patch22
-rw-r--r--vcpkg/ports/rmqcpp/new-boost.patch115
-rw-r--r--vcpkg/ports/rmqcpp/portfile.cmake32
-rw-r--r--vcpkg/ports/rmqcpp/usage4
-rw-r--r--vcpkg/ports/rmqcpp/vcpkg.json26
5 files changed, 199 insertions, 0 deletions
diff --git a/vcpkg/ports/rmqcpp/disable-tests-and-examples.patch b/vcpkg/ports/rmqcpp/disable-tests-and-examples.patch
new file mode 100644
index 0000000..7986ea6
--- /dev/null
+++ b/vcpkg/ports/rmqcpp/disable-tests-and-examples.patch
@@ -0,0 +1,22 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 33db7ca..41ffd06 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,7 +7,6 @@ enable_testing()
+ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
+ add_subdirectory(src)
+-add_subdirectory(examples)
+
+ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+ add_compile_options(-Wall -Wextra -Wpedantic)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index f051820..2db9e2a 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -9,5 +9,3 @@ find_package(GTest REQUIRED)
+ find_package(bal REQUIRED)
+
+ add_subdirectory(rmq)
+-add_subdirectory(rmqtestmocks)
+-add_subdirectory(tests)
diff --git a/vcpkg/ports/rmqcpp/new-boost.patch b/vcpkg/ports/rmqcpp/new-boost.patch
new file mode 100644
index 0000000..4648473
--- /dev/null
+++ b/vcpkg/ports/rmqcpp/new-boost.patch
@@ -0,0 +1,115 @@
+diff --git a/src/rmq/rmqio/rmqio_asioconnection.cpp b/src/rmq/rmqio/rmqio_asioconnection.cpp
+index bdd0e97..ce874ec 100644
+--- a/src/rmq/rmqio/rmqio_asioconnection.cpp
++++ b/src/rmq/rmqio/rmqio_asioconnection.cpp
+@@ -444,21 +444,16 @@ bool AsioConnection<SocketType>::doRead(bsl::size_t bytes_transferred)
+ bsl::size_t bytes_decoded = 0;
+ boost::asio::streambuf::const_buffers_type bufs = d_inbound->data();
+ bsl::vector<rmqamqpt::Frame> readFrames;
+- for (boost::asio::streambuf::const_buffers_type::const_iterator i =
+- bufs.begin();
+- i != bufs.end();
+- ++i) {
+- boost::asio::const_buffer buf(*i);
+- Decoder::ReturnCode rcode =
+- d_frameDecoder->appendBytes(&readFrames, buf.data(), buf.size());
+- if (rcode != Decoder::OK) {
+- BALL_LOG_WARN << "Bad rcode from decoder: " << rcode;
+- // Fail but we still want to process frames we were able to decode
+- success = false;
+- break;
+- };
+- bytes_decoded += buf.size();
+- }
++
++ boost::asio::const_buffer buf(bufs);
++ Decoder::ReturnCode rcode =
++ d_frameDecoder->appendBytes(&readFrames, buf.data(), buf.size());
++ if (rcode != Decoder::OK) {
++ BALL_LOG_WARN << "Bad rcode from decoder: " << rcode;
++ // Fail but we still want to process frames we were able to decode
++ success = false;
++ };
++ bytes_decoded += buf.size();
+
+ if (bytes_decoded != bytes_transferred) {
+ BALL_LOG_WARN << "bytes_decoded (" << bytes_decoded
+diff --git a/src/rmq/rmqio/rmqio_asioeventloop.cpp b/src/rmq/rmqio/rmqio_asioeventloop.cpp
+index ed8f176..307fd20 100644
+--- a/src/rmq/rmqio/rmqio_asioeventloop.cpp
++++ b/src/rmq/rmqio/rmqio_asioeventloop.cpp
+@@ -108,8 +108,8 @@ void AsioEventLoop::onThreadStarted()
+ d_condition.broadcast();
+ }
+
+-void AsioEventLoop::postImpl(const Item& item) { d_context.post(item); }
+-void AsioEventLoop::dispatchImpl(const Item& item) { d_context.dispatch(item); }
++void AsioEventLoop::postImpl(const Item& item) { boost::asio::post(d_context, item); }
++void AsioEventLoop::dispatchImpl(const Item& item) { boost::asio::dispatch(d_context, item); }
+
+ bsl::shared_ptr<rmqio::Resolver>
+ AsioEventLoop::resolver(bool shuffleConnectionEndpoints)
+diff --git a/src/tests/rmqamqp/rmqamqp_connection.t.cpp b/src/tests/rmqamqp/rmqamqp_connection.t.cpp
+index 2c99b0b..97621f5 100644
+--- a/src/tests/rmqamqp/rmqamqp_connection.t.cpp
++++ b/src/tests/rmqamqp/rmqamqp_connection.t.cpp
+@@ -147,7 +147,8 @@ class MockConnection : public rmqio::Connection {
+
+ BSLS_ASSERT_OPT(rc == Frame::OK);
+
+- d_eventLoop.post(
++ boost::asio::post(
++ d_eventLoop,
+ bdlf::BindUtil::bind(d_connectionCallbacks.onRead, decoded));
+ }
+ }
+@@ -156,7 +157,8 @@ class MockConnection : public rmqio::Connection {
+ {
+ BALL_LOG_TRACE << "MockConnection close";
+
+- d_eventLoop.post(bdlf::BindUtil::bind(cb, GRACEFUL_DISCONNECT));
++ boost::asio::post(d_eventLoop,
++ bdlf::BindUtil::bind(cb, GRACEFUL_DISCONNECT));
+ }
+
+ void asyncWriteImpl(
+@@ -175,7 +177,7 @@ class MockConnection : public rmqio::Connection {
+ rmqamqpt::Method(
+ rmqamqpt::ConnectionMethod(rmqamqpt::ConnectionCloseOk())));
+
+- d_eventLoop.post(callback);
++ boost::asio::post(d_eventLoop, callback);
+
+ if (!closeOk) {
+ feedNextFrame();
+@@ -301,7 +303,7 @@ ACTION_P3(ConnectMockConnection, mockConnectPtrPtr, replayFrame, eventLoop)
+
+ ON_CALL(**mockConnectPtrPtr, isConnected()).WillByDefault(Return(true));
+
+- eventLoop.get().post(arg4);
++ boost::asio::post(eventLoop.get(), arg4);
+
+ return *mockConnectPtrPtr;
+ }
+diff --git a/src/tests/rmqio/rmqio_asioresolver.t.cpp b/src/tests/rmqio/rmqio_asioresolver.t.cpp
+index e5c2c7e..ad14d5e 100644
+--- a/src/tests/rmqio/rmqio_asioresolver.t.cpp
++++ b/src/tests/rmqio/rmqio_asioresolver.t.cpp
+@@ -98,7 +98,7 @@ TEST_F(ResolverTests, ShufflesResolverResults)
+ for (int i = 0; i < 5; i++) {
+ bsl::string ip = bsl::to_string(i) + ".0.0.0";
+ entry_type::endpoint_type endpoint(
+- boost::asio::ip::address::from_string(std::string(ip)), 1);
++ boost::asio::ip::make_address(std::string(ip)), 1);
+ entries.push_back(entry_type(endpoint, host, port));
+ }
+ AsioResolver::results_type resolverResults =
+@@ -140,7 +140,7 @@ TEST_F(ResolverTests, NoShuffleDoesNotReorderResolverResults)
+ for (int i = 0; i < 5; i++) {
+ bsl::string ip = bsl::to_string(i) + ".0.0.0";
+ entry_type::endpoint_type endpoint(
+- boost::asio::ip::address::from_string(std::string(ip)), 1);
++ boost::asio::ip::make_address(std::string(ip)), 1);
+ entries.push_back(entry_type(endpoint, host, port));
+ }
+ AsioResolver::results_type resolverResults =
diff --git a/vcpkg/ports/rmqcpp/portfile.cmake b/vcpkg/ports/rmqcpp/portfile.cmake
new file mode 100644
index 0000000..4557963
--- /dev/null
+++ b/vcpkg/ports/rmqcpp/portfile.cmake
@@ -0,0 +1,32 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO bloomberg/rmqcpp
+ REF 11859eb470f31008da522b59e96899585b4e94ce
+ SHA512 f82cc1696d370e81dc410442465ecbe06940cd50ae8c93215e19a4b7de57ee7581a1d4f59d9775e08c646b63496ac18528b29edb852e0b9fb9cab7f761151b25
+ HEAD_REF main
+ PATCHES
+ "disable-tests-and-examples.patch"
+ new-boost.patch # From https://github.com/bloomberg/rmqcpp/pull/59
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DBDE_BUILD_TARGET_CPP17=ON
+ -DCMAKE_CXX_STANDARD=17
+ -DCMAKE_CXX_STANDARD_REQUIRED=ON
+ -DBDE_BUILD_TARGET_SAFE=ON
+ -DCMAKE_INSTALL_LIBDIR=lib64
+)
+
+vcpkg_cmake_build()
+
+vcpkg_cmake_install()
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
+configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY)
+
+vcpkg_cmake_config_fixup()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
diff --git a/vcpkg/ports/rmqcpp/usage b/vcpkg/ports/rmqcpp/usage
new file mode 100644
index 0000000..23f1756
--- /dev/null
+++ b/vcpkg/ports/rmqcpp/usage
@@ -0,0 +1,4 @@
+rmqcpp provides CMake targets:
+
+ find_package(rmqcpp REQUIRED)
+ target_link_libraries(main PRIVATE rmqcpp::rmq)
diff --git a/vcpkg/ports/rmqcpp/vcpkg.json b/vcpkg/ports/rmqcpp/vcpkg.json
new file mode 100644
index 0000000..e56deb1
--- /dev/null
+++ b/vcpkg/ports/rmqcpp/vcpkg.json
@@ -0,0 +1,26 @@
+{
+ "name": "rmqcpp",
+ "version": "1.0.0",
+ "port-version": 2,
+ "description": "rmqcpp - A C++ library for RabbitMQ.",
+ "homepage": "https://github.com/bloomberg/rmqcpp",
+ "license": "Apache-2.0",
+ "dependencies": [
+ {
+ "name": "bde",
+ "version>=": "3.123.0.0"
+ },
+ "boost-asio",
+ "boost-iostreams",
+ "gtest",
+ "openssl",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}