aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/qpid-proton
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/qpid-proton
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/qpid-proton')
-rw-r--r--vcpkg/ports/qpid-proton/early-cxx.diff31
-rw-r--r--vcpkg/ports/qpid-proton/fix-dependencies.patch73
-rw-r--r--vcpkg/ports/qpid-proton/portfile.cmake56
-rw-r--r--vcpkg/ports/qpid-proton/vcpkg.json27
4 files changed, 187 insertions, 0 deletions
diff --git a/vcpkg/ports/qpid-proton/early-cxx.diff b/vcpkg/ports/qpid-proton/early-cxx.diff
new file mode 100644
index 0000000..0f99b95
--- /dev/null
+++ b/vcpkg/ports/qpid-proton/early-cxx.diff
@@ -0,0 +1,31 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2e928ef..29e3d79 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -19,7 +19,7 @@
+
+ cmake_minimum_required (VERSION 3.16)
+
+-project (Proton C)
++project (Proton C CXX)
+
+ set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/tools/cmake/Modules")
+ set (CMAKE_THREAD_PREFER_PTHREAD TRUE)
+@@ -75,8 +75,7 @@ set(UNSET_CMAKE_CXX_COMPILER OFF)
+ if (NOT DEFINED CMAKE_CXX_COMPILER)
+ set(UNSET_CMAKE_CXX_COMPILER ON)
+ endif ()
+-check_language (CXX)
+-if (CMAKE_CXX_COMPILER)
++if(0)
+ if (UNSET_CMAKE_CXX_COMPILER)
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/25535: check_language might set the variable incorrectly
+ unset(CMAKE_CXX_COMPILER)
+@@ -84,6 +83,7 @@ if (CMAKE_CXX_COMPILER)
+ endif ()
+
+ enable_language(CXX)
++else()
+
+ set(CMAKE_CXX_STANDARD 17)
+ set(CMAKE_CXX_EXTENSIONS OFF)
diff --git a/vcpkg/ports/qpid-proton/fix-dependencies.patch b/vcpkg/ports/qpid-proton/fix-dependencies.patch
new file mode 100644
index 0000000..8b040ea
--- /dev/null
+++ b/vcpkg/ports/qpid-proton/fix-dependencies.patch
@@ -0,0 +1,73 @@
+diff --git a/c/CMakeLists.txt b/c/CMakeLists.txt
+index e444098..451277f 100644
+--- a/c/CMakeLists.txt
++++ b/c/CMakeLists.txt
+@@ -378,8 +378,13 @@ if (PROACTOR STREQUAL "iocp" OR (NOT PROACTOR AND NOT PROACTOR_OK))
+ endif()
+
+ if (PROACTOR STREQUAL "libuv" OR (NOT PROACTOR AND NOT PROACTOR_OK))
+- find_package(Libuv)
++ find_package(Libuv NAMES libuv CONFIG)
+ if (Libuv_FOUND)
++ if (TARGET libuv::uv)
++ add_library(Libuv::Libuv ALIAS libuv::uv)
++ else()
++ add_library(Libuv::Libuv ALIAS libuv::uv_a)
++ endif()
+ set (PROACTOR_OK libuv)
+ set (qpid-proton-proactor src/proactor/libuv.c ${qpid-proton-proactor-common})
+ set (PROACTOR_LIBS Libuv::Libuv)
+diff --git a/c/src/ProtonConfig.cmake.in b/c/src/ProtonConfig.cmake.in
+index 3eca7bc..fe27234 100644
+--- a/c/src/ProtonConfig.cmake.in
++++ b/c/src/ProtonConfig.cmake.in
+@@ -23,7 +23,7 @@
+ # URL: http://qpid.apache.org/proton/
+
+ @PACKAGE_INIT@
+-if (NOT Proton_USE_STATIC_LIBS)
++if ("1")
+ include("${CMAKE_CURRENT_LIST_DIR}/ProtonTargets.cmake")
+ else()
+ include("${CMAKE_CURRENT_LIST_DIR}/ProtonTargetsStatic.cmake")
+@@ -32,9 +32,8 @@ endif()
+ set(Proton_VERSION @PN_VERSION@)
+
+ # find dependencies, because static libs don't transitively pull them
+-if (Proton_USE_STATIC_LIBS)
++if ("1")
+ set(CMAKE_MODULE_PATH_OLD ${CMAKE_MODULE_PATH})
+- set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+
+ set(CyrusSASL_FOUND @CyrusSASL_FOUND@)
+ if (CyrusSASL_FOUND)
+diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
+index c65cc87..0d9f485 100644
+--- a/cpp/CMakeLists.txt
++++ b/cpp/CMakeLists.txt
+@@ -38,7 +38,9 @@ list(APPEND PLATFORM_LIBS Threads::Threads)
+ include(versions.cmake)
+
+ # Check for JSON-CPP support for connection configuration
+-find_package(JsonCpp)
++find_package(JsonCpp NAMES jsoncpp CONFIG REQUIRED)
++set(JsonCpp_INCLUDE_DIRS "")
++set(JsonCpp_LIBRARY JsonCpp::JsonCpp)
+ option(ENABLE_JSONCPP "Use jsoncpp parser for connection configuration" ${JsonCpp_FOUND})
+ if (ENABLE_JSONCPP)
+ include_directories(${JsonCpp_INCLUDE_DIRS})
+diff --git a/cpp/ProtonCppConfig.cmake.in b/cpp/ProtonCppConfig.cmake.in
+index aaa1bf9..e1be025 100644
+--- a/cpp/ProtonCppConfig.cmake.in
++++ b/cpp/ProtonCppConfig.cmake.in
+@@ -23,7 +23,9 @@
+ # URL: http://qpid.apache.org/proton/
+
+ @PACKAGE_INIT@
+-if (NOT ProtonCpp_USE_STATIC_LIBS)
++include(CMakeFindDependencyMacro)
++find_dependency(Proton CONFIG)
++if (1)
+ include("${CMAKE_CURRENT_LIST_DIR}/ProtonCppTargets.cmake")
+ else()
+ include("${CMAKE_CURRENT_LIST_DIR}/ProtonCppTargetsStatic.cmake")
diff --git a/vcpkg/ports/qpid-proton/portfile.cmake b/vcpkg/ports/qpid-proton/portfile.cmake
new file mode 100644
index 0000000..20a5f9a
--- /dev/null
+++ b/vcpkg/ports/qpid-proton/portfile.cmake
@@ -0,0 +1,56 @@
+vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO apache/qpid-proton
+ REF "${VERSION}"
+ SHA512 ce24a92d623c9e56666128e243bc58acdbff8f7dfac1f728fdbd97a2c3ec21135b8c2a79c3e13920ca0d52545819766b90fc6aca35318b754eedf5ae5329ff36
+ HEAD_REF next
+ PATCHES
+ early-cxx.diff
+ fix-dependencies.patch
+)
+
+vcpkg_find_acquire_program(PYTHON3)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DBUILD_BINDINGS=cpp
+ -DBUILD_EXAMPLES=OFF
+ -DBUILD_TESTING=OFF
+ -DCMAKE_DISABLE_FIND_PACKAGE_CyrusSASL=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_OpenSSL=${VCPKG_TARGET_IS_WINDOWS} # match dependencies
+ -DCMAKE_DISABLE_FIND_PACKAGE_opentelemetry-cpp=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_SWIG=ON
+ -DENABLE_JSONCPP=ON
+ -DENABLE_LINKTIME_OPTIMIZATION=OFF
+ -DENABLE_OPENTELEMETRYCPP=OFF
+ -DLIB_SUFFIX=
+ -DENABLE_WARNING_ERROR=OFF
+ -DENABLE_BENCHMARKS=OFF
+ -DENABLE_FUZZ_TESTING=OFF
+ "-DPython_EXECUTABLE=${PYTHON3}"
+ -DVCPKG_LOCK_FIND_PACKAGE_Libuv=${VCPKG_TARGET_IS_OSX} # match dependencies
+ MAYBE_UNUSED_VARIABLES
+ VCPKG_LOCK_FIND_PACKAGE_Libuv
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_fixup_pkgconfig()
+
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/ProtonCpp" PACKAGE_NAME "protoncpp" DO_NOT_DELETE_PARENT_CONFIG_PATH)
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Proton" PACKAGE_NAME "proton")
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/share/proton/CMakeLists.txt"
+ "${CURRENT_PACKAGES_DIR}/share/proton/FindCyrusSASL.cmake"
+ "${CURRENT_PACKAGES_DIR}/share/proton/examples"
+ "${CURRENT_PACKAGES_DIR}/share/proton/tests"
+)
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt")
diff --git a/vcpkg/ports/qpid-proton/vcpkg.json b/vcpkg/ports/qpid-proton/vcpkg.json
new file mode 100644
index 0000000..9a22164
--- /dev/null
+++ b/vcpkg/ports/qpid-proton/vcpkg.json
@@ -0,0 +1,27 @@
+{
+ "name": "qpid-proton",
+ "version": "0.40.0",
+ "description": "Qpid Proton is a high-performance, lightweight messaging library.",
+ "homepage": "https://github.com/apache/qpid-proton",
+ "license": "Apache-2.0",
+ "supports": "!(static & staticcrt) & !uwp",
+ "dependencies": [
+ "jsoncpp",
+ {
+ "name": "libuv",
+ "platform": "osx"
+ },
+ {
+ "name": "openssl",
+ "platform": "!windows"
+ },
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}