aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/cnats
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/cnats')
-rw-r--r--vcpkg/ports/cnats/fix-sodium-dep.patch61
-rw-r--r--vcpkg/ports/cnats/fix_install_path.patch28
-rw-r--r--vcpkg/ports/cnats/portfile.cmake79
-rw-r--r--vcpkg/ports/cnats/vcpkg.json26
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"
+ }
+ }
+}