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/zeromq | |
Diffstat (limited to 'vcpkg/ports/zeromq')
| -rw-r--r-- | vcpkg/ports/zeromq/fix-arm.patch | 51 | ||||
| -rw-r--r-- | vcpkg/ports/zeromq/portfile.cmake | 77 | ||||
| -rw-r--r-- | vcpkg/ports/zeromq/vcpkg-cmake-wrapper.cmake | 9 | ||||
| -rw-r--r-- | vcpkg/ports/zeromq/vcpkg.json | 56 |
4 files changed, 193 insertions, 0 deletions
diff --git a/vcpkg/ports/zeromq/fix-arm.patch b/vcpkg/ports/zeromq/fix-arm.patch new file mode 100644 index 0000000..3f6c648 --- /dev/null +++ b/vcpkg/ports/zeromq/fix-arm.patch @@ -0,0 +1,51 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index dd3d8eb..c08cad9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -551,6 +551,8 @@ if(ZMQ_HAVE_WINDOWS) + set(CMAKE_REQUIRED_LIBRARIES "") + # TODO: This not the symbol we're looking for. What is the symbol? + check_library_exists(ws2 fopen "" HAVE_WS2) ++ ++ check_cxx_symbol_exists(CryptAcquireContext "windows.h;wincrypt.h" HAVE_ADVAPI32) + else() + check_cxx_symbol_exists(if_nametoindex net/if.h HAVE_IF_NAMETOINDEX) + check_cxx_symbol_exists(SO_PEERCRED sys/socket.h ZMQ_HAVE_SO_PEERCRED) +@@ -1452,6 +1454,10 @@ if(BUILD_SHARED) + elseif(HAVE_WS2) + target_link_libraries(libzmq ws2) + endif() ++ ++ if (HAVE_ADVAPI32) ++ target_link_libraries(libzmq advapi32) ++ endif() + + if(HAVE_RPCRT4) + target_link_libraries(libzmq rpcrt4) +@@ -1497,6 +1503,10 @@ if(BUILD_STATIC) + elseif(HAVE_WS2) + target_link_libraries(libzmq-static ws2) + endif() ++ ++ if (HAVE_ADVAPI32) ++ target_link_libraries(libzmq-static advapi32) ++ endif() + + if(HAVE_RPCRT4) + target_link_libraries(libzmq-static rpcrt4) +diff --git a/src/clock.cpp b/src/clock.cpp +index 79522ad..0667c59 100644 +--- a/src/clock.cpp ++++ b/src/clock.cpp +@@ -41,8 +41,10 @@ + #include <cmnintrin.h> + #else + #include <intrin.h> +-#if defined(_M_ARM) || defined(_M_ARM64) ++#if defined(_M_ARM) + #include <arm_neon.h> ++#elif defined(_M_ARM64) ++#include <arm64_neon.h> + #endif + #endif + #endif diff --git a/vcpkg/ports/zeromq/portfile.cmake b/vcpkg/ports/zeromq/portfile.cmake new file mode 100644 index 0000000..8fa01f3 --- /dev/null +++ b/vcpkg/ports/zeromq/portfile.cmake @@ -0,0 +1,77 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO zeromq/libzmq + REF "v${VERSION}" + SHA512 108d9c5fa761c111585c30f9c651ed92942dda0ac661155bca52cc7b6dbeb3d27b0dd994abde206eacfc3bc88d19ed24e45b291050c38469e34dca5f8c9a037d + PATCHES + fix-arm.patch +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) + +vcpkg_check_features( + OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + sodium WITH_LIBSODIUM + draft ENABLE_DRAFTS + websockets ENABLE_WS + websockets-secure WITH_TLS + curve ENABLE_CURVE +) + +set(PLATFORM_OPTIONS "") +if(VCPKG_TARGET_IS_MINGW) + list(APPEND PLATFORM_OPTIONS "-DCMAKE_SYSTEM_VERSION=6.0" "-DZMQ_HAVE_IPC=0") +endif() + +vcpkg_find_acquire_program(PKGCONFIG) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DZMQ_BUILD_TESTS=OFF + -DBUILD_STATIC=${BUILD_STATIC} + -DBUILD_SHARED=${BUILD_SHARED} + -DWITH_PERF_TOOL=OFF + -DWITH_DOCS=OFF + -DWITH_NSS=OFF + -DWITH_LIBBSD=OFF + -DCMAKE_REQUIRE_FIND_PACKAGE_GnuTLS=ON + -DWITH_LIBSODIUM_STATIC=${BUILD_STATIC} + ${FEATURE_OPTIONS} + ${PLATFORM_OPTIONS} + "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" + OPTIONS_DEBUG + "-DCMAKE_PDB_OUTPUT_DIRECTORY=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" + MAYBE_UNUSED_VARIABLES + CMAKE_REQUIRE_FIND_PACKAGE_GnuTLS + WITH_LIBBSD + WITH_PERF_TOOL + WITH_TLS +) + +vcpkg_cmake_install() + +vcpkg_copy_pdbs() + +if(VCPKG_TARGET_IS_WINDOWS) + vcpkg_cmake_config_fixup(CONFIG_PATH CMake) +else() + vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ZeroMQ) +endif() + +file(COPY + "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" + DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") +endif() + +# Handle copyright +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/zmq") + +vcpkg_fixup_pkgconfig() diff --git a/vcpkg/ports/zeromq/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/zeromq/vcpkg-cmake-wrapper.cmake new file mode 100644 index 0000000..38b05d7 --- /dev/null +++ b/vcpkg/ports/zeromq/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,9 @@ +_find_package(${ARGS})
+
+if(TARGET libzmq AND NOT TARGET libzmq-static)
+ add_library(libzmq-static INTERFACE IMPORTED)
+ set_target_properties(libzmq-static PROPERTIES INTERFACE_LINK_LIBRARIES libzmq)
+elseif(TARGET libzmq-static AND NOT TARGET libzmq)
+ add_library(libzmq INTERFACE IMPORTED)
+ set_target_properties(libzmq PROPERTIES INTERFACE_LINK_LIBRARIES libzmq-static)
+endif()
diff --git a/vcpkg/ports/zeromq/vcpkg.json b/vcpkg/ports/zeromq/vcpkg.json new file mode 100644 index 0000000..b53a747 --- /dev/null +++ b/vcpkg/ports/zeromq/vcpkg.json @@ -0,0 +1,56 @@ +{ + "name": "zeromq", + "version": "4.3.5", + "port-version": 2, + "description": "The ZeroMQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products", + "homepage": "https://github.com/zeromq/libzmq", + "license": "MPL-2.0", + "supports": "!uwp & !xbox", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "curve": { + "description": "Enable CURVE security" + }, + "draft": { + "description": "Build and install draft APIs" + }, + "sodium": { + "description": "Using libsodium for CURVE security", + "dependencies": [ + "libsodium", + { + "name": "zeromq", + "default-features": false, + "features": [ + "curve" + ] + } + ] + }, + "websockets": { + "description": "Enable WebSocket transport" + }, + "websockets-secure": { + "description": "Enable WebSocket transport with TSL (wss)", + "dependencies": [ + "libgnutls", + { + "name": "zeromq", + "default-features": false, + "features": [ + "websockets" + ] + } + ] + } + } +} |