diff options
Diffstat (limited to 'vcpkg/ports/qpid-proton')
| -rw-r--r-- | vcpkg/ports/qpid-proton/early-cxx.diff | 31 | ||||
| -rw-r--r-- | vcpkg/ports/qpid-proton/fix-dependencies.patch | 73 | ||||
| -rw-r--r-- | vcpkg/ports/qpid-proton/portfile.cmake | 56 | ||||
| -rw-r--r-- | vcpkg/ports/qpid-proton/vcpkg.json | 27 |
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 + } + ] +} |