aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/s2n
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/s2n')
-rw-r--r--vcpkg/ports/s2n/fix-cmake-target-path.patch40
-rw-r--r--vcpkg/ports/s2n/openssl.patch18
-rw-r--r--vcpkg/ports/s2n/portfile.cmake47
-rw-r--r--vcpkg/ports/s2n/vcpkg.json24
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"
+ }
+ }
+}