diff options
| author | LRFLEW <LRFLEW@aol.com> | 2020-12-01 16:30:35 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-01 14:30:35 -0800 |
| commit | 0a457099416a843f442b6c2275b2ec57239b50d9 (patch) | |
| tree | 803465b890a8dbd788da992d29c7420a07376619 | |
| parent | 8c3be9ef96144d0fac02eec5c42e2801ba65147a (diff) | |
| download | vcpkg-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/CONTROL | 2 | ||||
| -rw-r--r-- | ports/openssl/unix/CMakeLists.txt | 25 |
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
|
