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/czmq | |
Diffstat (limited to 'vcpkg/ports/czmq')
| -rw-r--r-- | vcpkg/ports/czmq/Findlibcurl.cmake | 11 | ||||
| -rw-r--r-- | vcpkg/ports/czmq/Findlibmicrohttpd.cmake | 32 | ||||
| -rw-r--r-- | vcpkg/ports/czmq/Findlibzmq.cmake | 6 | ||||
| -rw-r--r-- | vcpkg/ports/czmq/Findlz4.cmake | 17 | ||||
| -rw-r--r-- | vcpkg/ports/czmq/Finduuid.cmake | 35 | ||||
| -rw-r--r-- | vcpkg/ports/czmq/fix-dependencies.patch | 17 | ||||
| -rw-r--r-- | vcpkg/ports/czmq/portfile.cmake | 84 | ||||
| -rw-r--r-- | vcpkg/ports/czmq/vcpkg-cmake-wrapper.cmake | 9 | ||||
| -rw-r--r-- | vcpkg/ports/czmq/vcpkg.json | 55 |
9 files changed, 266 insertions, 0 deletions
diff --git a/vcpkg/ports/czmq/Findlibcurl.cmake b/vcpkg/ports/czmq/Findlibcurl.cmake new file mode 100644 index 0000000..6a8f90b --- /dev/null +++ b/vcpkg/ports/czmq/Findlibcurl.cmake @@ -0,0 +1,11 @@ +find_package(CURL CONFIG QUIET) + +if(CURL_FOUND) + set(LIBCURL_INCLUDE_DIRS ${CURL_INCLUDE_DIRS}) + set(LIBCURL_LIBRARIES CURL::libcurl) + set(LIBCURL_FOUND TRUE) + message(STATUS "Found libcurl: ${LIBCURL_LIBRARIES}") +else() + set(LIBCURL_FOUND FALSE) + message(STATUS "Could not find libcurl") +endif() diff --git a/vcpkg/ports/czmq/Findlibmicrohttpd.cmake b/vcpkg/ports/czmq/Findlibmicrohttpd.cmake new file mode 100644 index 0000000..c7d0b4c --- /dev/null +++ b/vcpkg/ports/czmq/Findlibmicrohttpd.cmake @@ -0,0 +1,32 @@ +find_path(LIBMICROHTTPD_INCLUDE_DIR NAMES microhttpd.h) + +get_filename_component(_prefix_path ${LIBMICROHTTPD_INCLUDE_DIR} PATH) + +find_library( + LIBMICROHTTPD_LIBRARY_DEBUG + NAMES libmicrohttpd-dll_d libmicrohttpd microhttpd + PATHS ${_prefix_path}/debug/lib + NO_DEFAULT_PATH +) + +find_library( + LIBMICROHTTPD_LIBRARY_RELEASE + NAMES libmicrohttpd-dll libmicrohttpd microhttpd + PATHS ${_prefix_path}/lib + NO_DEFAULT_PATH +) + +unset(_prefix_path) + +include(SelectLibraryConfigurations) +select_library_configurations(LIBMICROHTTPD) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + LIBMICROHTTPD + REQUIRED_VARS LIBMICROHTTPD_LIBRARY LIBMICROHTTPD_INCLUDE_DIR +) + +if(LIBMICROHTTPD_FOUND) + set(LIBMICROHTTPD_INCLUDE_DIRS ${LIBMICROHTTPD_INCLUDE_DIR}) +endif() diff --git a/vcpkg/ports/czmq/Findlibzmq.cmake b/vcpkg/ports/czmq/Findlibzmq.cmake new file mode 100644 index 0000000..80ce140 --- /dev/null +++ b/vcpkg/ports/czmq/Findlibzmq.cmake @@ -0,0 +1,6 @@ +find_package(ZeroMQ CONFIG REQUIRED) + +set(LIBZMQ_INCLUDE_DIRS ${ZeroMQ_INCLUDE_DIR}) +set(LIBZMQ_LIBRARIES libzmq libzmq-static) +set(LIBZMQ_FOUND TRUE) +message(STATUS "Found libzmq: ${LIBZMQ_LIBRARIES}") diff --git a/vcpkg/ports/czmq/Findlz4.cmake b/vcpkg/ports/czmq/Findlz4.cmake new file mode 100644 index 0000000..bb97973 --- /dev/null +++ b/vcpkg/ports/czmq/Findlz4.cmake @@ -0,0 +1,17 @@ +find_path(LZ4_INCLUDE_DIR NAMES lz4.h) + +find_library(LZ4_LIBRARY_DEBUG NAMES lz4d) +find_library(LZ4_LIBRARY_RELEASE NAMES lz4) + +include(SelectLibraryConfigurations) +select_library_configurations(LZ4) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + LZ4 + REQUIRED_VARS LZ4_LIBRARY LZ4_INCLUDE_DIR +) + +if(LZ4_FOUND) + set(LZ4_INCLUDE_DIRS ${LZ4_INCLUDE_DIR}) +endif() diff --git a/vcpkg/ports/czmq/Finduuid.cmake b/vcpkg/ports/czmq/Finduuid.cmake new file mode 100644 index 0000000..96e61e0 --- /dev/null +++ b/vcpkg/ports/czmq/Finduuid.cmake @@ -0,0 +1,35 @@ +find_path( + UUID_INCLUDE_DIR + NAMES uuid/uuid.h +) + +get_filename_component(_prefix_path ${UUID_INCLUDE_DIR} PATH) + +find_library( + UUID_LIBRARY_DEBUG + NAMES uuid + PATHS ${_prefix_path}/debug/lib + NO_DEFAULT_PATH +) + +find_library( + UUID_LIBRARY_RELEASE + NAMES uuid + PATHS ${_prefix_path}/lib + NO_DEFAULT_PATH +) + +unset(_prefix_path) + +include(SelectLibraryConfigurations) +select_library_configurations(UUID) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + UUID + REQUIRED_VARS UUID_LIBRARY UUID_INCLUDE_DIR +) + +if(UUID_FOUND) + set(UUID_INCLUDE_DIRS ${UUID_INCLUDE_DIR}) +endif() diff --git a/vcpkg/ports/czmq/fix-dependencies.patch b/vcpkg/ports/czmq/fix-dependencies.patch new file mode 100644 index 0000000..4612b89 --- /dev/null +++ b/vcpkg/ports/czmq/fix-dependencies.patch @@ -0,0 +1,17 @@ +diff --git a/builds/cmake/Config.cmake.in b/builds/cmake/Config.cmake.in +index 9c15f36a..5afff016 100644 +--- a/builds/cmake/Config.cmake.in ++++ b/builds/cmake/Config.cmake.in +@@ -1,4 +1,12 @@ + @PACKAGE_INIT@ + ++include(CMakeFindDependencyMacro) ++ ++find_dependency(ZeroMQ) ++ ++if ("@CZMQ_WITH_LIBCURL@" AND "@LIBCURL_FOUND@") ++ find_dependency(CURL) ++endif () ++ + include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") + check_required_components("@PROJECT_NAME@") diff --git a/vcpkg/ports/czmq/portfile.cmake b/vcpkg/ports/czmq/portfile.cmake new file mode 100644 index 0000000..4918318 --- /dev/null +++ b/vcpkg/ports/czmq/portfile.cmake @@ -0,0 +1,84 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO zeromq/czmq + REF "v${VERSION}" + SHA512 65a21f7bd5935b119e1b24ce3b2ce8462031ab7c9a4ba587bb99fe618c9f8cb672cfa202993ddd79e0fb0f154ada06560b79a1b4f762fcce8f88f2f450ecee01 + HEAD_REF master + PATCHES + fix-dependencies.patch +) + +foreach(_cmake_module + Findlibcurl.cmake + Findlibmicrohttpd.cmake + Findlibzmq.cmake + Findlz4.cmake + Finduuid.cmake +) + file(COPY + ${CMAKE_CURRENT_LIST_DIR}/${_cmake_module} + DESTINATION ${SOURCE_PATH} + ) +endforeach() + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) + +vcpkg_check_features( + OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + draft ENABLE_DRAFTS + curl CZMQ_WITH_LIBCURL + httpd CZMQ_WITH_LIBMICROHTTPD + lz4 CZMQ_WITH_LZ4 + uuid CZMQ_WITH_UUID +) + +vcpkg_cmake_configure( + SOURCE_PATH ${SOURCE_PATH} + DISABLE_PARALLEL_CONFIGURE + OPTIONS + -DCZMQ_BUILD_SHARED=${BUILD_SHARED} + -DCZMQ_BUILD_STATIC=${BUILD_STATIC} + -DCZMQ_WITH_SYSTEMD=OFF + -DBUILD_TESTING=OFF + ${FEATURE_OPTIONS} +) + +vcpkg_cmake_install() + +vcpkg_copy_pdbs() + +if(EXISTS ${CURRENT_PACKAGES_DIR}/CMake) + vcpkg_cmake_config_fixup(CONFIG_PATH CMake) +endif() +if(EXISTS ${CURRENT_PACKAGES_DIR}/share/cmake/${PORT}) + vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/${PORT}) +endif() + +vcpkg_fixup_pkgconfig() + +file(COPY + "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" + DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" +) + +vcpkg_copy_tools(TOOL_NAMES zmakecert AUTO_CLEAN) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") + +# Remove headers with "common" names that conflict with other packages which aren't intended to be installed +# See https://github.com/zeromq/czmq/issues/2197 +foreach(FILE readme.txt sha1.h sha1.inc_c slre.h slre.inc_c zgossip_engine.inc zgossip_msg.h zhash_primes.inc zsock_option.inc) + file(REMOVE "${CURRENT_PACKAGES_DIR}/include/${FILE}") +endforeach() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/czmq_library.h + "if defined CZMQ_STATIC" + "if 1 //if defined CZMQ_STATIC" + ) +endif() + +# Handle copyright +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/vcpkg/ports/czmq/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/czmq/vcpkg-cmake-wrapper.cmake new file mode 100644 index 0000000..4535e88 --- /dev/null +++ b/vcpkg/ports/czmq/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,9 @@ +_find_package(${ARGS})
+
+if(TARGET czmq AND NOT TARGET czmq-static)
+ add_library(czmq-static INTERFACE IMPORTED)
+ set_target_properties(czmq-static PROPERTIES INTERFACE_LINK_LIBRARIES czmq)
+elseif(TARGET czmq-static AND NOT TARGET czmq)
+ add_library(czmq INTERFACE IMPORTED)
+ set_target_properties(czmq PROPERTIES INTERFACE_LINK_LIBRARIES czmq-static)
+endif()
diff --git a/vcpkg/ports/czmq/vcpkg.json b/vcpkg/ports/czmq/vcpkg.json new file mode 100644 index 0000000..6cbe674 --- /dev/null +++ b/vcpkg/ports/czmq/vcpkg.json @@ -0,0 +1,55 @@ +{ + "name": "czmq", + "version-semver": "4.2.1", + "port-version": 4, + "description": "High-level C binding for ZeroMQ", + "homepage": "https://github.com/zeromq/czmq", + "license": "MPL-2.0", + "supports": "!xbox", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "zeromq" + ], + "features": { + "curl": { + "description": "Build with libcurl", + "dependencies": [ + "curl" + ] + }, + "draft": { + "description": "Build and install draft APIs" + }, + "httpd": { + "description": "Build with HTTP server support (libmicrohttpd)", + "dependencies": [ + "libmicrohttpd" + ] + }, + "lz4": { + "description": "Build with lz4", + "dependencies": [ + "lz4" + ] + }, + "tool": { + "description": "Build and install czmq tools (zmakecert)" + }, + "uuid": { + "description": "Build with libuuid", + "dependencies": [ + { + "name": "libuuid", + "platform": "!windows & !uwp & !osx" + } + ] + } + } +} |