aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/zeromq
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/zeromq
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/zeromq')
-rw-r--r--vcpkg/ports/zeromq/fix-arm.patch51
-rw-r--r--vcpkg/ports/zeromq/portfile.cmake77
-rw-r--r--vcpkg/ports/zeromq/vcpkg-cmake-wrapper.cmake9
-rw-r--r--vcpkg/ports/zeromq/vcpkg.json56
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"
+ ]
+ }
+ ]
+ }
+ }
+}