Skip to content

Commit

Permalink
[icu] Update, enable uwp, fix osx-dynamic (#35530)
Browse files Browse the repository at this point in the history
* [cppcms] No uwp

* [libzim] No uwp

* [cppcms] Fix dependencies and linkage

* [libzim] Update to 9.0.0

* [cppcms] No python for build

* Fixup

* CI: uwp

* [vcpkg-ci-boost] Enable boost-regex[icu]

* [icu] Enable uwp

* [icu] Update to 74.1

* [icu] Cleanup

* v

* [icu] Set install names during linking

* Revert "CI: uwp"

This reverts commit 127afe8.

* CI

* [icu] Use --enable-rpath on osx
  • Loading branch information
dg0yt committed Dec 15, 2023
1 parent eb33d2f commit a1e13e8
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 107 deletions.
14 changes: 14 additions & 0 deletions ports/icu/darwin-rpath.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/source/config/mh-darwin b/source/config/mh-darwin
index 7b15709..e2cdbdb 100644
--- a/source/config/mh-darwin
+++ b/source/config/mh-darwin
@@ -31,7 +31,8 @@ SHLIB.cc= $(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS) $(LD_SOOPTIONS)

## Compiler switches to embed a library name and version information
ifeq ($(ENABLE_RPATH),YES)
-LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO_TARGET))
+ID_PREFIX = @rpath
+LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(ID_PREFIX)/$(notdir $(MIDDLE_SO_TARGET))
else
LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET)) $(PKGDATA_TRAILING_SPACE)
endif
123 changes: 24 additions & 99 deletions ports/icu/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ vcpkg_download_distfile(
ARCHIVE
URLS "https://github.com/unicode-org/icu/releases/download/release-${VERSION3}/icu4c-${VERSION2}-src.tgz"
FILENAME "icu4c-${VERSION2}-src.tgz"
SHA512 e788e372716eecebc39b56bbc88f3a458e21c3ef20631c2a3d7ef05794a678fe8dad482a03a40fdb9717109a613978c7146682e98ee16fade5668d641d5c48f8
SHA512 32c28270aa5d94c58d2b1ef46d4ab73149b5eaa2e0621d4a4c11597b71d146812f5e66db95f044e8aaa11b94e99edd4a48ab1aa8efbe3d72a73870cd56b564c2
)

vcpkg_extract_source_archive(SOURCE_PATH
Expand All @@ -20,36 +20,33 @@ vcpkg_extract_source_archive(SOURCE_PATH
disable-static-prefix.patch # https://gitlab.kitware.com/cmake/cmake/-/issues/16617; also mingw.
fix-win-build.patch
vcpkg-cross-data.patch
darwin-rpath.patch
)

vcpkg_find_acquire_program(PYTHON3)
set(ENV{PYTHON} "${PYTHON3}")

vcpkg_list(SET CONFIGURE_OPTIONS)
vcpkg_list(SET CONFIGURE_OPTIONS_RELEASE)
vcpkg_list(SET CONFIGURE_OPTIONS_DEBUG)
vcpkg_list(SET BUILD_OPTIONS)

if(VCPKG_TARGET_IS_EMSCRIPTEN)
vcpkg_list(APPEND CONFIGURE_OPTIONS --disable-extras)
vcpkg_list(APPEND BUILD_OPTIONS "PKGDATA_OPTS=--without-assembly -O ../data/icupkg.inc")
elseif(VCPKG_TARGET_IS_UWP)
vcpkg_list(APPEND CONFIGURE_OPTIONS --disable-extras ac_cv_func_tzset=no ac_cv_func__tzset=no)
string(APPEND VCPKG_C_FLAGS " -DU_PLATFORM_HAS_WINUWP_API=1")
string(APPEND VCPKG_CXX_FLAGS " -DU_PLATFORM_HAS_WINUWP_API=1")
elseif(VCPKG_TARGET_IS_OSX AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
vcpkg_list(APPEND CONFIGURE_OPTIONS --enable-rpath)
if(DEFINED CMAKE_INSTALL_NAME_DIR)
vcpkg_list(APPEND BUILD_OPTIONS "ID_PREFIX=${CMAKE_INSTALL_NAME_DIR}")
endif()
endif()

if(VCPKG_TARGET_IS_WINDOWS)
list(APPEND CONFIGURE_OPTIONS --enable-icu-build-win)
endif()

list(APPEND CONFIGURE_OPTIONS --disable-samples --disable-tests --disable-layoutex)

list(APPEND CONFIGURE_OPTIONS_RELEASE --disable-debug --enable-release)
list(APPEND CONFIGURE_OPTIONS_DEBUG --enable-debug --disable-release)

set(CONFIG_TRIPLETS)
list(APPEND CONFIG_TRIPLETS ${TARGET_TRIPLET}-rel)
if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
list(APPEND CONFIG_TRIPLETS ${TARGET_TRIPLET}-dbg)
endif()

if("tools" IN_LIST FEATURES)
list(APPEND CONFIGURE_OPTIONS --enable-tools)
else()
Expand All @@ -67,94 +64,22 @@ endif()

vcpkg_configure_make(
SOURCE_PATH "${SOURCE_PATH}"
AUTOCONFIG
PROJECT_SUBPATH source
ADDITIONAL_MSYS_PACKAGES autoconf-archive
OPTIONS ${CONFIGURE_OPTIONS}
OPTIONS_RELEASE ${CONFIGURE_OPTIONS_RELEASE}
OPTIONS_DEBUG ${CONFIGURE_OPTIONS_DEBUG}
AUTOCONFIG
DETERMINE_BUILD_TRIPLET
ADDITIONAL_MSYS_PACKAGES autoconf-archive
OPTIONS
${CONFIGURE_OPTIONS}
--disable-samples
--disable-tests
--disable-layoutex
OPTIONS_RELEASE
--disable-debug
--enable-release
OPTIONS_DEBUG
--enable-debug
--disable-release
)

if(VCPKG_TARGET_IS_OSX AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")

vcpkg_build_make()
# remove this block if https://unicode-org.atlassian.net/browse/ICU-21458
# is resolved and use the configure script instead
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")

if("tools" IN_LIST FEATURES)
set(LIBICUTU_RPATH "libicutu")
endif()

#31680: Fix @rpath in both debug and release build
foreach(CONFIG_TRIPLE IN LISTS CONFIG_TRIPLETS)
# add ID_PREFIX to libicudata libicui18n libicuio libicutu libicuuc
foreach(LIB_NAME IN ITEMS libicudata libicui18n libicuio ${LIBICUTU_RPATH} libicuuc)
vcpkg_execute_build_process(
COMMAND "${INSTALL_NAME_TOOL}" -id "${ID_PREFIX}/${LIB_NAME}.${ICU_VERSION_MAJOR}.dylib"
"${LIB_NAME}.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${CONFIG_TRIPLE}/lib"
LOGNAME "make-build-fix-rpath-${CONFIG_TRIPLE}"
)
endforeach()

# add ID_PREFIX to libicui18n libicuio libicutu dependencies
foreach(LIB_NAME IN ITEMS libicui18n libicuio)
vcpkg_execute_build_process(
COMMAND "${INSTALL_NAME_TOOL}" -change "libicuuc.${ICU_VERSION_MAJOR}.dylib"
"${ID_PREFIX}/libicuuc.${ICU_VERSION_MAJOR}.dylib"
"${LIB_NAME}.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${CONFIG_TRIPLE}/lib"
LOGNAME "make-build-fix-rpath-${CONFIG_TRIPLE}"
)
vcpkg_execute_build_process(
COMMAND "${INSTALL_NAME_TOOL}" -change "libicudata.${ICU_VERSION_MAJOR}.dylib"
"${ID_PREFIX}/libicudata.${ICU_VERSION_MAJOR}.dylib"
"${LIB_NAME}.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${CONFIG_TRIPLE}/lib"
LOGNAME "make-build-fix-rpath-${CONFIG_TRIPLE}"
)
endforeach()

# add ID_PREFIX to remaining libicuio libicutu dependencies
foreach(LIB_NAME libicuio libicutu)
vcpkg_execute_build_process(
COMMAND "${INSTALL_NAME_TOOL}" -change "libicui18n.${ICU_VERSION_MAJOR}.dylib"
"${ID_PREFIX}/libicui18n.${ICU_VERSION_MAJOR}.dylib"
"${LIB_NAME}.${VERSION}.dylib"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${CONFIG_TRIPLE}/lib"
LOGNAME "make-build-fix-rpath-${CONFIG_TRIPLE}"
)
endforeach()

# 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}/${CONFIG_TRIPLE}/lib"
LOGNAME "make-build-fix-rpath-${CONFIG_TRIPLE}"
)
endforeach()

endif()

vcpkg_install_make(OPTIONS ${BUILD_OPTIONS})

file(REMOVE_RECURSE
Expand Down
7 changes: 3 additions & 4 deletions ports/icu/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
{
"name": "icu",
"version": "73.1",
"port-version": 2,
"version": "74.1",
"description": "Mature and widely used Unicode and localization library.",
"homepage": "https://icu.unicode.org/home",
"license": "ICU",
"supports": "!uwp",
"dependencies": [
{
"name": "icu",
Expand All @@ -17,7 +15,8 @@
],
"features": {
"tools": {
"description": "Build tools"
"description": "Build tools",
"supports": "!uwp"
}
}
}
3 changes: 1 addition & 2 deletions scripts/test_ports/vcpkg-ci-boost/vcpkg.json
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,7 @@
"default-features": false,
"features": [
"icu"
],
"platform":"!uwp"
]
}
]
}
4 changes: 2 additions & 2 deletions versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -3385,8 +3385,8 @@
"port-version": 0
},
"icu": {
"baseline": "73.1",
"port-version": 2
"baseline": "74.1",
"port-version": 0
},
"ideviceinstaller": {
"baseline": "2023-07-21",
Expand Down
5 changes: 5 additions & 0 deletions versions/i-/icu.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "0a6f5ea29d6445c8af30f19952c62cc5dd5e2a5b",
"version": "74.1",
"port-version": 0
},
{
"git-tree": "b6ac20c2420a4f7118d5db326c8c599e50b2c5a4",
"version": "73.1",
Expand Down

0 comments on commit a1e13e8

Please sign in to comment.