[icu] Add support for macos rpath prefix macro (#15706)

* [icu] Add support for macos rpath prefix macro

* update port_versions for icu

* address review comments

* update baseline

Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
This commit is contained in:
Adam 2021-01-26 15:58:42 -07:00 committed by GitHub
parent 9caf3d87d5
commit e72302d442
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 139 additions and 2 deletions

View File

@ -1,6 +1,6 @@
Source: icu
Version: 67.1
Port-Version: 7
Port-Version: 8
Homepage: http://icu-project.org/apiref/icu4c/
Description: Mature and widely used Unicode and localization library.
Supports: !(arm|uwp)

View File

@ -169,6 +169,138 @@ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}"
LOGNAME "make-build-${RELEASE_TRIPLET}")
# remove this block if https://unicode-org.atlassian.net/browse/ICU-21458
# is resolved and use the configure script instead
if(VCPKG_TARGET_IS_OSX AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
if(DEFINED CMAKE_INSTALL_NAME_DIR)
set(ID_PREFIX "${CMAKE_INSTALL_NAME_DIR}")
else()
set(ID_PREFIX "@rpath")
endif()
# install_name_tool may be missing if cross-compiling
find_program(
INSTALL_NAME_TOOL
install_name_tool
HINTS /usr/bin /Library/Developer/CommandLineTools/usr/bin/
DOC "Absolute path of install_name_tool"
REQUIRED
)
message(STATUS "setting rpath prefix for macOS dynamic libraries")
# add ID_PREFIX to libicudata
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -id "${ID_PREFIX}/libicudata.${ICU_VERSION_MAJOR}.dylib"
"libicudata.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
# add ID_PREFIX to libicui18n
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -id "${ID_PREFIX}/libicui18n.${ICU_VERSION_MAJOR}.dylib"
"libicui18n.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
# add ID_PREFIX to libicui18n dependencies
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -change "libicuuc.${ICU_VERSION_MAJOR}.dylib"
"${ID_PREFIX}/libicuuc.${ICU_VERSION_MAJOR}.dylib"
"libicui18n.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -change "libicudata.${ICU_VERSION_MAJOR}.dylib"
"${ID_PREFIX}/libicudata.${ICU_VERSION_MAJOR}.dylib"
"libicui18n.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
# add ID_PREFIX to libicuio
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -id "${ID_PREFIX}/libicuio.${ICU_VERSION_MAJOR}.dylib"
"libicuio.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
# add ID_PREFIX to libicuio dependencies
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -change "libicuuc.${ICU_VERSION_MAJOR}.dylib"
"${ID_PREFIX}/libicuuc.${ICU_VERSION_MAJOR}.dylib"
"libicuio.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -change "libicudata.${ICU_VERSION_MAJOR}.dylib"
"${ID_PREFIX}/libicudata.${ICU_VERSION_MAJOR}.dylib"
"libicuio.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -change "libicui18n.${ICU_VERSION_MAJOR}.dylib"
"${ID_PREFIX}/libicui18n.${ICU_VERSION_MAJOR}.dylib"
"libicuio.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
# add ID_PREFIX to libicutu
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -id "${ID_PREFIX}/libicutu.${ICU_VERSION_MAJOR}.dylib"
"libicutu.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
# add ID_PREFIX to libicutu dependencies
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -change "libicui18n.${ICU_VERSION_MAJOR}.dylib"
"${ID_PREFIX}/libicui18n.${ICU_VERSION_MAJOR}.dylib"
"libicutu.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -change "libicuuc.${ICU_VERSION_MAJOR}.dylib"
"${ID_PREFIX}/libicuuc.${ICU_VERSION_MAJOR}.dylib"
"libicutu.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -change "libicudata.${ICU_VERSION_MAJOR}.dylib"
"${ID_PREFIX}/libicudata.${ICU_VERSION_MAJOR}.dylib"
"libicutu.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
# add ID_PREFIX to libicuuc
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -id "${ID_PREFIX}/libicuuc.${ICU_VERSION_MAJOR}.dylib"
"libicuuc.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
# add ID_PREFIX to libicuuc dependencies
vcpkg_execute_build_process(
COMMAND ${INSTALL_NAME_TOOL} -change "libicudata.${ICU_VERSION_MAJOR}.dylib"
"${ID_PREFIX}/libicudata.${ICU_VERSION_MAJOR}.dylib"
"libicuuc.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib"
LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}"
)
endif()
vcpkg_execute_build_process(
COMMAND ${BASH} --noprofile --norc -c "make install"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}"

View File

@ -2394,7 +2394,7 @@
},
"icu": {
"baseline": "67.1",
"port-version": 7
"port-version": 8
},
"ideviceinstaller": {
"baseline": "1.1.2.23-1",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "db2977707d68a8c04e0960b0965722f8e5bfda20",
"version-string": "67.1",
"port-version": 8
},
{
"git-tree": "e224ca4ff2e2bcb1c4b72a1813ab886c1dfa2bfc",
"version-string": "67.1",