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/cnats | |
Diffstat (limited to 'vcpkg/ports/cnats')
| -rw-r--r-- | vcpkg/ports/cnats/fix-sodium-dep.patch | 61 | ||||
| -rw-r--r-- | vcpkg/ports/cnats/fix_install_path.patch | 28 | ||||
| -rw-r--r-- | vcpkg/ports/cnats/portfile.cmake | 79 | ||||
| -rw-r--r-- | vcpkg/ports/cnats/vcpkg.json | 26 |
4 files changed, 194 insertions, 0 deletions
diff --git a/vcpkg/ports/cnats/fix-sodium-dep.patch b/vcpkg/ports/cnats/fix-sodium-dep.patch new file mode 100644 index 0000000..be8c749 --- /dev/null +++ b/vcpkg/ports/cnats/fix-sodium-dep.patch @@ -0,0 +1,61 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 305198f..0b559b8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -110,6 +110,11 @@ if(NATS_BUILD_STREAMING) + endif(NATS_BUILD_STREAMING) + + if(NATS_BUILD_USE_SODIUM) ++ find_package(libsodium NAMES unofficial-sodium CONFIG REQUIRED) ++ set(NATS_SODIUM_INCLUDE_DIRS "") ++ set(NATS_SODIUM_LIBRARIES unofficial-sodium::sodium) ++ add_definitions(-DNATS_USE_LIBSODIUM) ++elseif(0) + IF(DEFINED ENV{NATS_SODIUM_DIR}) + SET(NATS_SODIUM_DIR "$ENV{NATS_SODIUM_DIR}") + ENDIF() +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 971ddf0..65fee5a 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -65,7 +65,7 @@ if(NATS_BUILD_LIB_SHARED) + install(TARGETS nats EXPORT cnats-targets DESTINATION ${NATS_LIBDIR}) + install(EXPORT cnats-targets + NAMESPACE cnats:: +- FILE cnats-config.cmake ++ FILE cnats-targets.cmake + DESTINATION ${NATS_LIBDIR}/cmake/cnats) + install(FILES "${PROJECT_BINARY_DIR}/cnats-config-version.cmake" + DESTINATION ${NATS_LIBDIR}/cmake/cnats) +@@ -79,12 +79,16 @@ if(NATS_BUILD_LIB_STATIC) + install(TARGETS nats_static EXPORT cnats-targets ARCHIVE DESTINATION ${NATS_LIBDIR}) + install(EXPORT cnats-targets + NAMESPACE cnats:: +- FILE cnats-config.cmake ++ FILE cnats-targets.cmake + DESTINATION ${NATS_LIBDIR}/cmake/cnats) + install(FILES "${PROJECT_BINARY_DIR}/cnats-config-version.cmake" + DESTINATION ${NATS_LIBDIR}/cmake/cnats) + endif(NATS_BUILD_LIB_STATIC) + ++include(CMakePackageConfigHelpers) ++configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/cnats-config.cmake" INSTALL_DESTINATION ${NATS_LIBDIR}/cmake/cnats) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cnats-config.cmake DESTINATION ${NATS_LIBDIR}/cmake/cnats) ++ + install(FILES deprnats.h DESTINATION ${NATS_INCLUDE_DIR} RENAME nats.h) + install(FILES nats.h status.h version.h DESTINATION ${NATS_INCLUDE_DIR}/nats) + install(FILES adapters/libevent.h adapters/libuv.h DESTINATION ${NATS_INCLUDE_DIR}/nats/adapters) +diff --git a/src/Config.cmake.in b/src/Config.cmake.in +new file mode 100644 +index 0000000..aa1d6bf +--- /dev/null ++++ b/src/Config.cmake.in +@@ -0,0 +1,8 @@ ++@PACKAGE_INIT@ ++ ++include(CMakeFindDependencyMacro) ++if("@NATS_BUILD_USE_SODIUM@") ++ find_dependency(unofficial-sodium) ++endif() ++ ++include ( "${CMAKE_CURRENT_LIST_DIR}/cnats-targets.cmake" ) diff --git a/vcpkg/ports/cnats/fix_install_path.patch b/vcpkg/ports/cnats/fix_install_path.patch new file mode 100644 index 0000000..cb47ec6 --- /dev/null +++ b/vcpkg/ports/cnats/fix_install_path.patch @@ -0,0 +1,28 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 65fee5a..3731b86 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -62,7 +62,10 @@ if(NATS_BUILD_LIB_SHARED) + target_include_directories(nats PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + $<INSTALL_INTERFACE:include>) +- install(TARGETS nats EXPORT cnats-targets DESTINATION ${NATS_LIBDIR}) ++ install(TARGETS nats EXPORT cnats-targets ++ ARCHIVE DESTINATION lib ++ LIBRARY DESTINATION lib ++ RUNTIME DESTINATION bin) + install(EXPORT cnats-targets + NAMESPACE cnats:: + FILE cnats-targets.cmake +@@ -76,7 +79,10 @@ if(NATS_BUILD_LIB_STATIC) + target_include_directories(nats_static PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + $<INSTALL_INTERFACE:include>) +- install(TARGETS nats_static EXPORT cnats-targets ARCHIVE DESTINATION ${NATS_LIBDIR}) ++ install(TARGETS nats_static EXPORT cnats-targets ++ ARCHIVE DESTINATION lib ++ LIBRARY DESTINATION lib ++ RUNTIME DESTINATION bin) + install(EXPORT cnats-targets + NAMESPACE cnats:: + FILE cnats-targets.cmake diff --git a/vcpkg/ports/cnats/portfile.cmake b/vcpkg/ports/cnats/portfile.cmake new file mode 100644 index 0000000..d7370d8 --- /dev/null +++ b/vcpkg/ports/cnats/portfile.cmake @@ -0,0 +1,79 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO nats-io/nats.c + REF "v${VERSION}" + SHA512 2edd9c19ca06f866696f2125fc1452568ad255ff09d26e58eb9c64e21e1d4fbfae208edc0f31eb93f87470f365b5701109f526d75ba5c8f4f0458766677ab2a7 + HEAD_REF main + PATCHES + fix-sodium-dep.patch + fix_install_path.patch +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + "streaming" NATS_BUILD_STREAMING +) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + list(APPEND OPTIONS -DNATS_BUILD_LIB_SHARED=ON) + list(APPEND OPTIONS -DNATS_BUILD_LIB_STATIC=OFF) + list(APPEND OPTIONS -DBUILD_TESTING=OFF) + list(APPEND OPTIONS -DNATS_BUILD_USE_SODIUM=ON) +else() + list(APPEND OPTIONS -DNATS_BUILD_LIB_SHARED=OFF) + list(APPEND OPTIONS -DNATS_BUILD_LIB_STATIC=ON) + list(APPEND OPTIONS -DBUILD_TESTING=ON) + if(VCPKG_TARGET_IS_WINDOWS) + list(APPEND OPTIONS -DNATS_BUILD_USE_SODIUM=OFF) + else() + list(APPEND OPTIONS -DNATS_BUILD_USE_SODIUM=ON) + endif() +endif() + +vcpkg_cmake_configure( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + ${FEATURE_OPTIONS} + ${OPTIONS} + -DNATS_BUILD_TLS_USE_OPENSSL_1_1_API=ON + -DNATS_BUILD_EXAMPLES=OFF +) + +vcpkg_cmake_install(ADD_BIN_TO_PATH) + +if(VCPKG_TARGET_IS_WINDOWS) + if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/nats.dll") + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/nats.dll" "${CURRENT_PACKAGES_DIR}/bin/nats.dll") + endif() + if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/natsd.dll") + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") + file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/natsd.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/natsd.dll") + endif() + endif() +endif() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) + +if(VCPKG_TARGET_IS_WINDOWS) + if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + if(EXISTS "${CURRENT_PACKAGES_DIR}/share/cnats/cnats-config-debug.cmake") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/cnats/cnats-config-debug.cmake" + "\${_IMPORT_PREFIX}/debug/lib/natsd.dll" "\${_IMPORT_PREFIX}/debug/bin/natsd.dll") + endif() + if(EXISTS "${CURRENT_PACKAGES_DIR}/share/cnats/cnats-config-release.cmake") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/cnats/cnats-config-release.cmake" + "\${_IMPORT_PREFIX}/lib/nats.dll" "\${_IMPORT_PREFIX}/bin/nats.dll") + endif() + endif() +endif() + +vcpkg_fixup_pkgconfig() + +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") + diff --git a/vcpkg/ports/cnats/vcpkg.json b/vcpkg/ports/cnats/vcpkg.json new file mode 100644 index 0000000..20d5e92 --- /dev/null +++ b/vcpkg/ports/cnats/vcpkg.json @@ -0,0 +1,26 @@ +{ + "name": "cnats", + "version": "3.10.1", + "description": "A C client for the NATS messaging system", + "homepage": "https://github.com/nats-io/nats.c", + "license": "Apache-2.0", + "dependencies": [ + "libsodium", + "openssl", + "protobuf-c", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "streaming": { + "description": "Include NATS Streaming APIs in the NATS library", + "supports": "!windows" + } + } +} |