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/s2n | |
Diffstat (limited to 'vcpkg/ports/s2n')
| -rw-r--r-- | vcpkg/ports/s2n/fix-cmake-target-path.patch | 40 | ||||
| -rw-r--r-- | vcpkg/ports/s2n/openssl.patch | 18 | ||||
| -rw-r--r-- | vcpkg/ports/s2n/portfile.cmake | 47 | ||||
| -rw-r--r-- | vcpkg/ports/s2n/vcpkg.json | 24 |
4 files changed, 129 insertions, 0 deletions
diff --git a/vcpkg/ports/s2n/fix-cmake-target-path.patch b/vcpkg/ports/s2n/fix-cmake-target-path.patch new file mode 100644 index 0000000..e020b7d --- /dev/null +++ b/vcpkg/ports/s2n/fix-cmake-target-path.patch @@ -0,0 +1,40 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt (revision 4aec93c6a74aacf60cec6229b35094f56cb0f87b) ++++ b/CMakeLists.txt (date 1675011451052) +@@ -670,7 +670,7 @@ + endif() + + install(EXPORT "${PROJECT_NAME}-targets" +- DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/cmake/${TARGET_DIR}" ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/cmake" + NAMESPACE AWS:: + COMPONENT Development) + +diff --git a/cmake/s2n-config.cmake b/cmake/s2n-config.cmake +--- a/cmake/s2n-config.cmake (revision 4aec93c6a74aacf60cec6229b35094f56cb0f87b) ++++ b/cmake/s2n-config.cmake (date 1675011032538) +@@ -6,21 +6,6 @@ + endif() + + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/modules") +-find_dependency(crypto) +- +-# Allow static or shared lib to be used. +-# If both are installed, choose based on BUILD_SHARED_LIBS. +-if (BUILD_SHARED_LIBS) +- if (EXISTS "${CMAKE_CURRENT_LIST_DIR}/shared") +- include(${CMAKE_CURRENT_LIST_DIR}/shared/@PROJECT_NAME@-targets.cmake) +- else() +- include(${CMAKE_CURRENT_LIST_DIR}/static/@PROJECT_NAME@-targets.cmake) +- endif() +-else() +- if (EXISTS "${CMAKE_CURRENT_LIST_DIR}/static") +- include(${CMAKE_CURRENT_LIST_DIR}/static/@PROJECT_NAME@-targets.cmake) +- else() +- include(${CMAKE_CURRENT_LIST_DIR}/shared/@PROJECT_NAME@-targets.cmake) +- endif() +-endif() ++find_dependency(OpenSSL COMPONENTS Crypto) + ++include(${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@-targets.cmake) +\ No newline at end of file diff --git a/vcpkg/ports/s2n/openssl.patch b/vcpkg/ports/s2n/openssl.patch new file mode 100644 index 0000000..cc4af1a --- /dev/null +++ b/vcpkg/ports/s2n/openssl.patch @@ -0,0 +1,18 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d16e5f5f0..133934580 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -266,9 +266,10 @@ if (TARGET crypto) + message(STATUS "S2N found target: crypto") + set(LINK_LIB "crypto") + else() +- find_package(crypto REQUIRED) +- message(STATUS "Using libcrypto from the cmake path") +- set(LINK_LIB "AWS::crypto") ++ find_package(OpenSSL REQUIRED) ++ find_package(Threads REQUIRED) ++ set(LINK_LIB OpenSSL::Crypto Threads::Threads) ++ message(STATUS "Using libcrypto from system: ${OPENSSL_CRYPTO_LIBRARY}") + endif() + + if (S2N_INTERN_LIBCRYPTO) diff --git a/vcpkg/ports/s2n/portfile.cmake b/vcpkg/ports/s2n/portfile.cmake new file mode 100644 index 0000000..d4bf2a2 --- /dev/null +++ b/vcpkg/ports/s2n/portfile.cmake @@ -0,0 +1,47 @@ +vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO aws/s2n-tls
+ REF "v${VERSION}"
+ SHA512 bee235eb74559651140c3797a13011979764b7ccd879ce3abe3f2cc651aac24683af489037822bfbcc73a66277a939dcedd68a20f36b7e960942f7933a362343
+ PATCHES
+ fix-cmake-target-path.patch
+ openssl.patch
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ tests BUILD_TESTING
+)
+
+set(EXTRA_ARGS)
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32")
+ set(EXTRA_ARGS "-DS2N_NO_PQ=TRUE")
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${EXTRA_ARGS}
+ ${FEATURE_OPTIONS}
+ -DUNSAFE_TREAT_WARNINGS_AS_ERRORS=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/s2n/cmake)
+
+if(BUILD_TESTING)
+ message(STATUS "Testing")
+ vcpkg_cmake_build(TARGET test LOGFILE_BASE test)
+endif()
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/lib/s2n"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/lib/s2n"
+ "${CURRENT_PACKAGES_DIR}/share/s2n/modules"
+)
+
+# Handle copyright
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/s2n/vcpkg.json b/vcpkg/ports/s2n/vcpkg.json new file mode 100644 index 0000000..8e2d7ca --- /dev/null +++ b/vcpkg/ports/s2n/vcpkg.json @@ -0,0 +1,24 @@ +{ + "name": "s2n", + "version": "1.5.27", + "description": "C99 implementation of the TLS/SSL protocols.", + "homepage": "https://github.com/aws/s2n-tls", + "license": "Apache-2.0", + "supports": "!uwp & !windows", + "dependencies": [ + "openssl", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "tests": { + "description": "Build and run the tests" + } + } +} |