From 6fb1cce490919609eb7ba9aa09d6ce5ab343fcd5 Mon Sep 17 00:00:00 2001 From: LRFLEW Date: Wed, 25 Nov 2020 14:34:46 -0600 Subject: [PATCH 1/2] [openssl] Handle INSTALL_NAME_DIR for macOS shared builds --- ports/openssl/CONTROL | 2 +- ports/openssl/unix/CMakeLists.txt | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/ports/openssl/CONTROL b/ports/openssl/CONTROL index 9efc2f76c696a3..7d970cc7589b83 100644 --- a/ports/openssl/CONTROL +++ b/ports/openssl/CONTROL @@ -1,5 +1,5 @@ Source: openssl Version: 1.1.1h -Port-Version: 2 +Port-Version: 3 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. diff --git a/ports/openssl/unix/CMakeLists.txt b/ports/openssl/unix/CMakeLists.txt index 8b277d3970dcef..6184d6494a6433 100644 --- a/ports/openssl/unix/CMakeLists.txt +++ b/ports/openssl/unix/CMakeLists.txt @@ -175,6 +175,26 @@ add_custom_target(build_libs ALL BYPRODUCTS ${INSTALL_LIBS} ) +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 From 620bbd9a83d5191d538b1d84df53f61b246e657d Mon Sep 17 00:00:00 2001 From: LRFLEW Date: Wed, 25 Nov 2020 22:19:49 -0600 Subject: [PATCH 2/2] [openssl] Handle OSX_DEPLOYMENT_TARGET for macOS shared builds --- ports/openssl/unix/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ports/openssl/unix/CMakeLists.txt b/ports/openssl/unix/CMakeLists.txt index 6184d6494a6433..977017f8d55322 100644 --- a/ports/openssl/unix/CMakeLists.txt +++ b/ports/openssl/unix/CMakeLists.txt @@ -46,10 +46,12 @@ 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") @@ -66,6 +68,9 @@ if(CMAKE_SYSROOT AND CMAKE_C_COMPILE_OPTIONS_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}") +endif() string(REGEX REPLACE "^ " "" CFLAGS "${CFLAGS}")