diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/rmqcpp | |
Diffstat (limited to 'vcpkg/ports/rmqcpp')
| -rw-r--r-- | vcpkg/ports/rmqcpp/disable-tests-and-examples.patch | 22 | ||||
| -rw-r--r-- | vcpkg/ports/rmqcpp/new-boost.patch | 115 | ||||
| -rw-r--r-- | vcpkg/ports/rmqcpp/portfile.cmake | 32 | ||||
| -rw-r--r-- | vcpkg/ports/rmqcpp/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/rmqcpp/vcpkg.json | 26 |
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 + } + ] +} |