mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-11 17:19:07 +08:00
8d1bb02da0
Based on #38118, credits: @talregev. OpenSSL now installs a CMake config, but it is not generated by CMake, and it is not multi-config capable. This limitation affects location properties, interface link libraries and package variables. This PR just patches the config to chainload CMake's Find module. Together with vcpkg's cmake wrapper, this immediately gives the desired imported targets in a multi-config configuration when a user really requests `OpenSSL CONFIG`. --------- Co-authored-by: Tal Regev <tal.regev@gmail.com>
84 lines
2.7 KiB
CMake
84 lines
2.7 KiB
CMake
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()
|
|
|
|
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_from_github(
|
|
OUT_SOURCE_PATH SOURCE_PATH
|
|
REPO openssl/openssl
|
|
REF "openssl-${VERSION}"
|
|
SHA512 42cc11475d8b31706ec151c9aed0178e17b788c6b38636ae1cde363872139ed85f5b9efd0c75012f4d6f15ec8100e1afe5d528e72b88a5d3dea4125c9b0804aa
|
|
PATCHES
|
|
cmake-config.patch
|
|
command-line-length.patch
|
|
script-prefix.patch
|
|
windows/install-layout.patch
|
|
windows/install-pdbs.patch
|
|
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
|
|
)
|
|
|
|
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}")
|
|
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt")
|