aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Neumann <30894796+Neumann-A@users.noreply.github.com>2020-11-04 07:59:02 +0100
committerGitHub <noreply@github.com>2020-11-03 22:59:02 -0800
commit63dccf771d0bf84f8a1e111c8b53a4057d4c0a18 (patch)
treef0e840ea56fc2959d27dced9df9dda4202ef1c99
parentc4c020828aa1b743707876ffaeb0dccf091e96f5 (diff)
downloadvcpkg-63dccf771d0bf84f8a1e111c8b53a4057d4c0a18.tar.gz
vcpkg-63dccf771d0bf84f8a1e111c8b53a4057d4c0a18.zip
[OpenSSL] refactor openssl ports. (#14308)
-rw-r--r--ports/openssl-unix/CONTROL2
-rw-r--r--ports/openssl-unix/portfile.cmake64
-rw-r--r--ports/openssl-unix/usage4
-rw-r--r--ports/openssl-uwp/CONTROL3
-rw-r--r--ports/openssl-uwp/portfile.cmake178
-rw-r--r--ports/openssl-uwp/usage4
-rw-r--r--ports/openssl-windows/CONTROL2
-rw-r--r--ports/openssl-windows/ConfigureIncludeQuotesFix.patch13
-rw-r--r--ports/openssl-windows/EmbedSymbolsInStaticLibsZ7.patch25
-rw-r--r--ports/openssl-windows/EnableWinARM32.patch21
-rw-r--r--ports/openssl-windows/EnableWinARM64.patch16
-rw-r--r--ports/openssl-windows/STRINGIFYPatch.patch23
-rw-r--r--ports/openssl-windows/portfile.cmake191
-rw-r--r--ports/openssl-windows/usage4
-rw-r--r--ports/openssl/CONTROL3
-rw-r--r--ports/openssl/portfile.cmake27
-rw-r--r--ports/openssl/unix/CMakeLists.txt (renamed from ports/openssl-unix/CMakeLists.txt)0
-rw-r--r--ports/openssl/unix/ConfigureIncludeQuotesFix.patch (renamed from ports/openssl-unix/ConfigureIncludeQuotesFix.patch)0
-rw-r--r--ports/openssl/unix/EmbedSymbolsInStaticLibsZ7.patch (renamed from ports/openssl-unix/EmbedSymbolsInStaticLibsZ7.patch)0
-rw-r--r--ports/openssl/unix/STRINGIFYPatch.patch (renamed from ports/openssl-unix/STRINGIFYPatch.patch)0
-rw-r--r--ports/openssl/unix/portfile.cmake47
-rw-r--r--ports/openssl/unix/remove-deps.cmake (renamed from ports/openssl-unix/remove-deps.cmake)0
-rw-r--r--ports/openssl/unix/vcpkg-cmake-wrapper.cmake (renamed from ports/openssl-unix/vcpkg-cmake-wrapper.cmake)0
-rw-r--r--ports/openssl/uwp/EnableUWPSupport.patch (renamed from ports/openssl-uwp/EnableUWPSupport.patch)0
-rw-r--r--ports/openssl/uwp/fix-uwp-configure-unicode.patch (renamed from ports/openssl-uwp/fix-uwp-configure-unicode.patch)0
-rw-r--r--ports/openssl/uwp/make-openssl.bat (renamed from ports/openssl-uwp/make-openssl.bat)0
-rw-r--r--ports/openssl/uwp/portfile.cmake156
-rw-r--r--ports/openssl/windows/portfile.cmake173
-rw-r--r--ports/openssl/windows/vcpkg-cmake-wrapper.cmake10
29 files changed, 418 insertions, 548 deletions
diff --git a/ports/openssl-unix/CONTROL b/ports/openssl-unix/CONTROL
index 1961fa299..ba59ecbc5 100644
--- a/ports/openssl-unix/CONTROL
+++ b/ports/openssl-unix/CONTROL
@@ -1,4 +1,4 @@
Source: openssl-unix
Version: 1.1.1h
-Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.
+Description: Deprecated OpenSSL port
Supports: !(windows|uwp)
diff --git a/ports/openssl-unix/portfile.cmake b/ports/openssl-unix/portfile.cmake
index 3f23dbe69..065116c27 100644
--- a/ports/openssl-unix/portfile.cmake
+++ b/ports/openssl-unix/portfile.cmake
@@ -1,63 +1 @@
-if (NOT VCPKG_TARGET_IS_MINGW)
- vcpkg_fail_port_install(MESSAGE "${PORT} is only for openssl on Unix-like systems" ON_TARGET "UWP" "Windows")
-endif()
-
-if(EXISTS "${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h")
- 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()
-
-
-vcpkg_find_acquire_program(PERL)
-
-set(OPENSSL_VERSION 1.1.1h)
-
-vcpkg_download_distfile(OPENSSL_SOURCE_ARCHIVE
- URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.1.1/openssl-${OPENSSL_VERSION}.tar.gz"
- FILENAME "openssl-${OPENSSL_VERSION}.tar.gz"
- SHA512 da50fd99325841ed7a4367d9251c771ce505a443a73b327d8a46b2c6a7d2ea99e43551a164efc86f8743b22c2bdb0020bf24a9cbd445e9d68868b2dc1d34033a
-)
-
-vcpkg_extract_source_archive_ex(
- OUT_SOURCE_PATH MASTER_COPY_SOURCE_PATH
- ARCHIVE ${OPENSSL_SOURCE_ARCHIVE}
- REF ${OPENSSL_VERSION}
-)
-
-if(CMAKE_HOST_WIN32)
- vcpkg_acquire_msys(MSYS_ROOT PACKAGES make perl)
- set(BASH ${MSYS_ROOT}/usr/bin/bash.exe)
- set(MAKE ${MSYS_ROOT}/usr/bin/make.exe)
- set(PERL ${MSYS_ROOT}/usr/bin/perl.exe)
-else()
- find_program(MAKE make)
- if(NOT MAKE)
- message(FATAL_ERROR "Could not find make. Please install it through your package manager.")
- endif()
-endif()
-
-vcpkg_configure_cmake(
- SOURCE_PATH ${CMAKE_CURRENT_LIST_DIR}
- PREFER_NINJA
- OPTIONS
- -DSOURCE_PATH=${MASTER_COPY_SOURCE_PATH}
- -DPERL=${PERL}
- -DMAKE=${MAKE}
- OPTIONS_RELEASE
- -DINSTALL_HEADERS=ON
-)
-
-vcpkg_install_cmake()
-
-file(GLOB HEADERS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/include/openssl/*.h)
-set(RESOLVED_HEADERS)
-foreach(HEADER ${HEADERS})
- get_filename_component(X "${HEADER}" REALPATH)
- list(APPEND RESOLVED_HEADERS "${X}")
-endforeach()
-
-file(INSTALL ${RESOLVED_HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include/openssl)
-file(INSTALL ${MASTER_COPY_SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
-
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/openssl)
-endif()
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
diff --git a/ports/openssl-unix/usage b/ports/openssl-unix/usage
deleted file mode 100644
index f535cb6a4..000000000
--- a/ports/openssl-unix/usage
+++ /dev/null
@@ -1,4 +0,0 @@
-The package openssl is compatible with built-in CMake targets:
-
- find_package(OpenSSL REQUIRED)
- target_link_libraries(main PRIVATE OpenSSL::SSL OpenSSL::Crypto)
diff --git a/ports/openssl-uwp/CONTROL b/ports/openssl-uwp/CONTROL
index cdf818e33..5ff042b34 100644
--- a/ports/openssl-uwp/CONTROL
+++ b/ports/openssl-uwp/CONTROL
@@ -1,5 +1,4 @@
Source: openssl-uwp
Version: 1.1.1h
-Port-Version: 1
-Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.
+Description: Deprecated OpenSSL port
Supports: uwp
diff --git a/ports/openssl-uwp/portfile.cmake b/ports/openssl-uwp/portfile.cmake
index 6c84553c9..0015715fb 100644
--- a/ports/openssl-uwp/portfile.cmake
+++ b/ports/openssl-uwp/portfile.cmake
@@ -1,177 +1 @@
-vcpkg_fail_port_install(MESSAGE "${PORT} is only for Windows Universal Platform" ON_TARGET "Linux" "OSX")
-
-if(EXISTS "${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h")
- 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()
-
-vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
-
-vcpkg_find_acquire_program(PERL)
-vcpkg_find_acquire_program(JOM)
-get_filename_component(JOM_EXE_PATH ${JOM} DIRECTORY)
-get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
-vcpkg_add_to_path("${PERL_EXE_PATH}")
-vcpkg_add_to_path("${JOM_EXE_PATH}")
-
-set(OPENSSL_VERSION 1.1.1h)
-
-vcpkg_download_distfile(ARCHIVE
- URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.1.1/openssl-${OPENSSL_VERSION}.tar.gz"
- FILENAME "openssl-${OPENSSL_VERSION}.tar.gz"
- SHA512 da50fd99325841ed7a4367d9251c771ce505a443a73b327d8a46b2c6a7d2ea99e43551a164efc86f8743b22c2bdb0020bf24a9cbd445e9d68868b2dc1d34033a
-)
-
-vcpkg_extract_source_archive_ex(
- OUT_SOURCE_PATH SOURCE_PATH
- ARCHIVE ${ARCHIVE}
- PATCHES
- EnableUWPSupport.patch
-)
-
-vcpkg_find_acquire_program(NASM)
-get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
-vcpkg_add_to_path(PREPEND "${NASM_EXE_PATH}")
-
-vcpkg_find_acquire_program(JOM)
-
-set(CONFIGURE_COMMAND ${PERL} Configure
- enable-static-engine
- enable-capieng
- no-unit-test
- no-ssl2
- no-asm
- no-uplink
- no-tests
- -utf-8
- shared
-)
-
-if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
- set(OPENSSL_ARCH VC-WIN32-UWP)
-elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
- set(OPENSSL_ARCH VC-WIN64A-UWP)
-elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
- set(OPENSSL_ARCH VC-WIN32-ARM-UWP)
-elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
- set(OPENSSL_ARCH VC-WIN64-ARM-UWP)
-else()
- message(FATAL_ERROR "Unsupported target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
-endif()
-
-set(OPENSSL_MAKEFILE "makefile")
-
-file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
-
-
-if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
-
- # Copy openssl sources.
- message(STATUS "Copying openssl release source files...")
- file(GLOB OPENSSL_SOURCE_FILES ${SOURCE_PATH}/*)
- foreach(SOURCE_FILE ${OPENSSL_SOURCE_FILES})
- file(COPY ${SOURCE_FILE} DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
- endforeach()
- message(STATUS "Copying openssl release source files... done")
- set(SOURCE_PATH_RELEASE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
-
- set(OPENSSLDIR_RELEASE ${CURRENT_PACKAGES_DIR})
-
- message(STATUS "Configure ${TARGET_TRIPLET}-rel")
- vcpkg_execute_required_process(
- COMMAND ${CONFIGURE_COMMAND} ${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_RELEASE}" "--openssldir=${OPENSSLDIR_RELEASE}" -FS
- WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
- LOGNAME configure-perl-${TARGET_TRIPLET}-${VCPKG_BUILD_TYPE}-rel
- )
- message(STATUS "Configure ${TARGET_TRIPLET}-rel done")
-
- message(STATUS "Build ${TARGET_TRIPLET}-rel")
- # Openssl's buildsystem has a race condition which will cause JOM to fail at some point.
- # This is ok; we just do as much work as we can in parallel first, then follow up with a single-threaded build.
- make_directory(${SOURCE_PATH_RELEASE}/inc32/openssl)
- execute_process(
- COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS} -f ${OPENSSL_MAKEFILE} build_libs
- WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
- OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-out.log
- ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-err.log
- )
- vcpkg_execute_required_process(
- COMMAND nmake -f ${OPENSSL_MAKEFILE} install_dev
- WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
- LOGNAME build-${TARGET_TRIPLET}-rel-1)
-
- message(STATUS "Build ${TARGET_TRIPLET}-rel done")
-endif()
-
-
-if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
- # Copy openssl sources.
- message(STATUS "Copying openssl debug source files...")
- file(GLOB OPENSSL_SOURCE_FILES ${SOURCE_PATH}/*)
- foreach(SOURCE_FILE ${OPENSSL_SOURCE_FILES})
- file(COPY ${SOURCE_FILE} DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
- endforeach()
- message(STATUS "Copying openssl debug source files... done")
- set(SOURCE_PATH_DEBUG "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-
- set(OPENSSLDIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug)
-
- message(STATUS "Configure ${TARGET_TRIPLET}-dbg")
- vcpkg_execute_required_process(
- COMMAND ${CONFIGURE_COMMAND} debug-${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_DEBUG}" "--openssldir=${OPENSSLDIR_DEBUG}" -FS
- WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
- LOGNAME configure-perl-${TARGET_TRIPLET}-${VCPKG_BUILD_TYPE}-dbg
- )
- message(STATUS "Configure ${TARGET_TRIPLET}-dbg done")
-
- message(STATUS "Build ${TARGET_TRIPLET}-dbg")
- make_directory(${SOURCE_PATH_DEBUG}/inc32/openssl)
- execute_process(
- COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS} -f ${OPENSSL_MAKEFILE} build_libs
- WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
- OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-out.log
- ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-err.log
- )
- vcpkg_execute_required_process(
- COMMAND nmake -f ${OPENSSL_MAKEFILE} install_dev
- WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
- LOGNAME build-${TARGET_TRIPLET}-dbg-1)
-
- message(STATUS "Build ${TARGET_TRIPLET}-dbg done")
-endif()
-
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/certs)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/private)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/engines-1_1)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/certs)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/engines-1_1)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/private)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-
-
-
-file(REMOVE
- ${CURRENT_PACKAGES_DIR}/bin/openssl.exe
- ${CURRENT_PACKAGES_DIR}/debug/bin/openssl.exe
- ${CURRENT_PACKAGES_DIR}/debug/openssl.cnf
- ${CURRENT_PACKAGES_DIR}/openssl.cnf
- ${CURRENT_PACKAGES_DIR}/ct_log_list.cnf
- ${CURRENT_PACKAGES_DIR}/ct_log_list.cnf.dist
- ${CURRENT_PACKAGES_DIR}/openssl.cnf.dist
- ${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf
- ${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf.dist
- ${CURRENT_PACKAGES_DIR}/debug/openssl.cnf.dist
-)
-
-
-file(READ "${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h" _contents)
-string(REPLACE "<winsock.h>" "<winsock2.h>" _contents "${_contents}")
-file(WRITE "${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h" "${_contents}")
-
-file(READ "${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" _contents)
-string(REPLACE "# include <windows.h>" "#ifndef _WINSOCKAPI_\n#define _WINSOCKAPI_\n#endif\n# include <windows.h>" _contents "${_contents}")
-file(WRITE "${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" "${_contents}")
-
-vcpkg_copy_pdbs()
-
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled) \ No newline at end of file
diff --git a/ports/openssl-uwp/usage b/ports/openssl-uwp/usage
deleted file mode 100644
index f535cb6a4..000000000
--- a/ports/openssl-uwp/usage
+++ /dev/null
@@ -1,4 +0,0 @@
-The package openssl is compatible with built-in CMake targets:
-
- find_package(OpenSSL REQUIRED)
- target_link_libraries(main PRIVATE OpenSSL::SSL OpenSSL::Crypto)
diff --git a/ports/openssl-windows/CONTROL b/ports/openssl-windows/CONTROL
index 0f0f65516..cdf903660 100644
--- a/ports/openssl-windows/CONTROL
+++ b/ports/openssl-windows/CONTROL
@@ -1,4 +1,4 @@
Source: openssl-windows
Version: 1.1.1h
-Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.
+Description: Deprecated OpenSSL port
Supports: windows
diff --git a/ports/openssl-windows/ConfigureIncludeQuotesFix.patch b/ports/openssl-windows/ConfigureIncludeQuotesFix.patch
deleted file mode 100644
index 09494f565..000000000
--- a/ports/openssl-windows/ConfigureIncludeQuotesFix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Configure b/Configure
-index c98107a..77ad9d3 100644
---- a/Configure
-+++ b/Configure
-@@ -972,7 +972,7 @@ PROCESS_ARGS:
- }
- elsif (/^--with-zlib-include=(.*)$/)
- {
-- $withargs{"zlib-include"}="-I$1";
-+ $withargs{"zlib-include"}="-I\"$1\"";
- }
- elsif (/^--with-fipsdir=(.*)$/)
- {
diff --git a/ports/openssl-windows/EmbedSymbolsInStaticLibsZ7.patch b/ports/openssl-windows/EmbedSymbolsInStaticLibsZ7.patch
deleted file mode 100644
index 1a8de2c4b..000000000
--- a/ports/openssl-windows/EmbedSymbolsInStaticLibsZ7.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/util/pl/VC-32.pl b/util/pl/VC-32.pl
-index dba96cb..5722f6e 100644
---- a/util/pl/VC-32.pl
-+++ b/util/pl/VC-32.pl
-@@ -154,9 +154,17 @@ else
- $cflags=$opt_cflags.$base_cflags;
- }
-
--# generate symbols.pdb unconditionally
--$app_cflag.=" /Zi /Fd\$(TMP_D)/app";
--$lib_cflag.=" /Zi /Fd\$(TMP_D)/lib";
-+# generate symbols.pdb when building dlls and embed symbols when building static libs
-+if ($shlib)
-+ {
-+ $app_cflag.=" /Zi /Fd\$(TMP_D)/app.pdb";
-+ $lib_cflag.=" /Zi /Fd\$(TMP_D)/lib.pdb";
-+ }
-+else
-+ {
-+ $app_cflag.=" /Z7";
-+ $lib_cflag.=" /Z7";
-+ }
- $lflags.=" /debug";
-
- $obj='.obj';
diff --git a/ports/openssl-windows/EnableWinARM32.patch b/ports/openssl-windows/EnableWinARM32.patch
deleted file mode 100644
index f1eedcb71..000000000
--- a/ports/openssl-windows/EnableWinARM32.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/util/pl/VC-32.pl b/util/pl/VC-32.pl
-index dba96cba5e..7fd99959f1 100644
---- a/util/pl/VC-32.pl
-+++ b/util/pl/VC-32.pl
-@@ -261,6 +261,8 @@ if ($shlib && $FLAVOR !~ /CE/)
- {
- $mlflags.=" $lflags /dll";
- $lib_cflag.=" -D_WINDLL";
-+ if ($base_cflags !~ /-D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE/)
-+ {
- #
- # Engage Applink...
- #
-@@ -286,6 +288,7 @@ ___
- CRYPTOOBJ=ms\uptable.obj $(CRYPTOOBJ)
- ___
- }
-+ }
- elsif ($shlib && $FLAVOR =~ /CE/)
- {
- $mlflags.=" $lflags /dll";
diff --git a/ports/openssl-windows/EnableWinARM64.patch b/ports/openssl-windows/EnableWinARM64.patch
deleted file mode 100644
index 9ec813a4e..000000000
--- a/ports/openssl-windows/EnableWinARM64.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/Configure b/Configure
-index 36a7a66..b31543d 100644
---- a/Configure
-+++ b/Configure
-@@ -592,9 +592,9 @@ my %table=(
- "debug-VC-WIN64A","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32",
- # x86 Win32 target defaults to ANSI API, if you want UNICODE, complement
- # 'perl Configure VC-WIN32' with '-DUNICODE -D_UNICODE'
--"VC-WIN32","cl:-W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
-+"VC-WIN32","cl:-W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
- # Unified CE target
--"debug-VC-WIN32","cl:-W3 -WX -Gs0 -GF -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
-+"debug-VC-WIN32","cl:-W3 -Gs0 -GF -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
- "VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
-
- # Borland C++ 4.5
diff --git a/ports/openssl-windows/STRINGIFYPatch.patch b/ports/openssl-windows/STRINGIFYPatch.patch
deleted file mode 100644
index dd8f9c297..000000000
--- a/ports/openssl-windows/STRINGIFYPatch.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/crypto/cversion.c b/crypto/cversion.c
-index bfff699..17b7912 100644
---- a/crypto/cversion.c
-+++ b/crypto/cversion.c
-@@ -56,6 +56,9 @@
- * [including the GNU Public Licence.]
- */
-
-+#define STRINGIFY2(x) #x
-+#define STRINGIFY(x) STRINGIFY2(x)
-+
- #include "cryptlib.h"
-
- #ifndef NO_WINDOWS_BRAINDEATH
-@@ -79,7 +82,7 @@ const char *SSLeay_version(int t)
- }
- if (t == SSLEAY_CFLAGS) {
- #ifdef CFLAGS
-- return (CFLAGS);
-+ return STRINGIFY(CFLAGS);
- #else
- return ("compiler: information not available");
- #endif
diff --git a/ports/openssl-windows/portfile.cmake b/ports/openssl-windows/portfile.cmake
index 10742b23e..0015715fb 100644
--- a/ports/openssl-windows/portfile.cmake
+++ b/ports/openssl-windows/portfile.cmake
@@ -1,190 +1 @@
-vcpkg_fail_port_install(MESSAGE "${PORT} is only for Windows Desktop" ON_TARGET "UWP" "Linux" "OSX")
-
-if(EXISTS "${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h")
- 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()
-
-vcpkg_find_acquire_program(PERL)
-
-set(OPENSSL_VERSION 1.1.1h)
-
-get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
-vcpkg_add_to_path("${PERL_EXE_PATH}")
-
-vcpkg_download_distfile(ARCHIVE
- URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.1.1/openssl-${OPENSSL_VERSION}.tar.gz"
- FILENAME "openssl-${OPENSSL_VERSION}.tar.gz"
- SHA512 da50fd99325841ed7a4367d9251c771ce505a443a73b327d8a46b2c6a7d2ea99e43551a164efc86f8743b22c2bdb0020bf24a9cbd445e9d68868b2dc1d34033a
-)
-
-vcpkg_extract_source_archive_ex(
- OUT_SOURCE_PATH SOURCE_PATH
- ARCHIVE ${ARCHIVE}
-)
-
-vcpkg_find_acquire_program(NASM)
-get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
-vcpkg_add_to_path(PREPEND "${NASM_EXE_PATH}")
-
-vcpkg_find_acquire_program(JOM)
-
-set(OPENSSL_SHARED no-shared)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- set(OPENSSL_SHARED shared)
-endif()
-
-set(CONFIGURE_OPTIONS
- enable-static-engine
- enable-capieng
- no-ssl2
- no-tests
- -utf-8
- ${OPENSSL_SHARED}
-)
-
-if(DEFINED OPENSSL_USE_NOPINSHARED)
- set(CONFIGURE_OPTIONS ${CONFIGURE_OPTIONS} no-pinshared)
-endif()
-
-set(CONFIGURE_COMMAND ${PERL} Configure ${CONFIGURE_OPTIONS})
-
-if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
- set(OPENSSL_ARCH VC-WIN32)
-elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
- set(OPENSSL_ARCH VC-WIN64A)
-elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
- set(OPENSSL_ARCH VC-WIN32-ARM)
-elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
- set(OPENSSL_ARCH VC-WIN64-ARM)
-else()
- message(FATAL_ERROR "Unsupported target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
-endif()
-
-set(OPENSSL_MAKEFILE "makefile")
-
-file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
-
-
-if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
-
- # Copy openssl sources.
- message(STATUS "Copying openssl release source files...")
- file(GLOB OPENSSL_SOURCE_FILES ${SOURCE_PATH}/*)
- foreach(SOURCE_FILE ${OPENSSL_SOURCE_FILES})
- file(COPY ${SOURCE_FILE} DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
- endforeach()
- message(STATUS "Copying openssl release source files... done")
- set(SOURCE_PATH_RELEASE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
-
- set(OPENSSLDIR_RELEASE ${CURRENT_PACKAGES_DIR})
-
- message(STATUS "Configure ${TARGET_TRIPLET}-rel")
- vcpkg_execute_required_process(
- COMMAND ${CONFIGURE_COMMAND} ${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_RELEASE}" "--openssldir=${OPENSSLDIR_RELEASE}" -FS
- WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
- LOGNAME configure-perl-${TARGET_TRIPLET}-${VCPKG_BUILD_TYPE}-rel
- )
- message(STATUS "Configure ${TARGET_TRIPLET}-rel done")
-
- message(STATUS "Build ${TARGET_TRIPLET}-rel")
- # Openssl's buildsystem has a race condition which will cause JOM to fail at some point.
- # This is ok; we just do as much work as we can in parallel first, then follow up with a single-threaded build.
- make_directory(${SOURCE_PATH_RELEASE}/inc32/openssl)
- execute_process(
- COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS} -f ${OPENSSL_MAKEFILE}
- WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
- OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-out.log
- ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-err.log
- )
- vcpkg_execute_required_process(
- COMMAND nmake -f ${OPENSSL_MAKEFILE} install_sw install_ssldirs
- WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
- LOGNAME build-${TARGET_TRIPLET}-rel-1)
-
- message(STATUS "Build ${TARGET_TRIPLET}-rel done")
-endif()
-
-
-if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
- # Copy openssl sources.
- message(STATUS "Copying openssl debug source files...")
- file(GLOB OPENSSL_SOURCE_FILES ${SOURCE_PATH}/*)
- foreach(SOURCE_FILE ${OPENSSL_SOURCE_FILES})
- file(COPY ${SOURCE_FILE} DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
- endforeach()
- message(STATUS "Copying openssl debug source files... done")
- set(SOURCE_PATH_DEBUG "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-
- set(OPENSSLDIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug)
-
- message(STATUS "Configure ${TARGET_TRIPLET}-dbg")
- vcpkg_execute_required_process(
- COMMAND ${CONFIGURE_COMMAND} debug-${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_DEBUG}" "--openssldir=${OPENSSLDIR_DEBUG}" -FS
- WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
- LOGNAME configure-perl-${TARGET_TRIPLET}-${VCPKG_BUILD_TYPE}-dbg
- )
- message(STATUS "Configure ${TARGET_TRIPLET}-dbg done")
-
- message(STATUS "Build ${TARGET_TRIPLET}-dbg")
- make_directory(${SOURCE_PATH_DEBUG}/inc32/openssl)
- execute_process(
- COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS} -f ${OPENSSL_MAKEFILE}
- WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
- OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-out.log
- ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-err.log
- )
- vcpkg_execute_required_process(
- COMMAND nmake -f ${OPENSSL_MAKEFILE} install_sw install_ssldirs
- WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
- LOGNAME build-${TARGET_TRIPLET}-dbg-1)
-
- message(STATUS "Build ${TARGET_TRIPLET}-dbg done")
-endif()
-
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/certs)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/private)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/engines-1_1)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/certs)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/engines-1_1)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/private)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-
-
-
-file(REMOVE
- ${CURRENT_PACKAGES_DIR}/ct_log_list.cnf
- ${CURRENT_PACKAGES_DIR}/ct_log_list.cnf.dist
- ${CURRENT_PACKAGES_DIR}/openssl.cnf.dist
- ${CURRENT_PACKAGES_DIR}/debug/bin/openssl.exe
- ${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf
- ${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf.dist
- ${CURRENT_PACKAGES_DIR}/debug/openssl.cnf
- ${CURRENT_PACKAGES_DIR}/debug/openssl.cnf.dist
-)
-
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/openssl/)
-file(RENAME ${CURRENT_PACKAGES_DIR}/bin/openssl.exe ${CURRENT_PACKAGES_DIR}/tools/openssl/openssl.exe)
-file(RENAME ${CURRENT_PACKAGES_DIR}/openssl.cnf ${CURRENT_PACKAGES_DIR}/tools/openssl/openssl.cnf)
-
-vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/openssl)
-
-if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
- # They should be empty, only the exes deleted above were in these directories
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/)
-endif()
-
-vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h"
- "<winsock.h>"
- "<winsock2.h>"
-)
-
-vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/openssl/rand.h"
- "# include <windows.h>"
- "#ifndef _WINSOCKAPI_\n#define _WINSOCKAPI_\n#endif\n# include <windows.h>"
-)
-
-vcpkg_copy_pdbs()
-
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled) \ No newline at end of file
diff --git a/ports/openssl-windows/usage b/ports/openssl-windows/usage
deleted file mode 100644
index f535cb6a4..000000000
--- a/ports/openssl-windows/usage
+++ /dev/null
@@ -1,4 +0,0 @@
-The package openssl is compatible with built-in CMake targets:
-
- find_package(OpenSSL REQUIRED)
- target_link_libraries(main PRIVATE OpenSSL::SSL OpenSSL::Crypto)
diff --git a/ports/openssl/CONTROL b/ports/openssl/CONTROL
index d643a3c29..469f8305a 100644
--- a/ports/openssl/CONTROL
+++ b/ports/openssl/CONTROL
@@ -1,6 +1,5 @@
Source: openssl
-Version: 1.1.1g
+Version: 1.1.1h
Port-Version: 1
Homepage: https://www.openssl.org
Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.
-Build-Depends: openssl-windows (!uwp&windows), openssl-uwp (uwp), openssl-unix (!uwp&!windows)
diff --git a/ports/openssl/portfile.cmake b/ports/openssl/portfile.cmake
index 3d55c367f..2d2622e6f 100644
--- a/ports/openssl/portfile.cmake
+++ b/ports/openssl/portfile.cmake
@@ -1,2 +1,25 @@
-set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
-file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/openssl/)
+if(EXISTS "${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h")
+ 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()
+
+set(OPENSSL_VERSION 1.1.1h)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.1.1/openssl-${OPENSSL_VERSION}.tar.gz"
+ FILENAME "openssl-${OPENSSL_VERSION}.tar.gz"
+ SHA512 da50fd99325841ed7a4367d9251c771ce505a443a73b327d8a46b2c6a7d2ea99e43551a164efc86f8743b22c2bdb0020bf24a9cbd445e9d68868b2dc1d34033a
+)
+
+vcpkg_find_acquire_program(PERL)
+get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
+vcpkg_add_to_path("${PERL_EXE_PATH}")
+
+if(VCPKG_TARGET_IS_UWP)
+ include("${CMAKE_CURRENT_LIST_DIR}/uwp/portfile.cmake")
+elseif(VCPKG_TARGET_IS_WINDOWS)
+ include("${CMAKE_CURRENT_LIST_DIR}/windows/portfile.cmake")
+else()
+ include("${CMAKE_CURRENT_LIST_DIR}/unix/portfile.cmake")
+endif()
+
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/")
diff --git a/ports/openssl-unix/CMakeLists.txt b/ports/openssl/unix/CMakeLists.txt
index 7e09222c9..7e09222c9 100644
--- a/ports/openssl-unix/CMakeLists.txt
+++ b/ports/openssl/unix/CMakeLists.txt
diff --git a/ports/openssl-unix/ConfigureIncludeQuotesFix.patch b/ports/openssl/unix/ConfigureIncludeQuotesFix.patch
index 09494f565..09494f565 100644
--- a/ports/openssl-unix/ConfigureIncludeQuotesFix.patch
+++ b/ports/openssl/unix/ConfigureIncludeQuotesFix.patch
diff --git a/ports/openssl-unix/EmbedSymbolsInStaticLibsZ7.patch b/ports/openssl/unix/EmbedSymbolsInStaticLibsZ7.patch
index 1a8de2c4b..1a8de2c4b 100644
--- a/ports/openssl-unix/EmbedSymbolsInStaticLibsZ7.patch
+++ b/ports/openssl/unix/EmbedSymbolsInStaticLibsZ7.patch
diff --git a/ports/openssl-unix/STRINGIFYPatch.patch b/ports/openssl/unix/STRINGIFYPatch.patch
index dd8f9c297..dd8f9c297 100644
--- a/ports/openssl-unix/STRINGIFYPatch.patch
+++ b/ports/openssl/unix/STRINGIFYPatch.patch
diff --git a/ports/openssl/unix/portfile.cmake b/ports/openssl/unix/portfile.cmake
new file mode 100644
index 000000000..00f503f95
--- /dev/null
+++ b/ports/openssl/unix/portfile.cmake
@@ -0,0 +1,47 @@
+if (NOT VCPKG_TARGET_IS_MINGW)
+ vcpkg_fail_port_install(MESSAGE "${PORT} is only for openssl on Unix-like systems" ON_TARGET "UWP" "Windows")
+endif()
+
+vcpkg_extract_source_archive_ex(
+ OUT_SOURCE_PATH MASTER_COPY_SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+ REF ${OPENSSL_VERSION}
+)
+
+if(CMAKE_HOST_WIN32)
+ vcpkg_acquire_msys(MSYS_ROOT PACKAGES make perl)
+ set(MAKE ${MSYS_ROOT}/usr/bin/make.exe)
+ set(PERL ${MSYS_ROOT}/usr/bin/perl.exe)
+else()
+ find_program(MAKE make)
+ if(NOT MAKE)
+ message(FATAL_ERROR "Could not find make. Please install it through your package manager.")
+ endif()
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${CMAKE_CURRENT_LIST_DIR}
+ PREFER_NINJA
+ OPTIONS
+ -DSOURCE_PATH=${MASTER_COPY_SOURCE_PATH}
+ -DPERL=${PERL}
+ -DMAKE=${MAKE}
+ OPTIONS_RELEASE
+ -DINSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+file(GLOB HEADERS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/include/openssl/*.h)
+set(RESOLVED_HEADERS)
+foreach(HEADER ${HEADERS})
+ get_filename_component(X "${HEADER}" REALPATH)
+ list(APPEND RESOLVED_HEADERS "${X}")
+endforeach()
+
+file(INSTALL ${RESOLVED_HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include/openssl)
+file(INSTALL ${MASTER_COPY_SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/openssl)
+endif()
diff --git a/ports/openssl-unix/remove-deps.cmake b/ports/openssl/unix/remove-deps.cmake
index a57c70fe9..a57c70fe9 100644
--- a/ports/openssl-unix/remove-deps.cmake
+++ b/ports/openssl/unix/remove-deps.cmake
diff --git a/ports/openssl-unix/vcpkg-cmake-wrapper.cmake b/ports/openssl/unix/vcpkg-cmake-wrapper.cmake
index 43e84cb02..43e84cb02 100644
--- a/ports/openssl-unix/vcpkg-cmake-wrapper.cmake
+++ b/ports/openssl/unix/vcpkg-cmake-wrapper.cmake
diff --git a/ports/openssl-uwp/EnableUWPSupport.patch b/ports/openssl/uwp/EnableUWPSupport.patch
index 4313220f1..4313220f1 100644
--- a/ports/openssl-uwp/EnableUWPSupport.patch
+++ b/ports/openssl/uwp/EnableUWPSupport.patch
diff --git a/ports/openssl-uwp/fix-uwp-configure-unicode.patch b/ports/openssl/uwp/fix-uwp-configure-unicode.patch
index a3b645ad1..a3b645ad1 100644
--- a/ports/openssl-uwp/fix-uwp-configure-unicode.patch
+++ b/ports/openssl/uwp/fix-uwp-configure-unicode.patch
diff --git a/ports/openssl-uwp/make-openssl.bat b/ports/openssl/uwp/make-openssl.bat
index 6f6166a24..6f6166a24 100644
--- a/ports/openssl-uwp/make-openssl.bat
+++ b/ports/openssl/uwp/make-openssl.bat
diff --git a/ports/openssl/uwp/portfile.cmake b/ports/openssl/uwp/portfile.cmake
new file mode 100644
index 000000000..08a523cda
--- /dev/null
+++ b/ports/openssl/uwp/portfile.cmake
@@ -0,0 +1,156 @@
+vcpkg_fail_port_install(MESSAGE "${PORT} is only for Windows Universal Platform" ON_TARGET "Linux" "OSX")
+
+vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
+
+vcpkg_find_acquire_program(JOM)
+get_filename_component(JOM_EXE_PATH ${JOM} DIRECTORY)
+vcpkg_add_to_path("${PERL_EXE_PATH}")
+
+vcpkg_extract_source_archive_ex(
+ OUT_SOURCE_PATH SOURCE_PATH
+ ARCHIVE ${ARCHIVE}
+ PATCHES
+ uwp/EnableUWPSupport.patch
+)
+
+vcpkg_find_acquire_program(NASM)
+get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
+vcpkg_add_to_path(PREPEND "${NASM_EXE_PATH}")
+
+set(CONFIGURE_COMMAND ${PERL} Configure
+ enable-static-engine
+ enable-capieng
+ no-unit-test
+ no-ssl2
+ no-asm
+ no-uplink
+ no-tests
+ -utf-8
+ shared
+)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(OPENSSL_ARCH VC-WIN32-UWP)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(OPENSSL_ARCH VC-WIN64A-UWP)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ set(OPENSSL_ARCH VC-WIN32-ARM-UWP)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ set(OPENSSL_ARCH VC-WIN64-ARM-UWP)
+else()
+ message(FATAL_ERROR "Unsupported target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
+endif()
+
+set(OPENSSL_MAKEFILE "makefile")
+
+file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+
+
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+
+ # Copy openssl sources.
+ message(STATUS "Copying openssl release source files...")
+ file(GLOB OPENSSL_SOURCE_FILES "${SOURCE_PATH}/*")
+ foreach(SOURCE_FILE ${OPENSSL_SOURCE_FILES})
+ file(COPY ${SOURCE_FILE} DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+ endforeach()
+ message(STATUS "Copying openssl release source files... done")
+ set(SOURCE_PATH_RELEASE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+ set(OPENSSLDIR_RELEASE "${CURRENT_PACKAGES_DIR}")
+
+ message(STATUS "Configure ${TARGET_TRIPLET}-rel")
+ vcpkg_execute_required_process(
+ COMMAND ${CONFIGURE_COMMAND} ${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_RELEASE}" "--openssldir=${OPENSSLDIR_RELEASE}" -FS
+ WORKING_DIRECTORY "${SOURCE_PATH_RELEASE}"
+ LOGNAME configure-perl-${TARGET_TRIPLET}-${VCPKG_BUILD_TYPE}-rel
+ )
+ message(STATUS "Configure ${TARGET_TRIPLET}-rel done")
+
+ message(STATUS "Build ${TARGET_TRIPLET}-rel")
+ # Openssl's buildsystem has a race condition which will cause JOM to fail at some point.
+ # This is ok; we just do as much work as we can in parallel first, then follow up with a single-threaded build.
+ make_directory(${SOURCE_PATH_RELEASE}/inc32/openssl)
+ execute_process(
+ COMMAND "${JOM}" -k -j ${VCPKG_CONCURRENCY} -f "${OPENSSL_MAKEFILE}" build_libs
+ WORKING_DIRECTORY "${SOURCE_PATH_RELEASE}"
+ OUTPUT_FILE "${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-out.log"
+ ERROR_FILE "${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-err.log"
+ )
+ vcpkg_execute_required_process(
+ COMMAND nmake -f "${OPENSSL_MAKEFILE}" install_dev
+ WORKING_DIRECTORY "${SOURCE_PATH_RELEASE}"
+ LOGNAME build-${TARGET_TRIPLET}-rel-1)
+
+ message(STATUS "Build ${TARGET_TRIPLET}-rel done")
+endif()
+
+
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ # Copy openssl sources.
+ message(STATUS "Copying openssl debug source files...")
+ file(GLOB OPENSSL_SOURCE_FILES ${SOURCE_PATH}/*)
+ foreach(SOURCE_FILE ${OPENSSL_SOURCE_FILES})
+ file(COPY "${SOURCE_FILE}" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+ endforeach()
+ message(STATUS "Copying openssl debug source files... done")
+ set(SOURCE_PATH_DEBUG "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+
+ set(OPENSSLDIR_DEBUG "${CURRENT_PACKAGES_DIR}/debug")
+
+ message(STATUS "Configure ${TARGET_TRIPLET}-dbg")
+ vcpkg_execute_required_process(
+ COMMAND ${CONFIGURE_COMMAND} debug-${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_DEBUG}" "--openssldir=${OPENSSLDIR_DEBUG}" -FS
+ WORKING_DIRECTORY "${SOURCE_PATH_DEBUG}"
+ LOGNAME configure-perl-${TARGET_TRIPLET}-${VCPKG_BUILD_TYPE}-dbg
+ )
+ message(STATUS "Configure ${TARGET_TRIPLET}-dbg done")
+
+ message(STATUS "Build ${TARGET_TRIPLET}-dbg")
+ make_directory("${SOURCE_PATH_DEBUG}/inc32/openssl")
+ execute_process(
+ COMMAND "${JOM}" -k -j ${VCPKG_CONCURRENCY} -f "${OPENSSL_MAKEFILE}" build_libs
+ WORKING_DIRECTORY "${SOURCE_PATH_DEBUG}"
+ OUTPUT_FILE "${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-out.log"
+ ERROR_FILE "${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-err.log"
+ )
+ vcpkg_execute_required_process(
+ COMMAND nmake -f "${OPENSSL_MAKEFILE}" install_dev
+ WORKING_DIRECTORY "${SOURCE_PATH_DEBUG}"
+ LOGNAME build-${TARGET_TRIPLET}-dbg-1)
+
+ message(STATUS "Build ${TARGET_TRIPLET}-dbg done")
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/certs")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/private")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/engines-1_1")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/certs")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/engines-1_1")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/private")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+file(REMOVE
+ "${CURRENT_PACKAGES_DIR}/bin/openssl.exe"
+ "${CURRENT_PACKAGES_DIR}/debug/bin/openssl.exe"
+ "${CURRENT_PACKAGES_DIR}/debug/openssl.cnf"
+ "${CURRENT_PACKAGES_DIR}/openssl.cnf"
+ "${CURRENT_PACKAGES_DIR}/ct_log_list.cnf"
+ "${CURRENT_PACKAGES_DIR}/ct_log_list.cnf.dist"
+ "${CURRENT_PACKAGES_DIR}/openssl.cnf.dist"
+ "${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf"
+ "${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf.dist"
+ "${CURRENT_PACKAGES_DIR}/debug/openssl.cnf.dist"
+)
+
+file(READ "${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h" _contents)
+string(REPLACE "<winsock.h>" "<winsock2.h>" _contents "${_contents}")
+file(WRITE "${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h" "${_contents}")
+
+file(READ "${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" _contents)
+string(REPLACE "# include <windows.h>" "#ifndef _WINSOCKAPI_\n#define _WINSOCKAPI_\n#endif\n# include <windows.h>" _contents "${_contents}")
+file(WRITE "${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" "${_contents}")
+
+vcpkg_copy_pdbs()
+
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/ports/openssl/windows/portfile.cmake b/ports/openssl/windows/portfile.cmake
new file mode 100644
index 000000000..d444bd694
--- /dev/null
+++ b/ports/openssl/windows/portfile.cmake
@@ -0,0 +1,173 @@
+vcpkg_fail_port_install(MESSAGE "${PORT} is only for Windows Desktop" ON_TARGET "UWP" "Linux" "OSX")
+
+vcpkg_extract_source_archive_ex(
+ OUT_SOURCE_PATH SOURCE_PATH
+ ARCHIVE ${ARCHIVE}
+)
+
+vcpkg_find_acquire_program(NASM)
+get_filename_component(NASM_EXE_PATH "${NASM}" DIRECTORY)
+vcpkg_add_to_path(PREPEND "${NASM_EXE_PATH}")
+
+vcpkg_find_acquire_program(JOM)
+
+set(OPENSSL_SHARED no-shared)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(OPENSSL_SHARED shared)
+endif()
+
+set(CONFIGURE_OPTIONS
+ enable-static-engine
+ enable-capieng
+ no-ssl2
+ no-tests
+ -utf-8
+ ${OPENSSL_SHARED}
+)
+
+if(DEFINED OPENSSL_USE_NOPINSHARED)
+ set(CONFIGURE_OPTIONS ${CONFIGURE_OPTIONS} no-pinshared)
+endif()
+
+set(CONFIGURE_COMMAND "${PERL}" Configure ${CONFIGURE_OPTIONS})
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(OPENSSL_ARCH VC-WIN32)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(OPENSSL_ARCH VC-WIN64A)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ set(OPENSSL_ARCH VC-WIN32-ARM)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ set(OPENSSL_ARCH VC-WIN64-ARM)
+else()
+ message(FATAL_ERROR "Unsupported target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
+endif()
+
+set(OPENSSL_MAKEFILE "makefile")
+
+file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+
+ # Copy openssl sources.
+ message(STATUS "Copying openssl release source files...")
+ file(GLOB OPENSSL_SOURCE_FILES ${SOURCE_PATH}/*)
+ foreach(SOURCE_FILE ${OPENSSL_SOURCE_FILES})
+ file(COPY ${SOURCE_FILE} DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+ endforeach()
+ message(STATUS "Copying openssl release source files... done")
+ set(SOURCE_PATH_RELEASE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+ set(OPENSSLDIR_RELEASE ${CURRENT_PACKAGES_DIR})
+
+ message(STATUS "Configure ${TARGET_TRIPLET}-rel")
+ vcpkg_execute_required_process(
+ COMMAND ${CONFIGURE_COMMAND} ${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_RELEASE}" "--openssldir=${OPENSSLDIR_RELEASE}" -FS
+ WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
+ LOGNAME configure-perl-${TARGET_TRIPLET}-${VCPKG_BUILD_TYPE}-rel
+ )
+ message(STATUS "Configure ${TARGET_TRIPLET}-rel done")
+
+ message(STATUS "Build ${TARGET_TRIPLET}-rel")
+ # Openssl's buildsystem has a race condition which will cause JOM to fail at some point.
+ # This is ok; we just do as much work as we can in parallel first, then follow up with a single-threaded build.
+ make_directory(${SOURCE_PATH_RELEASE}/inc32/openssl)
+ execute_process(
+ COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS} -f ${OPENSSL_MAKEFILE}
+ WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
+ OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-out.log
+ ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-err.log
+ )
+ vcpkg_execute_required_process(
+ COMMAND nmake -f ${OPENSSL_MAKEFILE} install_sw install_ssldirs
+ WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
+ LOGNAME build-${TARGET_TRIPLET}-rel-1)
+
+ message(STATUS "Build ${TARGET_TRIPLET}-rel done")
+endif()
+
+
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ # Copy openssl sources.
+ message(STATUS "Copying openssl debug source files...")
+ file(GLOB OPENSSL_SOURCE_FILES ${SOURCE_PATH}/*)
+ foreach(SOURCE_FILE ${OPENSSL_SOURCE_FILES})
+ file(COPY ${SOURCE_FILE} DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+ endforeach()
+ message(STATUS "Copying openssl debug source files... done")
+ set(SOURCE_PATH_DEBUG "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+
+ set(OPENSSLDIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug)
+
+ message(STATUS "Configure ${TARGET_TRIPLET}-dbg")
+ vcpkg_execute_required_process(
+ COMMAND ${CONFIGURE_COMMAND} debug-${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_DEBUG}" "--openssldir=${OPENSSLDIR_DEBUG}" -FS
+ WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
+ LOGNAME configure-perl-${TARGET_TRIPLET}-${VCPKG_BUILD_TYPE}-dbg
+ )
+ message(STATUS "Configure ${TARGET_TRIPLET}-dbg done")
+
+ message(STATUS "Build ${TARGET_TRIPLET}-dbg")
+ make_directory(${SOURCE_PATH_DEBUG}/inc32/openssl)
+ execute_process(
+ COMMAND "${JOM}" -k -j ${VCPKG_CONCURRENCY} -f "${OPENSSL_MAKEFILE}"
+ WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
+ OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-out.log
+ ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-err.log
+ )
+ vcpkg_execute_required_process(
+ COMMAND nmake -f "${OPENSSL_MAKEFILE}" install_sw install_ssldirs
+ WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
+ LOGNAME build-${TARGET_TRIPLET}-dbg-1)
+
+ message(STATUS "Build ${TARGET_TRIPLET}-dbg done")
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/certs")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/private")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/engines-1_1")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/certs")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/engines-1_1")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/private")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+file(REMOVE
+ "${CURRENT_PACKAGES_DIR}/ct_log_list.cnf"
+ "${CURRENT_PACKAGES_DIR}/ct_log_list.cnf.dist"
+ "${CURRENT_PACKAGES_DIR}/openssl.cnf.dist"
+ "${CURRENT_PACKAGES_DIR}/debug/bin/openssl.exe"
+ "${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf"
+ "${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf.dist"
+ "${CURRENT_PACKAGES_DIR}/debug/openssl.cnf"
+ "${CURRENT_PACKAGES_DIR}/debug/openssl.cnf.dist"
+)
+
+file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/openssl/")
+file(RENAME "${CURRENT_PACKAGES_DIR}/bin/openssl.exe" "${CURRENT_PACKAGES_DIR}/tools/openssl/openssl.exe")
+file(RENAME "${CURRENT_PACKAGES_DIR}/openssl.cnf" "${CURRENT_PACKAGES_DIR}/tools/openssl/openssl.cnf")
+
+vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/openssl")
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ # They should be empty, only the exes deleted above were in these directories
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin/")
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/")
+endif()
+
+vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h"
+ "<winsock.h>"
+ "<winsock2.h>"
+)
+
+vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/openssl/rand.h"
+ "# include <windows.h>"
+ "#ifndef _WINSOCKAPI_\n#define _WINSOCKAPI_\n#endif\n# include <windows.h>"
+)
+
+vcpkg_copy_pdbs()
+
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/openssl")
+endif()
diff --git a/ports/openssl/windows/vcpkg-cmake-wrapper.cmake b/ports/openssl/windows/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..715448d25
--- /dev/null
+++ b/ports/openssl/windows/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,10 @@
+_find_package(${ARGS})
+if(OPENSSL_FOUND)
+ list(APPEND OPENSSL_LIBRARIES Crypt32.lib ws2_32.lib)
+ if(TARGET OpenSSL::Crypto)
+ set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Crypt32.lib;ws2_32.lib")
+ endif()
+ if(TARGET OpenSSL::SSL)
+ set_property(TARGET OpenSSL::SSL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Crypt32.lib;ws2_32.lib")
+ endif()
+endif()