aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <adam-bloom@users.noreply.github.com>2021-01-26 15:58:42 -0700
committerGitHub <noreply@github.com>2021-01-26 14:58:42 -0800
commite72302d44237c751bcf3db8a4d5922d34d45f68f (patch)
tree441d3f68f09ccf3b647c74f54e466c8b1fc66f14
parent9caf3d87d57601d2e0857f309ec9e88754a68080 (diff)
downloadvcpkg-e72302d44237c751bcf3db8a4d5922d34d45f68f.tar.gz
vcpkg-e72302d44237c751bcf3db8a4d5922d34d45f68f.zip
[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>
-rw-r--r--ports/icu/CONTROL2
-rw-r--r--ports/icu/portfile.cmake132
-rw-r--r--versions/baseline.json2
-rw-r--r--versions/i-/icu.json5
4 files changed, 139 insertions, 2 deletions
diff --git a/ports/icu/CONTROL b/ports/icu/CONTROL
index 344d34c51..96c578b09 100644
--- a/ports/icu/CONTROL
+++ b/ports/icu/CONTROL
@@ -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)
diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake
index 988620486..60fb60228 100644
--- a/ports/icu/portfile.cmake
+++ b/ports/icu/portfile.cmake
@@ -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}"
diff --git a/versions/baseline.json b/versions/baseline.json
index 9bcb80927..31bebe2f7 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -2394,7 +2394,7 @@
},
"icu": {
"baseline": "67.1",
- "port-version": 7
+ "port-version": 8
},
"ideviceinstaller": {
"baseline": "1.1.2.23-1",
diff --git a/versions/i-/icu.json b/versions/i-/icu.json
index 38be60059..d91bfed13 100644
--- a/versions/i-/icu.json
+++ b/versions/i-/icu.json
@@ -1,6 +1,11 @@
{
"versions": [
{
+ "git-tree": "db2977707d68a8c04e0960b0965722f8e5bfda20",
+ "version-string": "67.1",
+ "port-version": 8
+ },
+ {
"git-tree": "e224ca4ff2e2bcb1c4b72a1813ab886c1dfa2bfc",
"version-string": "67.1",
"port-version": 7