From 922afb137a48e4433c8350fdad95d07d16753b8b Mon Sep 17 00:00:00 2001 From: luncliff Date: Wed, 29 Sep 2021 23:30:49 +0900 Subject: [PATCH 01/10] [openssl3] create a new port --- ports/openssl3/detect_platform.cmake | 86 +++++++++++++ ports/openssl3/portfile.cmake | 181 +++++++++++++++++++++++++++ ports/openssl3/vcpkg.json | 7 ++ 3 files changed, 274 insertions(+) create mode 100644 ports/openssl3/detect_platform.cmake create mode 100644 ports/openssl3/portfile.cmake create mode 100644 ports/openssl3/vcpkg.json diff --git a/ports/openssl3/detect_platform.cmake b/ports/openssl3/detect_platform.cmake new file mode 100644 index 00000000000000..34b7b7a5b5f12d --- /dev/null +++ b/ports/openssl3/detect_platform.cmake @@ -0,0 +1,86 @@ +if(VCPKG_TARGET_IS_ANDROID) + # ${SOURCE_PATH}/Configuration/15-android.conf + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(PLATFORM "android-arm64") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + set(PLATFORM "android-arm") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "android-x86_64") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(PLATFORM "android-x86") + endif() + +elseif(VCPKG_TARGET_IS_LINUX) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(PLATFORM "linux-aarch64") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + set(PLATFORM "linux-armv4") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "linux-x86_64") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(PLATFORM "linux-x86") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "ppc64le") + set(PLATFORM "linux-ppc64le") + endif() + +elseif(VCPKG_TARGET_IS_IOS) + # ${SOURCE_PATH}/Configuration/15-ios.conf + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(PLATFORM "ios64-xcrun") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + set(PLATFORM "ios-xcrun") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR + VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "iossimulator-xcrun") + endif() + +elseif(VCPKG_TARGET_IS_OSX) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(PLATFORM "darwin64-arm64-cc") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "darwin64-x86_64-cc") + endif() + +elseif(VCPKG_TARGET_IS_FREEBSD OR VCPKG_TARGET_IS_OPENBSD) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "BSD-x86_64") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(PLATFORM "BSD-x86") + endif() + +elseif(VCPKG_TARGET_IS_MINGW) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "mingw64") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(PLATFORM "mingw") + endif() + +elseif(VCPKG_TARGET_IS_UWP) + # https://github.com/microsoft/msquic/blob/main/submodules/CMakeLists.txt#L26 + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(PLATFORM "VC-WIN32-ONECORE") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "VC-WIN64A-ONECORE") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + set(PLATFORM "VC-WIN32-ARM") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(PLATFORM "VC-WIN64-ARM") + endif() + +elseif(VCPKG_TARGET_IS_WINDOWS) + # ${SOURCE_PATH}/Configuration/50-win-onecore.conf + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(PLATFORM "VC-WIN32") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "VC-WIN64A") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + set(PLATFORM "VC-WIN32-ARM") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(PLATFORM "VC-WIN64-ARM") + endif() + +endif() + +if(NOT DEFINED PLATFORM) + message(FATAL_ERROR "PLATFORM is unknown for the target platform/architecture") +endif() \ No newline at end of file diff --git a/ports/openssl3/portfile.cmake b/ports/openssl3/portfile.cmake new file mode 100644 index 00000000000000..43b04a74c7fc9f --- /dev/null +++ b/ports/openssl3/portfile.cmake @@ -0,0 +1,181 @@ +if(EXISTS ${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h) + message(FATAL_ERROR "Can't build '${PORT}' if another SSL library is installed. Please remove existing one and try install '${PORT}' again if you need it.") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO openssl/openssl + REF openssl-3.0.0 + SHA512 50b4fefa3e5a3359e7b06bfbc4ecc525ef9d76e13d087aa8e2d29880f08f74cc9d0c76b9bf1895c118def2bb0e4db0095e799a752b64b60721a423bd2cf989da +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + list(APPEND CONFIGURE_OPTIONS shared) +else() + list(APPEND CONFIGURE_OPTIONS no-shared) +endif() + +# see ${SOURCE_PATH}/INSTALL.md +list(APPEND CONFIGURE_OPTIONS + no-zlib + no-ui-console # Don't build with the User Interface (UI) console method + no-module # Don't build any dynamically loadable engines + no-makedepend # Don't generate dependencies + no-tests # Don't build test programs or run any tests +) +if(VCPKG_TARGET_IS_UWP) + list(APPEND CONFIGURE_OPTIONS no-async) +endif() +if(VCPKG_TARGET_IS_WINDOWS) + # jom will build in parallel mode, we need /FS for PDB access + list(APPEND CONFIGURE_OPTIONS -utf-8 -FS) + +elseif(VCPKG_TARGET_IS_IOS) + # see https://github.com/microsoft/vcpkg PR 12527 + # disable that makes linkage error (e.g. require stderr usage) + list(APPEND CONFIGURE_OPTIONS no-stdio no-ui no-asm) + +endif() + +# Option: platform/architecture +include(${CMAKE_CURRENT_LIST_DIR}/detect_platform.cmake) + +# Clean & copy source files for working directories +file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel +) +get_filename_component(SOURCE_DIR_NAME ${SOURCE_PATH} NAME) +file(COPY ${SOURCE_PATH} + DESTINATION ${CURRENT_BUILDTREES_DIR}) +file(RENAME ${CURRENT_BUILDTREES_DIR}/${SOURCE_DIR_NAME} + ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) +file(COPY ${SOURCE_PATH} + DESTINATION ${CURRENT_BUILDTREES_DIR}) +file(RENAME ${CURRENT_BUILDTREES_DIR}/${SOURCE_DIR_NAME} + ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + +# see ${SOURCE_PATH}/NOTES-PERL.md +vcpkg_find_acquire_program(PERL) +get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) +vcpkg_add_to_path(${PERL_EXE_PATH}) + +if(NOT VCPKG_HOST_IS_WINDOWS) + # see ${SOURCE_PATH}/NOTES-UNIX.md + find_program(MAKE make) + get_filename_component(MAKE_EXE_PATH ${MAKE} DIRECTORY) +endif() + +if(VCPKG_TARGET_IS_WINDOWS) + # see ${SOURCE_PATH}/NOTES-WINDOWS.md + vcpkg_find_acquire_program(NASM) + get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY) + vcpkg_add_to_path(PREPEND ${NASM_EXE_PATH}) + # note: jom is not for `vcpkg_add_to_path` + vcpkg_find_acquire_program(JOM) + +elseif(VCPKG_TARGET_IS_ANDROID) + # see ${SOURCE_PATH}/NOTES-ANDROID.md + if(NOT DEFINED ENV{ANDROID_NDK_ROOT} AND DEFINED ENV{ANDROID_NDK_HOME}) + message(STATUS "ENV{ANDROID_NDK_ROOT} will be set to $ENV{ANDROID_NDK_HOME}") + set(ENV{ANDROID_NDK_ROOT} $ENV{ANDROID_NDK_HOME}) + endif() + if(NOT DEFINED ENV{ANDROID_NDK_ROOT}) + message(FATAL_ERROR "ENV{ANDROID_NDK_ROOT} is required by ${SOURCE_PATH}/Configurations/15-android.conf") + endif() + if(VCPKG_HOST_IS_LINUX) + set(NDK_HOST_TAG "linux-x86_64") + elseif(VCPKG_HOST_IS_OSX) + set(NDK_HOST_TAG "darwin-x86_64") + elseif(VCPKG_HOST_IS_WINDOWS) + set(NDK_HOST_TAG "windows-x86_64") + else() + message(FATAL_ERROR "Unknown NDK host platform") + endif() + get_filename_component(NDK_TOOL_PATH $ENV{ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${NDK_HOST_TAG}/bin ABSOLUTE) + vcpkg_add_to_path(PREPEND ${NDK_TOOL_PATH}) + +endif() + +# Configure / Install +# note: we need a PERL so can't use `vcpkg_configure_make` directly... +message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") +vcpkg_execute_required_process( + COMMAND ${PERL} Configure ${OPENSSL_SHARED} ${CONFIGURE_OPTIONS} + ${PLATFORM} + "--prefix=${CURRENT_PACKAGES_DIR}/debug" + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + LOGNAME configure-perl-${TARGET_TRIPLET}-dbg +) +message(STATUS "Configuring ${TARGET_TRIPLET}-rel") +vcpkg_execute_required_process( + COMMAND ${PERL} Configure ${OPENSSL_SHARED} ${CONFIGURE_OPTIONS} + ${PLATFORM} + "--prefix=${CURRENT_PACKAGES_DIR}" + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel + LOGNAME configure-perl-${TARGET_TRIPLET}-rel +) + +if(VCPKG_TARGET_IS_UWP OR VCPKG_TARGET_IS_WINDOWS) + message(STATUS "Building ${TARGET_TRIPLET}-dbg") + vcpkg_execute_required_process( + COMMAND ${JOM} /K /J ${VCPKG_CONCURRENCY} /F makefile install_dev + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + LOGNAME install-${TARGET_TRIPLET}-dbg + ) + message(STATUS "Building ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( + COMMAND ${JOM} /K /J ${VCPKG_CONCURRENCY} /F makefile install_dev + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel + LOGNAME install-${TARGET_TRIPLET}-rel + ) + vcpkg_copy_pdbs() + +else() + message(STATUS "Building ${TARGET_TRIPLET}-dbg") + vcpkg_execute_required_process( + COMMAND ${MAKE} -j ${VCPKG_CONCURRENCY} install_dev + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + LOGNAME install-${TARGET_TRIPLET}-dbg + ) + message(STATUS "Building ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( + COMMAND ${MAKE} -j ${VCPKG_CONCURRENCY} install_dev + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel + LOGNAME install-${TARGET_TRIPLET}-rel + ) + if(VCPKG_TARGET_IS_ANDROID AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + # install_dev copies symbolic link. overwrite them with the actual shared objects + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libcrypto.so + ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libssl.so + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib + ) + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libcrypto.so + ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libssl.so + DESTINATION ${CURRENT_PACKAGES_DIR}/lib + ) + endif() + vcpkg_fixup_pkgconfig() + +endif() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/libcrypto.a + ${CURRENT_PACKAGES_DIR}/debug/lib/libssl.a + ${CURRENT_PACKAGES_DIR}/lib/libcrypto.a + ${CURRENT_PACKAGES_DIR}/lib/libssl.a + ) +else() + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin + ${CURRENT_PACKAGES_DIR}/bin + ) + if(VCPKG_TARGET_IS_WINDOWS) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/ossl_static.pdb + ${CURRENT_PACKAGES_DIR}/lib/ossl_static.pdb + ) + endif() +endif() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(INSTALL ${SOURCE_PATH}/LICENSE.txt + DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright +) diff --git a/ports/openssl3/vcpkg.json b/ports/openssl3/vcpkg.json new file mode 100644 index 00000000000000..4b1a5e0f2e85fc --- /dev/null +++ b/ports/openssl3/vcpkg.json @@ -0,0 +1,7 @@ +{ + "name": "openssl3", + "version-semver": "3.0.0", + "description": "TLS/SSL and crypto library", + "homepage": "https://www.openssl.org/", + "license": "Apache-2.0" +} From a4d8969bd47eb472b4602befa58563059df450d8 Mon Sep 17 00:00:00 2001 From: luncliff Date: Wed, 29 Sep 2021 23:30:58 +0900 Subject: [PATCH 02/10] [openssl3] update version JSON --- versions/baseline.json | 4 ++++ versions/o-/openssl3.json | 9 +++++++++ 2 files changed, 13 insertions(+) create mode 100644 versions/o-/openssl3.json diff --git a/versions/baseline.json b/versions/baseline.json index 3500c7d69813b4..0cb54a933529e0 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4884,6 +4884,10 @@ "baseline": "1.1.1h", "port-version": 2 }, + "openssl3": { + "baseline": "3.0.0", + "port-version": 0 + }, "opensubdiv": { "baseline": "3.4.3", "port-version": 2 diff --git a/versions/o-/openssl3.json b/versions/o-/openssl3.json new file mode 100644 index 00000000000000..7aa67013005b77 --- /dev/null +++ b/versions/o-/openssl3.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "bd94d7a10f5e486511054c861252ed8e8dfdd0a6", + "version-semver": "3.0.0", + "port-version": 0 + } + ] +} From 639fc82dab3bf8b33199e16a522e2aa66a684e33 Mon Sep 17 00:00:00 2001 From: luncliff Date: Wed, 29 Sep 2021 23:44:37 +0900 Subject: [PATCH 03/10] [openssl3] update detect_platform.cmake --- ports/openssl3/detect_platform.cmake | 10 +++++----- versions/o-/openssl3.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ports/openssl3/detect_platform.cmake b/ports/openssl3/detect_platform.cmake index 34b7b7a5b5f12d..37ef95ad3d6ca5 100644 --- a/ports/openssl3/detect_platform.cmake +++ b/ports/openssl3/detect_platform.cmake @@ -56,15 +56,15 @@ elseif(VCPKG_TARGET_IS_MINGW) endif() elseif(VCPKG_TARGET_IS_UWP) - # https://github.com/microsoft/msquic/blob/main/submodules/CMakeLists.txt#L26 + # ${SOURCE_PATH}/Configuration/50-win-onecore.conf if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(PLATFORM "VC-WIN32-ONECORE") + set(PLATFORM "VC-WIN32-UWP") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(PLATFORM "VC-WIN64A-ONECORE") + set(PLATFORM "VC-WIN64A-UWP") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") - set(PLATFORM "VC-WIN32-ARM") + set(PLATFORM "VC-WIN32-ARM-UWP") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") - set(PLATFORM "VC-WIN64-ARM") + set(PLATFORM "VC-WIN64-ARM-UWP") endif() elseif(VCPKG_TARGET_IS_WINDOWS) diff --git a/versions/o-/openssl3.json b/versions/o-/openssl3.json index 7aa67013005b77..a31cedf8242de6 100644 --- a/versions/o-/openssl3.json +++ b/versions/o-/openssl3.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "bd94d7a10f5e486511054c861252ed8e8dfdd0a6", + "git-tree": "b21ae48bb529ccccf9e99e7d02a6e8eb0a218312", "version-semver": "3.0.0", "port-version": 0 } From a6fc0fb8f07ffea420cbeebdef5d10f008a90366 Mon Sep 17 00:00:00 2001 From: Park DongHa Date: Mon, 4 Oct 2021 15:20:30 +0900 Subject: [PATCH 04/10] [openssl3] quote path/strings --- ports/openssl3/detect_platform.cmake | 170 ++++++------- ports/openssl3/portfile.cmake | 366 ++++++++++++++------------- versions/o-/openssl3.json | 2 +- 3 files changed, 271 insertions(+), 267 deletions(-) diff --git a/ports/openssl3/detect_platform.cmake b/ports/openssl3/detect_platform.cmake index 37ef95ad3d6ca5..0dc90c84ad1276 100644 --- a/ports/openssl3/detect_platform.cmake +++ b/ports/openssl3/detect_platform.cmake @@ -1,86 +1,86 @@ -if(VCPKG_TARGET_IS_ANDROID) - # ${SOURCE_PATH}/Configuration/15-android.conf - if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") - set(PLATFORM "android-arm64") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") - set(PLATFORM "android-arm") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(PLATFORM "android-x86_64") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(PLATFORM "android-x86") - endif() - -elseif(VCPKG_TARGET_IS_LINUX) - if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") - set(PLATFORM "linux-aarch64") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") - set(PLATFORM "linux-armv4") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(PLATFORM "linux-x86_64") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(PLATFORM "linux-x86") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "ppc64le") - set(PLATFORM "linux-ppc64le") - endif() - -elseif(VCPKG_TARGET_IS_IOS) - # ${SOURCE_PATH}/Configuration/15-ios.conf - if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") - set(PLATFORM "ios64-xcrun") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") - set(PLATFORM "ios-xcrun") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR - VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(PLATFORM "iossimulator-xcrun") - endif() - -elseif(VCPKG_TARGET_IS_OSX) - if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") - set(PLATFORM "darwin64-arm64-cc") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(PLATFORM "darwin64-x86_64-cc") - endif() - -elseif(VCPKG_TARGET_IS_FREEBSD OR VCPKG_TARGET_IS_OPENBSD) - if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(PLATFORM "BSD-x86_64") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(PLATFORM "BSD-x86") - endif() - -elseif(VCPKG_TARGET_IS_MINGW) - if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(PLATFORM "mingw64") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(PLATFORM "mingw") - endif() - -elseif(VCPKG_TARGET_IS_UWP) - # ${SOURCE_PATH}/Configuration/50-win-onecore.conf - if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(PLATFORM "VC-WIN32-UWP") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(PLATFORM "VC-WIN64A-UWP") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") - set(PLATFORM "VC-WIN32-ARM-UWP") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") - set(PLATFORM "VC-WIN64-ARM-UWP") - endif() - -elseif(VCPKG_TARGET_IS_WINDOWS) - # ${SOURCE_PATH}/Configuration/50-win-onecore.conf - if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(PLATFORM "VC-WIN32") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(PLATFORM "VC-WIN64A") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") - set(PLATFORM "VC-WIN32-ARM") - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") - set(PLATFORM "VC-WIN64-ARM") - endif() - -endif() - -if(NOT DEFINED PLATFORM) - message(FATAL_ERROR "PLATFORM is unknown for the target platform/architecture") +if(VCPKG_TARGET_IS_ANDROID) + # ${SOURCE_PATH}/Configuration/15-android.conf + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(PLATFORM "android-arm64") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + set(PLATFORM "android-arm") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "android-x86_64") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(PLATFORM "android-x86") + endif() + +elseif(VCPKG_TARGET_IS_LINUX) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(PLATFORM "linux-aarch64") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + set(PLATFORM "linux-armv4") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "linux-x86_64") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(PLATFORM "linux-x86") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "ppc64le") + set(PLATFORM "linux-ppc64le") + endif() + +elseif(VCPKG_TARGET_IS_IOS) + # ${SOURCE_PATH}/Configuration/15-ios.conf + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(PLATFORM "ios64-xcrun") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + set(PLATFORM "ios-xcrun") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR + VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "iossimulator-xcrun") + endif() + +elseif(VCPKG_TARGET_IS_OSX) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(PLATFORM "darwin64-arm64-cc") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "darwin64-x86_64-cc") + endif() + +elseif(VCPKG_TARGET_IS_FREEBSD OR VCPKG_TARGET_IS_OPENBSD) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "BSD-x86_64") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(PLATFORM "BSD-x86") + endif() + +elseif(VCPKG_TARGET_IS_MINGW) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "mingw64") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(PLATFORM "mingw") + endif() + +elseif(VCPKG_TARGET_IS_UWP) + # ${SOURCE_PATH}/Configuration/50-win-onecore.conf + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(PLATFORM "VC-WIN32-UWP") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "VC-WIN64A-UWP") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + set(PLATFORM "VC-WIN32-ARM-UWP") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(PLATFORM "VC-WIN64-ARM-UWP") + endif() + +elseif(VCPKG_TARGET_IS_WINDOWS) + # ${SOURCE_PATH}/Configuration/50-win-onecore.conf + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(PLATFORM "VC-WIN32") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM "VC-WIN64A") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + set(PLATFORM "VC-WIN32-ARM") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(PLATFORM "VC-WIN64-ARM") + endif() + +endif() + +if(NOT DEFINED PLATFORM) + message(FATAL_ERROR "PLATFORM is unknown for the target platform/architecture") endif() \ No newline at end of file diff --git a/ports/openssl3/portfile.cmake b/ports/openssl3/portfile.cmake index 43b04a74c7fc9f..7e33c7356b817f 100644 --- a/ports/openssl3/portfile.cmake +++ b/ports/openssl3/portfile.cmake @@ -1,181 +1,185 @@ -if(EXISTS ${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h) - message(FATAL_ERROR "Can't build '${PORT}' if another SSL library is installed. Please remove existing one and try install '${PORT}' again if you need it.") -endif() - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO openssl/openssl - REF openssl-3.0.0 - SHA512 50b4fefa3e5a3359e7b06bfbc4ecc525ef9d76e13d087aa8e2d29880f08f74cc9d0c76b9bf1895c118def2bb0e4db0095e799a752b64b60721a423bd2cf989da -) - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - list(APPEND CONFIGURE_OPTIONS shared) -else() - list(APPEND CONFIGURE_OPTIONS no-shared) -endif() - -# see ${SOURCE_PATH}/INSTALL.md -list(APPEND CONFIGURE_OPTIONS - no-zlib - no-ui-console # Don't build with the User Interface (UI) console method - no-module # Don't build any dynamically loadable engines - no-makedepend # Don't generate dependencies - no-tests # Don't build test programs or run any tests -) -if(VCPKG_TARGET_IS_UWP) - list(APPEND CONFIGURE_OPTIONS no-async) -endif() -if(VCPKG_TARGET_IS_WINDOWS) - # jom will build in parallel mode, we need /FS for PDB access - list(APPEND CONFIGURE_OPTIONS -utf-8 -FS) - -elseif(VCPKG_TARGET_IS_IOS) - # see https://github.com/microsoft/vcpkg PR 12527 - # disable that makes linkage error (e.g. require stderr usage) - list(APPEND CONFIGURE_OPTIONS no-stdio no-ui no-asm) - -endif() - -# Option: platform/architecture -include(${CMAKE_CURRENT_LIST_DIR}/detect_platform.cmake) - -# Clean & copy source files for working directories -file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel -) -get_filename_component(SOURCE_DIR_NAME ${SOURCE_PATH} NAME) -file(COPY ${SOURCE_PATH} - DESTINATION ${CURRENT_BUILDTREES_DIR}) -file(RENAME ${CURRENT_BUILDTREES_DIR}/${SOURCE_DIR_NAME} - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) -file(COPY ${SOURCE_PATH} - DESTINATION ${CURRENT_BUILDTREES_DIR}) -file(RENAME ${CURRENT_BUILDTREES_DIR}/${SOURCE_DIR_NAME} - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - -# see ${SOURCE_PATH}/NOTES-PERL.md -vcpkg_find_acquire_program(PERL) -get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) -vcpkg_add_to_path(${PERL_EXE_PATH}) - -if(NOT VCPKG_HOST_IS_WINDOWS) - # see ${SOURCE_PATH}/NOTES-UNIX.md - find_program(MAKE make) - get_filename_component(MAKE_EXE_PATH ${MAKE} DIRECTORY) -endif() - -if(VCPKG_TARGET_IS_WINDOWS) - # see ${SOURCE_PATH}/NOTES-WINDOWS.md - vcpkg_find_acquire_program(NASM) - get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY) - vcpkg_add_to_path(PREPEND ${NASM_EXE_PATH}) - # note: jom is not for `vcpkg_add_to_path` - vcpkg_find_acquire_program(JOM) - -elseif(VCPKG_TARGET_IS_ANDROID) - # see ${SOURCE_PATH}/NOTES-ANDROID.md - if(NOT DEFINED ENV{ANDROID_NDK_ROOT} AND DEFINED ENV{ANDROID_NDK_HOME}) - message(STATUS "ENV{ANDROID_NDK_ROOT} will be set to $ENV{ANDROID_NDK_HOME}") - set(ENV{ANDROID_NDK_ROOT} $ENV{ANDROID_NDK_HOME}) - endif() - if(NOT DEFINED ENV{ANDROID_NDK_ROOT}) - message(FATAL_ERROR "ENV{ANDROID_NDK_ROOT} is required by ${SOURCE_PATH}/Configurations/15-android.conf") - endif() - if(VCPKG_HOST_IS_LINUX) - set(NDK_HOST_TAG "linux-x86_64") - elseif(VCPKG_HOST_IS_OSX) - set(NDK_HOST_TAG "darwin-x86_64") - elseif(VCPKG_HOST_IS_WINDOWS) - set(NDK_HOST_TAG "windows-x86_64") - else() - message(FATAL_ERROR "Unknown NDK host platform") - endif() - get_filename_component(NDK_TOOL_PATH $ENV{ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${NDK_HOST_TAG}/bin ABSOLUTE) - vcpkg_add_to_path(PREPEND ${NDK_TOOL_PATH}) - -endif() - -# Configure / Install -# note: we need a PERL so can't use `vcpkg_configure_make` directly... -message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") -vcpkg_execute_required_process( - COMMAND ${PERL} Configure ${OPENSSL_SHARED} ${CONFIGURE_OPTIONS} - ${PLATFORM} - "--prefix=${CURRENT_PACKAGES_DIR}/debug" - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg - LOGNAME configure-perl-${TARGET_TRIPLET}-dbg -) -message(STATUS "Configuring ${TARGET_TRIPLET}-rel") -vcpkg_execute_required_process( - COMMAND ${PERL} Configure ${OPENSSL_SHARED} ${CONFIGURE_OPTIONS} - ${PLATFORM} - "--prefix=${CURRENT_PACKAGES_DIR}" - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel - LOGNAME configure-perl-${TARGET_TRIPLET}-rel -) - -if(VCPKG_TARGET_IS_UWP OR VCPKG_TARGET_IS_WINDOWS) - message(STATUS "Building ${TARGET_TRIPLET}-dbg") - vcpkg_execute_required_process( - COMMAND ${JOM} /K /J ${VCPKG_CONCURRENCY} /F makefile install_dev - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg - LOGNAME install-${TARGET_TRIPLET}-dbg - ) - message(STATUS "Building ${TARGET_TRIPLET}-rel") - vcpkg_execute_required_process( - COMMAND ${JOM} /K /J ${VCPKG_CONCURRENCY} /F makefile install_dev - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel - LOGNAME install-${TARGET_TRIPLET}-rel - ) - vcpkg_copy_pdbs() - -else() - message(STATUS "Building ${TARGET_TRIPLET}-dbg") - vcpkg_execute_required_process( - COMMAND ${MAKE} -j ${VCPKG_CONCURRENCY} install_dev - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg - LOGNAME install-${TARGET_TRIPLET}-dbg - ) - message(STATUS "Building ${TARGET_TRIPLET}-rel") - vcpkg_execute_required_process( - COMMAND ${MAKE} -j ${VCPKG_CONCURRENCY} install_dev - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel - LOGNAME install-${TARGET_TRIPLET}-rel - ) - if(VCPKG_TARGET_IS_ANDROID AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - # install_dev copies symbolic link. overwrite them with the actual shared objects - file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libcrypto.so - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libssl.so - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib - ) - file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libcrypto.so - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libssl.so - DESTINATION ${CURRENT_PACKAGES_DIR}/lib - ) - endif() - vcpkg_fixup_pkgconfig() - -endif() - -if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/libcrypto.a - ${CURRENT_PACKAGES_DIR}/debug/lib/libssl.a - ${CURRENT_PACKAGES_DIR}/lib/libcrypto.a - ${CURRENT_PACKAGES_DIR}/lib/libssl.a - ) -else() - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin - ${CURRENT_PACKAGES_DIR}/bin - ) - if(VCPKG_TARGET_IS_WINDOWS) - file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/ossl_static.pdb - ${CURRENT_PACKAGES_DIR}/lib/ossl_static.pdb - ) - endif() -endif() -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - -file(INSTALL ${SOURCE_PATH}/LICENSE.txt - DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright -) +if(EXISTS ${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h) + message(FATAL_ERROR "Can't build '${PORT}' if another SSL library is installed. Please remove existing one and try install '${PORT}' again if you need it.") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO openssl/openssl + REF openssl-3.0.0 + SHA512 50b4fefa3e5a3359e7b06bfbc4ecc525ef9d76e13d087aa8e2d29880f08f74cc9d0c76b9bf1895c118def2bb0e4db0095e799a752b64b60721a423bd2cf989da +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + list(APPEND CONFIGURE_OPTIONS shared) +else() + list(APPEND CONFIGURE_OPTIONS no-shared) +endif() + +# see ${SOURCE_PATH}/INSTALL.md +list(APPEND CONFIGURE_OPTIONS + no-zlib + no-ui-console # Don't build with the User Interface (UI) console method + no-module # Don't build any dynamically loadable engines + no-makedepend # Don't generate dependencies + no-tests # Don't build test programs or run any tests +) +if(VCPKG_TARGET_IS_UWP) + list(APPEND CONFIGURE_OPTIONS no-async) +endif() +if(VCPKG_TARGET_IS_WINDOWS) + # jom will build in parallel mode, we need /FS for PDB access + list(APPEND CONFIGURE_OPTIONS -utf-8 -FS) + +elseif(VCPKG_TARGET_IS_IOS) + # see https://github.com/microsoft/vcpkg PR 12527 + # disable that makes linkage error (e.g. require stderr usage) + list(APPEND CONFIGURE_OPTIONS no-stdio no-ui no-asm) + +endif() + +# Option: platform/architecture. Defined a variable 'PLATFORM' +include(${CMAKE_CURRENT_LIST_DIR}/detect_platform.cmake) + +# Clean & copy source files for working directories +file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" +) +get_filename_component(SOURCE_DIR_NAME "${SOURCE_PATH}" NAME) +file(COPY "${SOURCE_PATH}" + DESTINATION "${CURRENT_BUILDTREES_DIR}") +file(RENAME "${CURRENT_BUILDTREES_DIR}/${SOURCE_DIR_NAME}" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") +file(COPY "${SOURCE_PATH}" + DESTINATION "${CURRENT_BUILDTREES_DIR}") +file(RENAME "${CURRENT_BUILDTREES_DIR}/${SOURCE_DIR_NAME}" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") + +# see ${SOURCE_PATH}/NOTES-PERL.md +vcpkg_find_acquire_program(PERL) +get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) +vcpkg_add_to_path("${PERL_EXE_PATH}") + +if(NOT VCPKG_HOST_IS_WINDOWS) + # see ${SOURCE_PATH}/NOTES-UNIX.md + find_program(MAKE make) + get_filename_component(MAKE_EXE_PATH ${MAKE} DIRECTORY) +endif() + +if(VCPKG_TARGET_IS_WINDOWS) + # see ${SOURCE_PATH}/NOTES-WINDOWS.md + vcpkg_find_acquire_program(NASM) + get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY) + vcpkg_add_to_path(PREPEND "${NASM_EXE_PATH}") + # note: jom is not for `vcpkg_add_to_path` + vcpkg_find_acquire_program(JOM) + +elseif(VCPKG_TARGET_IS_ANDROID) + # see ${SOURCE_PATH}/NOTES-ANDROID.md + if(NOT DEFINED ENV{ANDROID_NDK_ROOT} AND DEFINED ENV{ANDROID_NDK_HOME}) + set(ENV{ANDROID_NDK_ROOT} $ENV{ANDROID_NDK_HOME}) + endif() + if(NOT DEFINED ENV{ANDROID_NDK_ROOT}) + message(FATAL_ERROR "ENV{ANDROID_NDK_ROOT} is required by ${SOURCE_PATH}/Configurations/15-android.conf") + endif() + if(VCPKG_HOST_IS_LINUX) + set(NDK_HOST_TAG "linux-x86_64") + elseif(VCPKG_HOST_IS_OSX) + set(NDK_HOST_TAG "darwin-x86_64") + elseif(VCPKG_HOST_IS_WINDOWS) + set(NDK_HOST_TAG "windows-x86_64") + else() + message(FATAL_ERROR "Unknown NDK host platform") + endif() + get_filename_component(NDK_TOOL_PATH "$ENV{ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${NDK_HOST_TAG}/bin" ABSOLUTE) + vcpkg_add_to_path(PREPEND "${NDK_TOOL_PATH}") + +endif() + +# Configure / Install +# note: we need a PERL so can't use `vcpkg_configure_make` directly... +message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") +vcpkg_execute_required_process( + COMMAND ${PERL} Configure ${OPENSSL_SHARED} ${CONFIGURE_OPTIONS} + ${PLATFORM} "--prefix=${CURRENT_PACKAGES_DIR}/debug" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" + LOGNAME configure-perl-${TARGET_TRIPLET}-dbg +) +message(STATUS "Configuring ${TARGET_TRIPLET}-rel") +vcpkg_execute_required_process( + COMMAND ${PERL} Configure ${OPENSSL_SHARED} ${CONFIGURE_OPTIONS} + ${PLATFORM} "--prefix=${CURRENT_PACKAGES_DIR}" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" + LOGNAME configure-perl-${TARGET_TRIPLET}-rel +) + +if(VCPKG_TARGET_IS_UWP OR VCPKG_TARGET_IS_WINDOWS) + message(STATUS "Building ${TARGET_TRIPLET}-dbg") + vcpkg_execute_required_process( + COMMAND ${JOM} /K /J ${VCPKG_CONCURRENCY} /F makefile install_dev + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" + LOGNAME install-${TARGET_TRIPLET}-dbg + ) + message(STATUS "Building ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( + COMMAND ${JOM} /K /J ${VCPKG_CONCURRENCY} /F makefile install_dev + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" + LOGNAME install-${TARGET_TRIPLET}-rel + ) + vcpkg_copy_pdbs() + +else() + message(STATUS "Building ${TARGET_TRIPLET}-dbg") + vcpkg_execute_required_process( + COMMAND ${MAKE} -j ${VCPKG_CONCURRENCY} install_dev + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" + LOGNAME install-${TARGET_TRIPLET}-dbg + ) + message(STATUS "Building ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( + COMMAND ${MAKE} -j ${VCPKG_CONCURRENCY} install_dev + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" + LOGNAME install-${TARGET_TRIPLET}-rel + ) + if(VCPKG_TARGET_IS_ANDROID AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + # install_dev copies symbolic link. overwrite them with the actual shared objects + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libcrypto.so" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libssl.so" + DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" + ) + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libcrypto.so" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libssl.so" + DESTINATION "${CURRENT_PACKAGES_DIR}/lib" + ) + endif() + # rename lib64 to lib for lib/pkgconfig + if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib64") + file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib64" "${CURRENT_PACKAGES_DIR}/debug/lib") + endif() + if(EXISTS "${CURRENT_PACKAGES_DIR}/lib64") + file(RENAME "${CURRENT_PACKAGES_DIR}/lib64" "${CURRENT_PACKAGES_DIR}/lib") + endif() + vcpkg_fixup_pkgconfig() + +endif() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/libcrypto.a" + "${CURRENT_PACKAGES_DIR}/debug/lib/libssl.a" + "${CURRENT_PACKAGES_DIR}/lib/libcrypto.a" + "${CURRENT_PACKAGES_DIR}/lib/libssl.a" + ) +else() + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" + "${CURRENT_PACKAGES_DIR}/bin" + ) + if(VCPKG_TARGET_IS_WINDOWS) + file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/ossl_static.pdb" + "${CURRENT_PACKAGES_DIR}/lib/ossl_static.pdb" + ) + endif() +endif() +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +file(INSTALL "${SOURCE_PATH}/LICENSE.txt" + DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "copyright" +) diff --git a/versions/o-/openssl3.json b/versions/o-/openssl3.json index a31cedf8242de6..eea28bd31afca5 100644 --- a/versions/o-/openssl3.json +++ b/versions/o-/openssl3.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "b21ae48bb529ccccf9e99e7d02a6e8eb0a218312", + "git-tree": "dadd026c2dc115f30337971604c41a6da18ed0e9", "version-semver": "3.0.0", "port-version": 0 } From e3924572abedeff528c94874d79d32e71b4d4481 Mon Sep 17 00:00:00 2001 From: Park DongHa Date: Mon, 4 Oct 2021 15:35:43 +0900 Subject: [PATCH 05/10] [openssl3] add port usage --- ports/openssl3/portfile.cmake | 3 +++ ports/openssl3/usage | 11 +++++++++++ versions/o-/openssl3.json | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 ports/openssl3/usage diff --git a/ports/openssl3/portfile.cmake b/ports/openssl3/portfile.cmake index 7e33c7356b817f..1a0e796c16fad8 100644 --- a/ports/openssl3/portfile.cmake +++ b/ports/openssl3/portfile.cmake @@ -183,3 +183,6 @@ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "copyright" ) +file(INSTALL "${CURRENT_PORT_DIR}/usage" + DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" +) diff --git a/ports/openssl3/usage b/ports/openssl3/usage new file mode 100644 index 00000000000000..9f566ac1fd2738 --- /dev/null +++ b/ports/openssl3/usage @@ -0,0 +1,11 @@ +The package openssl3 can be imported via CMake FindOpenSSL module: + + find_package(OpenSSL REQUIRED) + target_link_libraries(main PRIVATE OpenSSL::SSL OpenSSL::Crypto) + +Also, FindPkgConfig module can be used if pkg-config(.pc) files are installed: + + find_package(PkgConfig REQUIRED) + pkg_check_modules(openssl REQUIRED IMPORTED_TARGET GLOBAL openssl>=3.0) + + target_link_libraries(main PRIVATE PkgConfig::openssl) diff --git a/versions/o-/openssl3.json b/versions/o-/openssl3.json index eea28bd31afca5..84c0628a8f6039 100644 --- a/versions/o-/openssl3.json +++ b/versions/o-/openssl3.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "dadd026c2dc115f30337971604c41a6da18ed0e9", + "git-tree": "5fa82909a8a63145ff41d9676bd44cd5a79d0367", "version-semver": "3.0.0", "port-version": 0 } From ea3ebf5fc10b792dd0e253f3320d634bcfae60be Mon Sep 17 00:00:00 2001 From: luncliff Date: Thu, 7 Oct 2021 10:52:31 +0900 Subject: [PATCH 06/10] [openssl] move port 'openssl' to 'openssl1' * this is will prevent ugly git histroy --- ports/{openssl => openssl1}/portfile.cmake | 0 ports/{openssl => openssl1}/unix/CMakeLists.txt | 0 ports/{openssl => openssl1}/unix/portfile.cmake | 0 ports/{openssl => openssl1}/unix/remove-deps.cmake | 0 ports/{openssl => openssl1}/usage | 0 ports/{openssl => openssl1}/uwp/EnableUWPSupport.patch | 0 ports/{openssl => openssl1}/uwp/make-openssl.bat | 0 ports/{openssl => openssl1}/uwp/portfile.cmake | 0 ports/{openssl => openssl1}/vcpkg-cmake-wrapper.cmake.in | 0 ports/{openssl => openssl1}/vcpkg.json | 2 +- ports/{openssl => openssl1}/windows/portfile.cmake | 0 11 files changed, 1 insertion(+), 1 deletion(-) rename ports/{openssl => openssl1}/portfile.cmake (100%) rename ports/{openssl => openssl1}/unix/CMakeLists.txt (100%) rename ports/{openssl => openssl1}/unix/portfile.cmake (100%) rename ports/{openssl => openssl1}/unix/remove-deps.cmake (100%) rename ports/{openssl => openssl1}/usage (100%) rename ports/{openssl => openssl1}/uwp/EnableUWPSupport.patch (100%) rename ports/{openssl => openssl1}/uwp/make-openssl.bat (100%) rename ports/{openssl => openssl1}/uwp/portfile.cmake (100%) rename ports/{openssl => openssl1}/vcpkg-cmake-wrapper.cmake.in (100%) rename ports/{openssl => openssl1}/vcpkg.json (94%) rename ports/{openssl => openssl1}/windows/portfile.cmake (100%) diff --git a/ports/openssl/portfile.cmake b/ports/openssl1/portfile.cmake similarity index 100% rename from ports/openssl/portfile.cmake rename to ports/openssl1/portfile.cmake diff --git a/ports/openssl/unix/CMakeLists.txt b/ports/openssl1/unix/CMakeLists.txt similarity index 100% rename from ports/openssl/unix/CMakeLists.txt rename to ports/openssl1/unix/CMakeLists.txt diff --git a/ports/openssl/unix/portfile.cmake b/ports/openssl1/unix/portfile.cmake similarity index 100% rename from ports/openssl/unix/portfile.cmake rename to ports/openssl1/unix/portfile.cmake diff --git a/ports/openssl/unix/remove-deps.cmake b/ports/openssl1/unix/remove-deps.cmake similarity index 100% rename from ports/openssl/unix/remove-deps.cmake rename to ports/openssl1/unix/remove-deps.cmake diff --git a/ports/openssl/usage b/ports/openssl1/usage similarity index 100% rename from ports/openssl/usage rename to ports/openssl1/usage diff --git a/ports/openssl/uwp/EnableUWPSupport.patch b/ports/openssl1/uwp/EnableUWPSupport.patch similarity index 100% rename from ports/openssl/uwp/EnableUWPSupport.patch rename to ports/openssl1/uwp/EnableUWPSupport.patch diff --git a/ports/openssl/uwp/make-openssl.bat b/ports/openssl1/uwp/make-openssl.bat similarity index 100% rename from ports/openssl/uwp/make-openssl.bat rename to ports/openssl1/uwp/make-openssl.bat diff --git a/ports/openssl/uwp/portfile.cmake b/ports/openssl1/uwp/portfile.cmake similarity index 100% rename from ports/openssl/uwp/portfile.cmake rename to ports/openssl1/uwp/portfile.cmake diff --git a/ports/openssl/vcpkg-cmake-wrapper.cmake.in b/ports/openssl1/vcpkg-cmake-wrapper.cmake.in similarity index 100% rename from ports/openssl/vcpkg-cmake-wrapper.cmake.in rename to ports/openssl1/vcpkg-cmake-wrapper.cmake.in diff --git a/ports/openssl/vcpkg.json b/ports/openssl1/vcpkg.json similarity index 94% rename from ports/openssl/vcpkg.json rename to ports/openssl1/vcpkg.json index 3a4a62dda2d58e..eee1184da2281b 100644 --- a/ports/openssl/vcpkg.json +++ b/ports/openssl1/vcpkg.json @@ -1,5 +1,5 @@ { - "name": "openssl", + "name": "openssl1", "version-string": "1.1.1l", "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.", diff --git a/ports/openssl/windows/portfile.cmake b/ports/openssl1/windows/portfile.cmake similarity index 100% rename from ports/openssl/windows/portfile.cmake rename to ports/openssl1/windows/portfile.cmake From defa0744327847bbfa09286cc919e3f42efb7038 Mon Sep 17 00:00:00 2001 From: luncliff Date: Thu, 7 Oct 2021 10:53:06 +0900 Subject: [PATCH 07/10] [openssl] rename files for 'openssl3' to 'openssl' --- ports/{openssl3 => openssl}/detect_platform.cmake | 0 ports/{openssl3 => openssl}/portfile.cmake | 0 ports/{openssl3 => openssl}/usage | 0 ports/{openssl3 => openssl}/vcpkg.json | 2 +- 4 files changed, 1 insertion(+), 1 deletion(-) rename ports/{openssl3 => openssl}/detect_platform.cmake (100%) rename ports/{openssl3 => openssl}/portfile.cmake (100%) rename ports/{openssl3 => openssl}/usage (100%) rename ports/{openssl3 => openssl}/vcpkg.json (87%) diff --git a/ports/openssl3/detect_platform.cmake b/ports/openssl/detect_platform.cmake similarity index 100% rename from ports/openssl3/detect_platform.cmake rename to ports/openssl/detect_platform.cmake diff --git a/ports/openssl3/portfile.cmake b/ports/openssl/portfile.cmake similarity index 100% rename from ports/openssl3/portfile.cmake rename to ports/openssl/portfile.cmake diff --git a/ports/openssl3/usage b/ports/openssl/usage similarity index 100% rename from ports/openssl3/usage rename to ports/openssl/usage diff --git a/ports/openssl3/vcpkg.json b/ports/openssl/vcpkg.json similarity index 87% rename from ports/openssl3/vcpkg.json rename to ports/openssl/vcpkg.json index 4b1a5e0f2e85fc..bcda7f8af6a4af 100644 --- a/ports/openssl3/vcpkg.json +++ b/ports/openssl/vcpkg.json @@ -1,5 +1,5 @@ { - "name": "openssl3", + "name": "openssl", "version-semver": "3.0.0", "description": "TLS/SSL and crypto library", "homepage": "https://www.openssl.org/", From 66610f1b726aa624d455fd22a65fe5b8aa1207c7 Mon Sep 17 00:00:00 2001 From: luncliff Date: Thu, 7 Oct 2021 10:53:46 +0900 Subject: [PATCH 08/10] [openssl] fix version files * move baseline to openssl 3.0 --- versions/baseline.json | 10 +++++----- versions/o-/openssl.json | 5 +++++ versions/o-/openssl1.json | 9 +++++++++ versions/o-/openssl3.json | 9 --------- 4 files changed, 19 insertions(+), 14 deletions(-) create mode 100644 versions/o-/openssl1.json delete mode 100644 versions/o-/openssl3.json diff --git a/versions/baseline.json b/versions/baseline.json index 0cb54a933529e0..b66292a0eace12 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4869,8 +4869,8 @@ "port-version": 1 }, "openssl": { - "baseline": "1.1.1l", - "port-version": 1 + "baseline": "3.0.0", + "port-version": 0 }, "openssl-unix": { "baseline": "1.1.1h", @@ -4884,9 +4884,9 @@ "baseline": "1.1.1h", "port-version": 2 }, - "openssl3": { - "baseline": "3.0.0", - "port-version": 0 + "openssl1": { + "baseline": "1.1.1l", + "port-version": 1 }, "opensubdiv": { "baseline": "3.4.3", diff --git a/versions/o-/openssl.json b/versions/o-/openssl.json index caf3958130a9a1..b50f102c99010d 100644 --- a/versions/o-/openssl.json +++ b/versions/o-/openssl.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "174a6076eb1f79c46301e5934a41496c8666988f", + "version-semver": "3.0.0", + "port-version": 0 + }, { "git-tree": "6d19a647704efae9398b178a0012140c1f1ee8b8", "version-string": "1.1.1l", diff --git a/versions/o-/openssl1.json b/versions/o-/openssl1.json new file mode 100644 index 00000000000000..1795ed8651ab62 --- /dev/null +++ b/versions/o-/openssl1.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "5d7bd57e1802a9070fa18be478bb7ab19d89ed6c", + "version-string": "1.1.1l", + "port-version": 1 + } + ] +} diff --git a/versions/o-/openssl3.json b/versions/o-/openssl3.json deleted file mode 100644 index 84c0628a8f6039..00000000000000 --- a/versions/o-/openssl3.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "versions": [ - { - "git-tree": "5fa82909a8a63145ff41d9676bd44cd5a79d0367", - "version-semver": "3.0.0", - "port-version": 0 - } - ] -} From 6bff32dda99076c1623d66757e1b62ee2c4c4fb3 Mon Sep 17 00:00:00 2001 From: luncliff Date: Sat, 9 Oct 2021 00:31:35 +0900 Subject: [PATCH 09/10] [openssl] remove 1.1.1 port files --- ports/openssl1/portfile.cmake | 25 -- ports/openssl1/unix/CMakeLists.txt | 281 -------------------- ports/openssl1/unix/portfile.cmake | 45 ---- ports/openssl1/unix/remove-deps.cmake | 7 - ports/openssl1/usage | 4 - ports/openssl1/uwp/EnableUWPSupport.patch | 170 ------------ ports/openssl1/uwp/make-openssl.bat | 16 -- ports/openssl1/uwp/portfile.cmake | 165 ------------ ports/openssl1/vcpkg-cmake-wrapper.cmake.in | 73 ----- ports/openssl1/vcpkg.json | 7 - ports/openssl1/windows/portfile.cmake | 174 ------------ versions/baseline.json | 4 - versions/o-/openssl1.json | 9 - 13 files changed, 980 deletions(-) delete mode 100644 ports/openssl1/portfile.cmake delete mode 100644 ports/openssl1/unix/CMakeLists.txt delete mode 100644 ports/openssl1/unix/portfile.cmake delete mode 100644 ports/openssl1/unix/remove-deps.cmake delete mode 100644 ports/openssl1/usage delete mode 100644 ports/openssl1/uwp/EnableUWPSupport.patch delete mode 100644 ports/openssl1/uwp/make-openssl.bat delete mode 100644 ports/openssl1/uwp/portfile.cmake delete mode 100644 ports/openssl1/vcpkg-cmake-wrapper.cmake.in delete mode 100644 ports/openssl1/vcpkg.json delete mode 100644 ports/openssl1/windows/portfile.cmake delete mode 100644 versions/o-/openssl1.json diff --git a/ports/openssl1/portfile.cmake b/ports/openssl1/portfile.cmake deleted file mode 100644 index be6029c71054fb..00000000000000 --- a/ports/openssl1/portfile.cmake +++ /dev/null @@ -1,25 +0,0 @@ -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.1l) -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 d9611f393e37577cca05004531388d3e0ebbf714894cab9f95f4903909cd4f45c214faab664c0cbc3ad3cca309d500b9e6d0ecbf9a0a0588d1677dc6b047f9e0 -) - -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 AND NOT VCPKG_TARGET_IS_MINGW) - include("${CMAKE_CURRENT_LIST_DIR}/windows/portfile.cmake") -else() - include("${CMAKE_CURRENT_LIST_DIR}/unix/portfile.cmake") -endif() - -configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) -file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") diff --git a/ports/openssl1/unix/CMakeLists.txt b/ports/openssl1/unix/CMakeLists.txt deleted file mode 100644 index d434cf1f8a6655..00000000000000 --- a/ports/openssl1/unix/CMakeLists.txt +++ /dev/null @@ -1,281 +0,0 @@ -cmake_minimum_required(VERSION 3.9) -project(openssl C) - -if(NOT SOURCE_PATH) - message(FATAL_ERROR "Requires SOURCE_PATH") -endif() - -if(CMAKE_SYSTEM_NAME STREQUAL "Android" OR CMAKE_SYSTEM_NAME STREQUAL "Linux") - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") - set(PLATFORM linux-x86_64) - else() - set(PLATFORM linux-generic32) - endif() -elseif(CMAKE_SYSTEM_NAME STREQUAL "iOS") - if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64") - set(PLATFORM ios64-xcrun) - elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "arm") - set(PLATFORM ios-xcrun) - elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x86" OR - VCPKG_TARGET_ARCHITECTURE MATCHES "x64") - set(PLATFORM iossimulator-xcrun) - else() - message(FATAL_ERROR "Unknown iOS target architecture: ${VCPKG_TARGET_ARCHITECTURE}") - endif() - # disable that makes linkage error (e.g. require stderr usage) - list(APPEND DISABLES no-stdio no-ui no-asm) -elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64") - set(PLATFORM darwin64-arm64-cc) - else() - set(PLATFORM darwin64-x86_64-cc) - endif() -elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") - set(PLATFORM BSD-generic64) -elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") - set(PLATFORM BSD-generic64) -elseif(MINGW) - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") - set(PLATFORM mingw64) - else() - set(PLATFORM mingw) - endif() -elseif(EMSCRIPTEN) - set(MAKE $ENV{EMSDK}/upstream/emscripten/emmake) - set(ENV{MAKE} $ENV{EMSDK}/upstream/emscripten/emmake) -else() - message(FATAL_ERROR "Unknown platform") -endif() - -get_filename_component(COMPILER_ROOT "${CMAKE_C_COMPILER}" DIRECTORY) - -message("CMAKE_C_COMPILER=${CMAKE_C_COMPILER}") -message("COMPILER_ROOT=${COMPILER_ROOT}") -message("CMAKE_SYSROOT=${CMAKE_SYSROOT}") -message("CMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}") -message("CMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}") -message("CMAKE_C_FLAGS=${CMAKE_C_FLAGS}") -message("CMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}") -message("CMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}") -message("CMAKE_INCLUDE_SYSTEM_FLAG_C=${CMAKE_INCLUDE_SYSTEM_FLAG_C}") -message("CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG=${CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG}") - -set(CFLAGS "${CMAKE_C_FLAGS}") -if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set(CFLAGS "-Wno-error=unused-command-line-argument ${CMAKE_C_FLAGS}") -endif() -if(CMAKE_C_COMPILER_TARGET AND CMAKE_C_COMPILE_OPTIONS_TARGET) - set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_TARGET}${CMAKE_C_COMPILER_TARGET}") -endif() -if(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN AND CMAKE_C_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN) - set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}") -endif() -if(CMAKE_SYSROOT AND CMAKE_C_COMPILE_OPTIONS_SYSROOT) - set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") -elseif(CMAKE_OSX_SYSROOT AND CMAKE_C_COMPILE_OPTIONS_SYSROOT) - set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_SYSROOT}${CMAKE_OSX_SYSROOT}") -endif() -if (CMAKE_OSX_DEPLOYMENT_TARGET AND CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG) - set(CFLAGS "${CFLAGS} ${CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG}${CMAKE_OSX_DEPLOYMENT_TARGET}") -elseif((CMAKE_SYSTEM_NAME STREQUAL "Darwin") AND (VCPKG_TARGET_ARCHITECTURE MATCHES "arm64")) - set(CFLAGS "${CFLAGS} -mmacosx-version-min=11.0") -endif() - -string(REGEX REPLACE "^ " "" CFLAGS "${CFLAGS}") - -if(CMAKE_HOST_WIN32) - file(TO_NATIVE_PATH ENV_PATH "${COMPILER_ROOT};$ENV{PATH}") -else() - file(TO_NATIVE_PATH ENV_PATH "${COMPILER_ROOT}:$ENV{PATH}") -endif() -set(ENV{ANDROID_DEV} "${CMAKE_SYSROOT}/usr") - -if(NOT IOS) - set(ENV{CC} "${CMAKE_C_COMPILER}") -endif() - -message("ENV{ANDROID_DEV}=$ENV{ANDROID_DEV}") - -get_filename_component(SOURCE_PATH_NAME "${SOURCE_PATH}" NAME) -set(BUILDDIR "${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_PATH_NAME}") - -if(NOT EXISTS "${BUILDDIR}") - file(COPY ${SOURCE_PATH} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -endif() - -get_filename_component(MSYS_BIN_DIR "${MAKE}" DIRECTORY) - -if(BUILD_SHARED_LIBS) - set(SHARED shared) - file(STRINGS "${BUILDDIR}/include/openssl/opensslv.h" SHLIB_VERSION - REGEX "^#[\t ]*define[\t ]+SHLIB_VERSION_NUMBER[\t ]+\".*\".*") - string(REGEX REPLACE "^.*SHLIB_VERSION_NUMBER[\t ]+\"([^\"]*)\".*$" "\\1" - SHLIB_VERSION "${SHLIB_VERSION}") - if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS") - set(LIB_EXT dylib) - set(LIB_EXTS ${SHLIB_VERSION}.${LIB_EXT}) - elseif(MINGW) - string(REPLACE "." "_" SHLIB_VERSION "${SHLIB_VERSION}") - set(BIN_EXT dll) - set(LIB_EXT dll.a) - else() - set(LIB_EXT so) - set(LIB_EXTS ${LIB_EXT}.${SHLIB_VERSION}) - endif() - list(APPEND BIN_EXTS ${BIN_EXT}) - list(APPEND LIB_EXTS ${LIB_EXT}) -else() - set(SHARED no-shared) - set(LIB_EXTS a) -endif() -foreach(lib ssl crypto) - foreach(ext ${LIB_EXTS}) - list(APPEND INSTALL_LIBS "${BUILDDIR}/lib${lib}.${ext}") - list(APPEND INSTALL_PKG_CONFIGS "${BUILDDIR}/lib${lib}.pc") - endforeach() - foreach(ext ${BIN_EXTS}) - # This might be wrong for targets which don't follow this naming scheme, but I'm not aware of any - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") - list(APPEND INSTALL_BINS "${BUILDDIR}/lib${lib}-${SHLIB_VERSION}-x64.${ext}") - else() - list(APPEND INSTALL_BINS "${BUILDDIR}/lib${lib}-${SHLIB_VERSION}.${ext}") - endif() - endforeach() -endforeach() - -if(CMAKE_HOST_WIN32) - set(ENV_COMMAND set) - set(PATH_VAR ";%PATH%") -else() - set(ENV_COMMAND export) - set(PATH_VAR ":$ENV{PATH}") -endif() - -add_custom_command( - OUTPUT "${BUILDDIR}/Makefile" - COMMAND ${ENV_COMMAND} "PATH=${MSYS_BIN_DIR}${PATH_VAR}" - VERBATIM - WORKING_DIRECTORY "${BUILDDIR}" -) - -if(NOT IOS) - add_custom_command( - OUTPUT "${BUILDDIR}/Makefile" - COMMAND ${ENV_COMMAND} CC=${CMAKE_C_COMPILER} - COMMAND ${ENV_COMMAND} AR=${CMAKE_AR} - COMMAND ${ENV_COMMAND} LD=${CMAKE_LINKER} - COMMAND ${ENV_COMMAND} RANLIB=${CMAKE_RANLIB} - COMMAND ${ENV_COMMAND} MAKE=${MAKE} - COMMAND ${ENV_COMMAND} MAKEDEPPROG=${CMAKE_C_COMPILER} - VERBATIM - APPEND - ) - if(EMSCRIPTEN) - list(APPEND DISABLES - threads - no-engine - no-dso - no-asm - no-shared - no-sse2 - no-srtp - ) - else() - list(APPEND DISABLES - enable-static-engine - no-zlib - no-ssl2 - no-idea - no-cast - no-seed - no-md2 - no-tests) - endif() -endif() - -if(EMSCRIPTEN) - add_custom_command( - OUTPUT "${BUILDDIR}/Makefile" - COMMAND "$ENV{EMSDK}/upstream/emscripten/emconfigure" ./config - ${SHARED} - ${DISABLES} - "--prefix=${CMAKE_INSTALL_PREFIX}" - "--openssldir=/etc/ssl" - "--cross-compile-prefix=\"/\"" - VERBATIM - APPEND - ) - - add_custom_target(build_libs ALL - COMMAND ${ENV_COMMAND} "PATH=${MSYS_BIN_DIR}${PATH_VAR}" - COMMAND "${CMAKE_COMMAND}" -E touch "${BUILDDIR}/krb5.h" - COMMAND "${MAKE}" make build_libs - VERBATIM - WORKING_DIRECTORY "${BUILDDIR}" - DEPENDS "${BUILDDIR}/Makefile" - BYPRODUCTS ${INSTALL_LIBS} - ) -else() - add_custom_command( - OUTPUT "${BUILDDIR}/Makefile" - COMMAND "${PERL}" Configure - ${SHARED} - ${DISABLES} - ${PLATFORM} - "--prefix=${CMAKE_INSTALL_PREFIX}" - "--openssldir=/etc/ssl" - ${CFLAGS} - VERBATIM - APPEND - ) - - add_custom_target(build_libs ALL - COMMAND ${ENV_COMMAND} "PATH=${MSYS_BIN_DIR}${PATH_VAR}" - COMMAND "${CMAKE_COMMAND}" -E touch "${BUILDDIR}/krb5.h" - COMMAND "${MAKE}" -j ${VCPKG_CONCURRENCY} build_libs - VERBATIM - WORKING_DIRECTORY "${BUILDDIR}" - DEPENDS "${BUILDDIR}/Makefile" - BYPRODUCTS ${INSTALL_LIBS} - ) -endif() - -add_custom_command( - OUTPUT "${BUILDDIR}/Makefile" - COMMAND "${CMAKE_COMMAND}" "-DDIR=${BUILDDIR}" -P "${CMAKE_CURRENT_LIST_DIR}/remove-deps.cmake" - VERBATIM - APPEND -) - -if((CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS") AND BUILD_SHARED_LIBS) - if(DEFINED CMAKE_INSTALL_NAME_DIR) - set(ID_PREFIX "${CMAKE_INSTALL_NAME_DIR}") - else() - set(ID_PREFIX "@rpath") - endif() - - add_custom_command( - TARGET build_libs - COMMAND /usr/bin/install_name_tool -id "${ID_PREFIX}/libssl.${SHLIB_VERSION}.dylib" - "${BUILDDIR}/libssl.${SHLIB_VERSION}.dylib" - COMMAND /usr/bin/install_name_tool -id "${ID_PREFIX}/libcrypto.${SHLIB_VERSION}.dylib" - "${BUILDDIR}/libcrypto.1.1.dylib" - COMMAND /usr/bin/install_name_tool -change "${CMAKE_INSTALL_PREFIX}/lib/libcrypto.${SHLIB_VERSION}.dylib" - "${ID_PREFIX}/libcrypto.${SHLIB_VERSION}.dylib" - "${BUILDDIR}/libssl.${SHLIB_VERSION}.dylib" - VERBATIM - ) -endif() - -install( - FILES ${INSTALL_LIBS} - DESTINATION lib -) -install( - FILES ${INSTALL_BINS} - DESTINATION bin -) -install( - FILES ${INSTALL_PKG_CONFIGS} - DESTINATION lib/pkgconfig -) diff --git a/ports/openssl1/unix/portfile.cmake b/ports/openssl1/unix/portfile.cmake deleted file mode 100644 index f051fd63975f16..00000000000000 --- a/ports/openssl1/unix/portfile.cmake +++ /dev/null @@ -1,45 +0,0 @@ -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} - -DVCPKG_CONCURRENCY=${VCPKG_CONCURRENCY} - OPTIONS_RELEASE - -DINSTALL_HEADERS=ON -) - -vcpkg_install_cmake() -vcpkg_fixup_pkgconfig() - -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) diff --git a/ports/openssl1/unix/remove-deps.cmake b/ports/openssl1/unix/remove-deps.cmake deleted file mode 100644 index a57c70fe91e944..00000000000000 --- a/ports/openssl1/unix/remove-deps.cmake +++ /dev/null @@ -1,7 +0,0 @@ -file(GLOB_RECURSE MAKEFILES ${DIR}/*/Makefile) -foreach(MAKEFILE ${MAKEFILES}) - message("removing deps from ${MAKEFILE}") - file(READ "${MAKEFILE}" _contents) - string(REGEX REPLACE "\n# DO NOT DELETE THIS LINE.*" "" _contents "${_contents}") - file(WRITE "${MAKEFILE}" "${_contents}") -endforeach() diff --git a/ports/openssl1/usage b/ports/openssl1/usage deleted file mode 100644 index f535cb6a401ccd..00000000000000 --- a/ports/openssl1/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/openssl1/uwp/EnableUWPSupport.patch b/ports/openssl1/uwp/EnableUWPSupport.patch deleted file mode 100644 index fe7837445985cf..00000000000000 --- a/ports/openssl1/uwp/EnableUWPSupport.patch +++ /dev/null @@ -1,170 +0,0 @@ -diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf -index 3c4299d264..99fcb1f713 100644 ---- a/Configurations/10-main.conf -+++ b/Configurations/10-main.conf -@@ -1287,7 +1287,7 @@ my %targets = ( - }, - "VC-WIN64I" => { - inherit_from => [ "VC-WIN64-common", asm("ia64_asm"), -- sub { $disabled{shared} ? () : "ia64_uplink" } ], -+ sub { $disabled{uplink} ? () : "ia64_uplink" } ], - AS => "ias", - ASFLAGS => "-d debug", - asoutflag => "-o ", -@@ -1299,7 +1299,7 @@ my %targets = ( - }, - "VC-WIN64A" => { - inherit_from => [ "VC-WIN64-common", asm("x86_64_asm"), -- sub { $disabled{shared} ? () : "x86_64_uplink" } ], -+ sub { $disabled{uplink} ? () : "x86_64_uplink" } ], - AS => sub { vc_win64a_info()->{AS} }, - ASFLAGS => sub { vc_win64a_info()->{ASFLAGS} }, - asoutflag => sub { vc_win64a_info()->{asoutflag} }, -@@ -1312,7 +1312,7 @@ my %targets = ( - }, - "VC-WIN32" => { - inherit_from => [ "VC-noCE-common", asm("x86_asm"), -- sub { $disabled{shared} ? () : "uplink_common" } ], -+ sub { $disabled{uplink} ? () : "uplink_common" } ], - AS => sub { vc_win32_info()->{AS} }, - ASFLAGS => sub { vc_win32_info()->{ASFLAGS} }, - asoutflag => sub { vc_win32_info()->{asoutflag} }, -@@ -1374,7 +1374,7 @@ my %targets = ( - #### MinGW - "mingw" => { - inherit_from => [ "BASE_unix", asm("x86_asm"), -- sub { $disabled{shared} ? () : "x86_uplink" } ], -+ sub { $disabled{uplink} ? () : "x86_uplink" } ], - CC => "gcc", - CFLAGS => picker(default => "-Wall", - debug => "-g -O0", -diff --git a/Configurations/50-win-onecore.conf b/Configurations/50-win-onecore.conf -index d478f42b0f..e0fb70daca 100644 ---- a/Configurations/50-win-onecore.conf -+++ b/Configurations/50-win-onecore.conf -@@ -1,3 +1,4 @@ -+## -*- mode: perl; -*- - # Windows OneCore targets. - # - # OneCore is new API stability "contract" that transcends Desktop, IoT and -@@ -10,6 +11,25 @@ - # TODO: extend error handling to use ETW based eventing - # (Or rework whole error messaging) - -+my $UWP_info = {}; -+sub UWP_info { -+ unless (%$UWP_info) { -+ my $SDKver = `pwsh.exe -Command \"& {\$(Get-Item \\\"hklm:\\SOFTWARE\\WOW6432Node\\Microsoft\\Microsoft SDKs\\Windows\\\").GetValue(\\\"CurrentVersion\\\")}\"`; -+ $SDKver =~ s|\R$||; -+ my @SDKver_split = split(/\./, $SDKver); -+ # SDK version older than 10.0.17763 don't support our ASM builds -+ if ($SDKver_split[0] < 10 -+ || ($SDKver_split[0] == 10 -+ && $SDKver_split[1] == 0 -+ && $SDKver_split[2] < 17763)) { -+ $UWP_info->{disable} = [ 'asm' ]; -+ } else { -+ $UWP_info->{disable} = [ ]; -+ } -+ } -+ return $UWP_info; -+} -+ - my %targets = ( - "VC-WIN32-ONECORE" => { - inherit_from => [ "VC-WIN32" ], -@@ -61,4 +81,57 @@ my %targets = ( - ex_libs => "onecore.lib", - multilib => "-arm64", - }, -+ -+ # Universal Windows Platform (UWP) App Support -+ -+ # TODO -+ # -+ # The 'disable' attribute should have 'uplink'. -+ # however, these are checked in some 'inherit_from', which is processed -+ # very early, before the 'disable' attributes are seen. -+ # This is a problem that needs to be resolved in Configure first. -+ # -+ # But if you want to build library with Windows 10 Version 1809 SDK or -+ # earlier, the 'disable' attribute should also have 'asm'. -+ -+ "VC-WIN32-UWP" => { -+ inherit_from => [ "VC-WIN32-ONECORE" ], -+ lflags => add("/APPCONTAINER"), -+ defines => add("WINAPI_FAMILY=WINAPI_FAMILY_APP", -+ "_WIN32_WINNT=0x0A00"), -+ dso_scheme => "", -+ disable => sub { [ 'ui-console', 'stdio', 'async', 'uplink', -+ @{ UWP_info()->{disable} } ] }, -+ ex_libs => "WindowsApp.lib", -+ }, -+ "VC-WIN64A-UWP" => { -+ inherit_from => [ "VC-WIN64A-ONECORE" ], -+ lflags => add("/APPCONTAINER"), -+ defines => add("WINAPI_FAMILY=WINAPI_FAMILY_APP", -+ "_WIN32_WINNT=0x0A00"), -+ dso_scheme => "", -+ disable => sub { [ 'ui-console', 'stdio', 'async', 'uplink', -+ @{ UWP_info()->{disable} } ] }, -+ ex_libs => "WindowsApp.lib", -+ }, -+ "VC-WIN32-ARM-UWP" => { -+ inherit_from => [ "VC-WIN32-ARM" ], -+ lflags => add("/APPCONTAINER"), -+ defines => add("WINAPI_FAMILY=WINAPI_FAMILY_APP", -+ "_WIN32_WINNT=0x0A00"), -+ dso_scheme => "", -+ disable => sub { [ 'ui-console', 'stdio', 'async', 'uplink', -+ @{ UWP_info()->{disable} } ] }, -+ ex_libs => "WindowsApp.lib", -+ }, -+ "VC-WIN64-ARM-UWP" => { -+ inherit_from => [ "VC-WIN64-ARM" ], -+ lflags => add("/APPCONTAINER"), -+ defines => add("WINAPI_FAMILY=WINAPI_FAMILY_APP", -+ "_WIN32_WINNT=0x0A00"), -+ dso_scheme => "", -+ disable => sub { [ 'ui-console', 'stdio', 'async', 'uplink', -+ @{ UWP_info()->{disable} } ] }, -+ ex_libs => "WindowsApp.lib", -+ }, - ); -diff --git a/Configure b/Configure -index 5a699836f3..de45f1e299 100755 ---- a/Configure -+++ b/Configure -@@ -407,6 +408,7 @@ my @disablables = ( - "ubsan", - "ui-console", - "unit-test", -+ "uplink", - "whirlpool", - "weak-ssl-ciphers", - "zlib", -@@ -491,8 +493,8 @@ my @disable_cascades = ( - - # Without position independent code, there can be no shared libraries or DSOs - "pic" => [ "shared" ], -- "shared" => [ "dynamic-engine" ], -+ "shared" => [ "dynamic-engine", "uplink" ], - "dso" => [ "dynamic-engine" ], - "engine" => [ "afalgeng", "devcryptoeng" ], - - # no-autoalginit is only useful when building non-shared -diff --git a/INSTALL b/INSTALL -index 2119cbae9e..ee54e8c215 100644 ---- a/INSTALL -+++ b/INSTALL -@@ -560,6 +560,10 @@ - likely to complement configuration command line with - suitable compiler-specific option. - -+ no-uplink -+ Don't build support for UPLINK interface. -+ -+ - no- - Don't build support for negotiating the specified SSL/TLS - protocol (one of ssl, ssl3, tls, tls1, tls1_1, tls1_2, diff --git a/ports/openssl1/uwp/make-openssl.bat b/ports/openssl1/uwp/make-openssl.bat deleted file mode 100644 index 6f6166a24e980e..00000000000000 --- a/ports/openssl1/uwp/make-openssl.bat +++ /dev/null @@ -1,16 +0,0 @@ -set build=%1 - -perl Configure no-asm no-hw no-dso VC-WINUNIVERSAL -FS -FIWindows.h - -for /D %%f in ("%WindowsSdkDir%References\%WindowsSDKLibVersion%Windows.Foundation.FoundationContract\*") do set LibPath=%LibPath%;%%f\ -for /D %%f in ("%WindowsSdkDir%References\%WindowsSDKLibVersion%Windows.Foundation.UniversalApiContract\*") do set LibPath=%LibPath%;%%f\ -for /D %%f in ("%WindowsSdkDir%References\Windows.Foundation.FoundationContract\*") do set LibPath=%LibPath%;%%f\ -for /D %%f in ("%WindowsSdkDir%References\Windows.Foundation.UniversalApiContract\*") do set LibPath=%LibPath%;%%f\ - -call ms\do_winuniversal.bat - -mkdir inc32\openssl - -jom -j %NUMBER_OF_PROCESSORS% -k -f ms\ntdll.mak -REM due to a race condition in the build, we need to have a second single-threaded pass. -nmake -f ms\ntdll.mak diff --git a/ports/openssl1/uwp/portfile.cmake b/ports/openssl1/uwp/portfile.cmake deleted file mode 100644 index d474abe0373813..00000000000000 --- a/ports/openssl1/uwp/portfile.cmake +++ /dev/null @@ -1,165 +0,0 @@ -vcpkg_fail_port_install(MESSAGE "${PORT} is only for Windows Universal Platform" ON_TARGET "Linux" "OSX") - -vcpkg_find_acquire_program(JOM) -get_filename_component(JOM_EXE_PATH ${JOM} DIRECTORY) -vcpkg_add_to_path("${PERL_EXE_PATH}") - -set(OPENSSL_SHARED no-shared) -if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - set(OPENSSL_SHARED shared) -endif() - -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 - ${OPENSSL_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" -) - -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() - -file(READ "${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h" _contents) -string(REPLACE "" "" _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 " "#ifndef _WINSOCKAPI_\n#define _WINSOCKAPI_\n#endif\n# include " _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/openssl1/vcpkg-cmake-wrapper.cmake.in b/ports/openssl1/vcpkg-cmake-wrapper.cmake.in deleted file mode 100644 index f1c3176cf175ae..00000000000000 --- a/ports/openssl1/vcpkg-cmake-wrapper.cmake.in +++ /dev/null @@ -1,73 +0,0 @@ -set(OPENSSL_ROOT_DIR_BAK ${OPENSSL_ROOT_DIR}) -get_filename_component(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -get_filename_component(OPENSSL_ROOT_DIR "${OPENSSL_ROOT_DIR}" PATH) -get_filename_component(OPENSSL_ROOT_DIR "${OPENSSL_ROOT_DIR}" PATH) - -if(CMAKE_HOST_WIN32) - file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" Z_VCPKG_PROGRAMFILES) - set(Z_VCPKG_PROGRAMFILESX86_NAME "PROGRAMFILES(x86)") - file(TO_CMAKE_PATH "$ENV{${Z_VCPKG_PROGRAMFILESX86_NAME}}" Z_VCPKG_PROGRAMFILESX86) - set(CMAKE_SYSTEM_IGNORE_PATH - "${Z_VCPKG_PROGRAMFILES}/OpenSSL" - "${Z_VCPKG_PROGRAMFILES}/OpenSSL-Win32" - "${Z_VCPKG_PROGRAMFILES}/OpenSSL-Win64" - "${Z_VCPKG_PROGRAMFILES}/OpenSSL-Win32/lib/VC" - "${Z_VCPKG_PROGRAMFILES}/OpenSSL-Win64/lib/VC" - "${Z_VCPKG_PROGRAMFILES}/OpenSSL-Win32/lib/VC/static" - "${Z_VCPKG_PROGRAMFILES}/OpenSSL-Win64/lib/VC/static" - "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL" - "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL-Win32" - "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL-Win64" - "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL-Win32/lib/VC" - "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL-Win64/lib/VC" - "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL-Win32/lib/VC/static" - "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL-Win64/lib/VC/static" - "C:/OpenSSL/" - "C:/OpenSSL-Win32/" - "C:/OpenSSL-Win64/" - "C:/OpenSSL-Win32/lib/VC" - "C:/OpenSSL-Win64/lib/VC" - "C:/OpenSSL-Win32/lib/VC/static" - "C:/OpenSSL-Win64/lib/VC/static" - ) -endif() - -_find_package(${ARGS}) - -set(OPENSSL_ROOT_DIR ${OPENSSL_ROOT_DIR_BAK}) - -if(OPENSSL_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") - if(WIN32) - 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() - else() - cmake_policy(PUSH) - cmake_policy(SET CMP0057 NEW) - find_library(OPENSSL_DL_LIBRARY NAMES dl) - if(OPENSSL_DL_LIBRARY) - list(APPEND OPENSSL_LIBRARIES "dl") - if(TARGET OpenSSL::Crypto) - set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "dl") - endif() - endif() - - if("REQUIRED" IN_LIST ARGS) - find_package(Threads REQUIRED) - else() - find_package(Threads) - endif() - list(APPEND OPENSSL_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) - if(TARGET OpenSSL::Crypto) - set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Threads::Threads") - endif() - if(TARGET OpenSSL::SSL) - set_property(TARGET OpenSSL::SSL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Threads::Threads") - endif() - cmake_policy(POP) - endif() -endif() diff --git a/ports/openssl1/vcpkg.json b/ports/openssl1/vcpkg.json deleted file mode 100644 index eee1184da2281b..00000000000000 --- a/ports/openssl1/vcpkg.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "openssl1", - "version-string": "1.1.1l", - "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.", - "homepage": "https://www.openssl.org" -} diff --git a/ports/openssl1/windows/portfile.cmake b/ports/openssl1/windows/portfile.cmake deleted file mode 100644 index 4987e810760761..00000000000000 --- a/ports/openssl1/windows/portfile.cmake +++ /dev/null @@ -1,174 +0,0 @@ -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() - -if(OPENSSL_NO_AUTOLOAD_CONFIG) - set(CONFIGURE_OPTIONS ${CONFIGURE_OPTIONS} no-autoload-config) -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}-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}-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" - "" - "" -) - -vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" - "# include " - "#ifndef _WINSOCKAPI_\n#define _WINSOCKAPI_\n#endif\n# include " -) - -vcpkg_copy_pdbs() - -file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/versions/baseline.json b/versions/baseline.json index b66292a0eace12..03d407d3cc8be9 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4884,10 +4884,6 @@ "baseline": "1.1.1h", "port-version": 2 }, - "openssl1": { - "baseline": "1.1.1l", - "port-version": 1 - }, "opensubdiv": { "baseline": "3.4.3", "port-version": 2 diff --git a/versions/o-/openssl1.json b/versions/o-/openssl1.json deleted file mode 100644 index 1795ed8651ab62..00000000000000 --- a/versions/o-/openssl1.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "versions": [ - { - "git-tree": "5d7bd57e1802a9070fa18be478bb7ab19d89ed6c", - "version-string": "1.1.1l", - "port-version": 1 - } - ] -} From 2ab7467c8bacaf640cfc8e4fa7f3fdf16de1945d Mon Sep 17 00:00:00 2001 From: luncliff Date: Fri, 8 Oct 2021 23:49:25 +0900 Subject: [PATCH 10/10] [openssl] quote path expressions --- ports/openssl/portfile.cmake | 7 +++---- versions/o-/openssl.json | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ports/openssl/portfile.cmake b/ports/openssl/portfile.cmake index 1a0e796c16fad8..542a2020a0e2f5 100644 --- a/ports/openssl/portfile.cmake +++ b/ports/openssl/portfile.cmake @@ -56,19 +56,18 @@ file(RENAME "${CURRENT_BUILDTREES_DIR}/${SOURCE_DIR_NAME}" # see ${SOURCE_PATH}/NOTES-PERL.md vcpkg_find_acquire_program(PERL) -get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) +get_filename_component(PERL_EXE_PATH "${PERL}" PATH) vcpkg_add_to_path("${PERL_EXE_PATH}") if(NOT VCPKG_HOST_IS_WINDOWS) # see ${SOURCE_PATH}/NOTES-UNIX.md - find_program(MAKE make) - get_filename_component(MAKE_EXE_PATH ${MAKE} DIRECTORY) + find_program(MAKE make REQUIRED) endif() if(VCPKG_TARGET_IS_WINDOWS) # see ${SOURCE_PATH}/NOTES-WINDOWS.md vcpkg_find_acquire_program(NASM) - get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY) + get_filename_component(NASM_EXE_PATH "${NASM}" PATH) vcpkg_add_to_path(PREPEND "${NASM_EXE_PATH}") # note: jom is not for `vcpkg_add_to_path` vcpkg_find_acquire_program(JOM) diff --git a/versions/o-/openssl.json b/versions/o-/openssl.json index b50f102c99010d..012364eaffcaae 100644 --- a/versions/o-/openssl.json +++ b/versions/o-/openssl.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "174a6076eb1f79c46301e5934a41496c8666988f", + "git-tree": "8b66df800689b49d6209ecdedf27e31f0b1fb6a1", "version-semver": "3.0.0", "port-version": 0 },