aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/openssl/portfile.cmake
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/openssl/portfile.cmake
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/openssl/portfile.cmake')
-rw-r--r--vcpkg/ports/openssl/portfile.cmake94
1 files changed, 94 insertions, 0 deletions
diff --git a/vcpkg/ports/openssl/portfile.cmake b/vcpkg/ports/openssl/portfile.cmake
new file mode 100644
index 0000000..6aa8d60
--- /dev/null
+++ b/vcpkg/ports/openssl/portfile.cmake
@@ -0,0 +1,94 @@
+if(EXISTS "${CURRENT_INSTALLED_DIR}/share/libressl/copyright"
+ OR EXISTS "${CURRENT_INSTALLED_DIR}/share/boringssl/copyright")
+ message(FATAL_ERROR "Can't build openssl if libressl/boringssl is installed. Please remove libressl/boringssl, and try install openssl again if you need it.")
+endif()
+
+if(VCPKG_TARGET_IS_EMSCRIPTEN)
+ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO openssl/openssl
+ REF "openssl-${VERSION}"
+ SHA512 3e1796708155454c118550ba0964b42c0c1055b651fec00cfb55038e8a8abbf5f85df02449e62b50b99d2a4a2f7b47862067f8a965e9c8a72f71dee0153672d9
+ PATCHES
+ cmake-config.patch
+ command-line-length.patch
+ script-prefix.patch
+ aes_cfb128_vaes_encdec_wrapper.diff # https://github.com/openssl/openssl/issues/28745
+ windows/install-layout.patch
+ windows/install-pdbs.patch
+ windows/install-programs.diff # https://github.com/openssl/openssl/issues/28744
+ unix/android-cc.patch
+ unix/move-openssldir.patch
+ unix/no-empty-dirs.patch
+ unix/no-static-libs-for-shared.patch
+)
+
+vcpkg_list(SET CONFIGURE_OPTIONS
+ enable-static-engine
+ enable-capieng
+ no-tests
+ no-docs
+)
+
+# https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-ec_nistp_64_gcc_128
+vcpkg_cmake_get_vars(cmake_vars_file)
+include("${cmake_vars_file}")
+if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$"
+ AND VCPKG_TARGET_ARCHITECTURE MATCHES "^(x64|arm64|riscv64|ppc64le)$")
+ vcpkg_list(APPEND CONFIGURE_OPTIONS enable-ec_nistp_64_gcc_128)
+endif()
+
+set(INSTALL_FIPS "")
+if("fips" IN_LIST FEATURES)
+ vcpkg_list(APPEND INSTALL_FIPS install_fips)
+ vcpkg_list(APPEND CONFIGURE_OPTIONS enable-fips)
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ vcpkg_list(APPEND CONFIGURE_OPTIONS shared)
+else()
+ vcpkg_list(APPEND CONFIGURE_OPTIONS no-shared no-module)
+endif()
+
+if(NOT "tools" IN_LIST FEATURES)
+ vcpkg_list(APPEND CONFIGURE_OPTIONS no-apps)
+endif()
+
+if("weak-ssl-ciphers" IN_LIST FEATURES)
+ vcpkg_list(APPEND CONFIGURE_OPTIONS enable-weak-ssl-ciphers)
+endif()
+
+if("ssl3" IN_LIST FEATURES)
+ vcpkg_list(APPEND CONFIGURE_OPTIONS enable-ssl3)
+ vcpkg_list(APPEND CONFIGURE_OPTIONS enable-ssl3-method)
+endif()
+
+if(DEFINED OPENSSL_USE_NOPINSHARED)
+ vcpkg_list(APPEND CONFIGURE_OPTIONS no-pinshared)
+endif()
+
+if(OPENSSL_NO_AUTOLOAD_CONFIG)
+ vcpkg_list(APPEND CONFIGURE_OPTIONS no-autoload-config)
+endif()
+
+if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
+ include("${CMAKE_CURRENT_LIST_DIR}/windows/portfile.cmake")
+ include("${CMAKE_CURRENT_LIST_DIR}/install-pc-files.cmake")
+else()
+ include("${CMAKE_CURRENT_LIST_DIR}/unix/portfile.cmake")
+endif()
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+
+if (NOT "${VERSION}" MATCHES [[^([0-9]+)\.([0-9]+)\.([0-9]+)$]])
+ message(FATAL_ERROR "Version regex did not match.")
+endif()
+set(OPENSSL_VERSION_MAJOR "${CMAKE_MATCH_1}")
+set(OPENSSL_VERSION_MINOR "${CMAKE_MATCH_2}")
+set(OPENSSL_VERSION_FIX "${CMAKE_MATCH_3}")
+configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY)
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt")