aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLRFLEW <LRFLEW@aol.com>2020-12-01 16:30:35 -0600
committerGitHub <noreply@github.com>2020-12-01 14:30:35 -0800
commit0a457099416a843f442b6c2275b2ec57239b50d9 (patch)
tree803465b890a8dbd788da992d29c7420a07376619
parent8c3be9ef96144d0fac02eec5c42e2801ba65147a (diff)
downloadvcpkg-0a457099416a843f442b6c2275b2ec57239b50d9.tar.gz
vcpkg-0a457099416a843f442b6c2275b2ec57239b50d9.zip
[openssl] Handle INSTALL_NAME_DIR and OSX_DEPLOYMENT_TARGET for macOS shared builds (#14785)
* [openssl] Handle INSTALL_NAME_DIR for macOS shared builds * [openssl] Handle OSX_DEPLOYMENT_TARGET for macOS shared builds
-rw-r--r--ports/openssl/CONTROL2
-rw-r--r--ports/openssl/unix/CMakeLists.txt25
2 files changed, 26 insertions, 1 deletions
diff --git a/ports/openssl/CONTROL b/ports/openssl/CONTROL
index 9efc2f76c..7d970cc75 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 8b277d397..977017f8d 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}")
@@ -175,6 +180,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