From 887b1b98f4adf70dca26fae655bae136d9ab2fb8 Mon Sep 17 00:00:00 2001 From: Sylvain Prevost Date: Thu, 24 Feb 2022 04:06:54 -0600 Subject: [PATCH 1/2] [cnats] initial port implementation of C client for the NATS messaging system. --- ports/cnats/portfile.cmake | 76 ++++++++++++++++++++++++++++++++++++++ ports/cnats/vcpkg.json | 26 +++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 ports/cnats/portfile.cmake create mode 100644 ports/cnats/vcpkg.json diff --git a/ports/cnats/portfile.cmake b/ports/cnats/portfile.cmake new file mode 100644 index 00000000000000..22bc7cd6c293d7 --- /dev/null +++ b/ports/cnats/portfile.cmake @@ -0,0 +1,76 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO nats-io/nats.c + REF v3.2.0 + SHA512 570bbd5b6ed25db17755f4cbd2df9449bf1f838450e29aaa1483c11e6131293490d302031e3039d710bbbc3563ce72fb72cd3ad2c98618977a4858a5a3f2abe3 + HEAD_REF master +) + +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") + +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) + diff --git a/ports/cnats/vcpkg.json b/ports/cnats/vcpkg.json new file mode 100644 index 00000000000000..8ea3c811388723 --- /dev/null +++ b/ports/cnats/vcpkg.json @@ -0,0 +1,26 @@ +{ + "name": "cnats", + "version": "3.2.0", + "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" + } + } +} From 68e97f2d538822b33442dfd701e82b03bd2d1ab5 Mon Sep 17 00:00:00 2001 From: Sylvain Prevost Date: Thu, 24 Feb 2022 04:10:04 -0600 Subject: [PATCH 2/2] [cnats] add version file. --- versions/baseline.json | 4 ++++ versions/c-/cnats.json | 9 +++++++++ 2 files changed, 13 insertions(+) create mode 100644 versions/c-/cnats.json diff --git a/versions/baseline.json b/versions/baseline.json index 5f7c521b145264..5bb8e714422a11 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -1440,6 +1440,10 @@ "baseline": "2020-08-01", "port-version": 1 }, + "cnats": { + "baseline": "3.2.0", + "port-version": 0 + }, "cnl": { "baseline": "1.1.7", "port-version": 1 diff --git a/versions/c-/cnats.json b/versions/c-/cnats.json new file mode 100644 index 00000000000000..60faf07f088ef5 --- /dev/null +++ b/versions/c-/cnats.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "ab962ebd7a13f87db7aea528cd4d5725b4fde292", + "version": "3.2.0", + "port-version": 0 + } + ] +}