From 2807910276c9131ffd3e8ddf4be1bfb2574deea6 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sat, 6 Mar 2021 20:42:19 +0100 Subject: [PATCH 01/39] [icu] introduce host dependency --- ports/icu/CONTROL | 6 ------ ports/icu/portfile.cmake | 6 ++++++ ports/icu/vcpkg.json | 14 ++++++++++++++ 3 files changed, 20 insertions(+), 6 deletions(-) delete mode 100644 ports/icu/CONTROL create mode 100644 ports/icu/vcpkg.json diff --git a/ports/icu/CONTROL b/ports/icu/CONTROL deleted file mode 100644 index 96c578b09982dc..00000000000000 --- a/ports/icu/CONTROL +++ /dev/null @@ -1,6 +0,0 @@ -Source: icu -Version: 67.1 -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 60fb602288837c..ac7144909b7f9a 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -41,6 +41,12 @@ set(RELEASE_TRIPLET ${TARGET_TRIPLET}-rel) set(DEBUG_TRIPLET ${TARGET_TRIPLET}-dbg) if(NOT VCPKG_TARGET_IS_WINDOWS) + + if(NOT "${TARGET_TRIPLET}" STREQUAL "${_HOST_TRIPLET}") + message(STATUS "CROSS COMPILE ${TARGET_TRIPLET} ${_HOST_TRIPLET}") + set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --build=arm-darwin --host=x86_64-apple-darwin --with-cross-build=${CURRENT_BUILDTREES_DIR}/${_HOST_TRIPLET}-rel/") + endif() + set(BASH bash) set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -fPIC") set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -fPIC") diff --git a/ports/icu/vcpkg.json b/ports/icu/vcpkg.json new file mode 100644 index 00000000000000..c3bf5e694d4f79 --- /dev/null +++ b/ports/icu/vcpkg.json @@ -0,0 +1,14 @@ +{ + "name": "icu", + "version-string": "67.1", + "port-version": 9, + "description": "Mature and widely used Unicode and localization library.", + "homepage": "http://icu-project.org/apiref/icu4c/", + "supports": "!(arm | uwp)", + "dependencies": [ + { + "name": "icu", + "host": true + } + ] +} From 35ff48dda420ef7e06f07cdcac5b9d690ac387cc Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sat, 6 Mar 2021 20:43:35 +0100 Subject: [PATCH 02/39] add version files --- versions/baseline.json | 2 +- versions/i-/icu.json | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/versions/baseline.json b/versions/baseline.json index 647809c7967694..e04fcef21a1a8d 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2450,7 +2450,7 @@ }, "icu": { "baseline": "67.1", - "port-version": 8 + "port-version": 9 }, "ideviceinstaller": { "baseline": "1.1.2.23-1", diff --git a/versions/i-/icu.json b/versions/i-/icu.json index d91bfed139c7d8..45e892762054f7 100644 --- a/versions/i-/icu.json +++ b/versions/i-/icu.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "0479edb6b85588935b108f2d0779ce89da19ea41", + "version-string": "67.1", + "port-version": 9 + }, { "git-tree": "db2977707d68a8c04e0960b0965722f8e5bfda20", "version-string": "67.1", From 31e061a5133f4eb1f1bf1c17e5c2c52f671c3ec5 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sat, 6 Mar 2021 23:35:37 +0100 Subject: [PATCH 03/39] [icu] host dependency windows, update ci baseline --- ports/icu/portfile.cmake | 9 ++++----- scripts/ci.baseline.txt | 2 -- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index ac7144909b7f9a..928ea17d750e24 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -117,14 +117,13 @@ else() set(ENV{CXX} "${CMAKE_CXX_COMPILER}") endif() - if(CMAKE_HOST_WIN32 AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "MinGW") - set(ICU_MSVC_CROSS_COMPILE_TO_ARM ON) + if(NOT "${TARGET_TRIPLET}" STREQUAL "${_HOST_TRIPLET}") # Need the buildtrees dir, as the required files (e.g. icucross.mk) are not part of the installed package - get_filename_component(ICU_HOST_PATH "${BUILDTREES_DIR}/icu/x86-windows-rel" ABSOLUTE) + get_filename_component(ICU_HOST_PATH "${CURRENT_BUILDTREES_DIR}/${_HOST_TRIPLET}-rel" ABSOLUTE) if(NOT EXISTS "${ICU_HOST_PATH}") - message(FATAL_ERROR "The x86 icu must be be built locally to build for non-x86/x64 platforms. Please run `vcpkg install icu:x86-windows`.") + message(FATAL_ERROR "The ${_HOST_TRIPLET} icu must be be built locally to build for non ${_HOST_TRIPLET} platforms.") endif() - + message(STATUS "CROSS COMPILE ${TARGET_TRIPLET} ${_HOST_TRIPLET}") set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --with-cross-build=${ICU_HOST_PATH}") set(ENV{PATH} "$ENV{PATH}${VCPKG_HOST_PATH_SEPARATOR}${ICU_HOST_PATH}/lib") endif() diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index d82c67faea1a9d..f1d3b5d1b0c7b9 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -458,8 +458,6 @@ hiredis:x64-uwp=fail hpx:x64-windows-static=fail hpx:x64-linux=fail libhsplasma:x64-windows-static=fail -icu:arm-uwp=fail -icu:x64-uwp=fail ideviceinstaller:x64-windows-static-md=fail idevicerestore:x64-linux=fail idevicerestore:x64-osx=fail From 62eaa95e46d2818510ec314ed4beaae509acfd20 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sat, 6 Mar 2021 23:36:02 +0100 Subject: [PATCH 04/39] add version files --- versions/i-/icu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/i-/icu.json b/versions/i-/icu.json index 45e892762054f7..9112b02e7e3986 100644 --- a/versions/i-/icu.json +++ b/versions/i-/icu.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "0479edb6b85588935b108f2d0779ce89da19ea41", + "git-tree": "d8d5631b9489180a35688f396a53f885e3903e3d", "version-string": "67.1", "port-version": 9 }, From 51456586b2080598564abe91c189c1b27826642e Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sun, 7 Mar 2021 00:12:16 +0100 Subject: [PATCH 05/39] [icu] add debug messages --- ports/icu/portfile.cmake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 928ea17d750e24..feefec90679f0a 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -117,9 +117,12 @@ else() set(ENV{CXX} "${CMAKE_CXX_COMPILER}") endif() + message(STATUS "Install to ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}") + if(NOT "${TARGET_TRIPLET}" STREQUAL "${_HOST_TRIPLET}") # Need the buildtrees dir, as the required files (e.g. icucross.mk) are not part of the installed package get_filename_component(ICU_HOST_PATH "${CURRENT_BUILDTREES_DIR}/${_HOST_TRIPLET}-rel" ABSOLUTE) + message(STATUS "Test paths: ${CURRENT_BUILDTREES_DIR}/${_HOST_TRIPLET}-rel ${ICU_HOST_PATH}") if(NOT EXISTS "${ICU_HOST_PATH}") message(FATAL_ERROR "The ${_HOST_TRIPLET} icu must be be built locally to build for non ${_HOST_TRIPLET} platforms.") endif() From 04246147e9052409a8227288c0a6152b67cca882 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sun, 7 Mar 2021 01:57:37 +0100 Subject: [PATCH 06/39] [icu] do not depend on buildtree, install required files instead --- ports/icu/portfile.cmake | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index feefec90679f0a..7084230cf359d7 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -44,7 +44,7 @@ if(NOT VCPKG_TARGET_IS_WINDOWS) if(NOT "${TARGET_TRIPLET}" STREQUAL "${_HOST_TRIPLET}") message(STATUS "CROSS COMPILE ${TARGET_TRIPLET} ${_HOST_TRIPLET}") - set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --build=arm-darwin --host=x86_64-apple-darwin --with-cross-build=${CURRENT_BUILDTREES_DIR}/${_HOST_TRIPLET}-rel/") + set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --build=arm-darwin --host=x86_64-apple-darwin --with-cross-build=${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}/for-cross-compile") endif() set(BASH bash) @@ -121,8 +121,8 @@ else() if(NOT "${TARGET_TRIPLET}" STREQUAL "${_HOST_TRIPLET}") # Need the buildtrees dir, as the required files (e.g. icucross.mk) are not part of the installed package - get_filename_component(ICU_HOST_PATH "${CURRENT_BUILDTREES_DIR}/${_HOST_TRIPLET}-rel" ABSOLUTE) - message(STATUS "Test paths: ${CURRENT_BUILDTREES_DIR}/${_HOST_TRIPLET}-rel ${ICU_HOST_PATH}") + get_filename_component(ICU_HOST_PATH "${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}/for-cross-compile" ABSOLUTE) + message(STATUS "Test paths: ${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}/for-cross-compile ${ICU_HOST_PATH}") if(NOT EXISTS "${ICU_HOST_PATH}") message(FATAL_ERROR "The ${_HOST_TRIPLET} icu must be be built locally to build for non ${_HOST_TRIPLET} platforms.") endif() @@ -404,6 +404,21 @@ endif() file(GLOB ICU_TOOLS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/*${VCPKG_HOST_EXECUTABLE_SUFFIX}) file(INSTALL ${ICU_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}) +# To cross compile, we need some files at specific positions. So lets copy them +list(APPEND CROSS_COMPILE_TOOLS +${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/derb${VCPKG_HOST_EXECUTABLE_SUFFIX} +${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/genbrk${VCPKG_HOST_EXECUTABLE_SUFFIX} +${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/gencfu${VCPKG_HOST_EXECUTABLE_SUFFIX} +${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/gencnval${VCPKG_HOST_EXECUTABLE_SUFFIX} +${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/gendict${VCPKG_HOST_EXECUTABLE_SUFFIX} +${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/genrb${VCPKG_HOST_EXECUTABLE_SUFFIX} +${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/makeconv${VCPKG_HOST_EXECUTABLE_SUFFIX} +${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/icupkg${VCPKG_HOST_EXECUTABLE_SUFFIX} +${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/pkgdata${VCPKG_HOST_EXECUTABLE_SUFFIX}) +file(COPY ${CROSS_COMPILE_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/for-cross-compile/bin) +file(GLOB CROSS_COMPILE_DEFS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/config/icucross.*) +file(INSTALL ${CROSS_COMPILE_DEFS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/for-cross-compile/config) + # remove any remaining dlls in /lib file(GLOB DUMMY_DLLS ${CURRENT_PACKAGES_DIR}/lib/*.dll ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) if(DUMMY_DLLS) From 8094631ec20b39c0e1c153c20962165378e92325 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sun, 7 Mar 2021 02:19:16 +0100 Subject: [PATCH 07/39] [icu] set env variable for dynamic libs --- ports/icu/portfile.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 7084230cf359d7..2f4f0b6cb17b17 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -128,7 +128,7 @@ else() endif() message(STATUS "CROSS COMPILE ${TARGET_TRIPLET} ${_HOST_TRIPLET}") set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --with-cross-build=${ICU_HOST_PATH}") - set(ENV{PATH} "$ENV{PATH}${VCPKG_HOST_PATH_SEPARATOR}${ICU_HOST_PATH}/lib") + set(ENV{PATH} "$ENV{PATH}${VCPKG_HOST_PATH_SEPARATOR}${_VCPKG_INSTALLED_DIR}/lib") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") From 2dc59748559f55bc220ff7c3a3adf53cf59a72f4 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sun, 7 Mar 2021 02:30:45 +0100 Subject: [PATCH 08/39] [icu] find dlls for windows --- ports/icu/portfile.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 2f4f0b6cb17b17..94300d25d24d28 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -405,6 +405,7 @@ file(GLOB ICU_TOOLS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/*${VCPKG_HO file(INSTALL ${ICU_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}) # To cross compile, we need some files at specific positions. So lets copy them +file(GLOB CROSS_COMPILE_TOOLS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/*.dll) list(APPEND CROSS_COMPILE_TOOLS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/derb${VCPKG_HOST_EXECUTABLE_SUFFIX} ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/genbrk${VCPKG_HOST_EXECUTABLE_SUFFIX} From 81e94e07ffc01db0162eb712c3eef994aadf2bb2 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sun, 7 Mar 2021 13:16:28 +0100 Subject: [PATCH 09/39] [icu] copy dlls --- ports/icu/portfile.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 94300d25d24d28..ae3c04f85ab95a 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -405,7 +405,7 @@ file(GLOB ICU_TOOLS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/*${VCPKG_HO file(INSTALL ${ICU_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}) # To cross compile, we need some files at specific positions. So lets copy them -file(GLOB CROSS_COMPILE_TOOLS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/*.dll) +file(GLOB CROSS_COMPILE_TOOLS ${CURRENT_PACKAGES_DIR}/lib/icu*${ICU_VERSION_MAJOR}.dll) list(APPEND CROSS_COMPILE_TOOLS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/derb${VCPKG_HOST_EXECUTABLE_SUFFIX} ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/genbrk${VCPKG_HOST_EXECUTABLE_SUFFIX} From 736bceda27577189d51f5a189227826e71d95515 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sun, 7 Mar 2021 23:54:58 +0100 Subject: [PATCH 10/39] [icu] cleanup, fix apple arm targets --- ports/icu/portfile.cmake | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index ae3c04f85ab95a..dd27e74a4adb34 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -43,8 +43,15 @@ set(DEBUG_TRIPLET ${TARGET_TRIPLET}-dbg) if(NOT VCPKG_TARGET_IS_WINDOWS) if(NOT "${TARGET_TRIPLET}" STREQUAL "${_HOST_TRIPLET}") - message(STATUS "CROSS COMPILE ${TARGET_TRIPLET} ${_HOST_TRIPLET}") - set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --build=arm-darwin --host=x86_64-apple-darwin --with-cross-build=${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}/for-cross-compile") + # cross compiling + set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --with-cross-build=${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}/for-cross-compile") + if(VCPKG_TARGET_IS_OSX) + # on apple silicon we have to manually set the arch when we want x64 binaries, otherwise we get arm64 binaries + if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) + set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -arch x86_64") + set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -arch x86_64") + endif() + endif() endif() set(BASH bash) @@ -120,15 +127,13 @@ else() message(STATUS "Install to ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}") if(NOT "${TARGET_TRIPLET}" STREQUAL "${_HOST_TRIPLET}") - # Need the buildtrees dir, as the required files (e.g. icucross.mk) are not part of the installed package + # we have to give a path to the buildtree-dir of the host system, but this folder is gone. So we have capied + # the relvant files to ${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}/for-cross-compile get_filename_component(ICU_HOST_PATH "${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}/for-cross-compile" ABSOLUTE) - message(STATUS "Test paths: ${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}/for-cross-compile ${ICU_HOST_PATH}") if(NOT EXISTS "${ICU_HOST_PATH}") - message(FATAL_ERROR "The ${_HOST_TRIPLET} icu must be be built locally to build for non ${_HOST_TRIPLET} platforms.") + message(FATAL_ERROR "Please create a bug report at vcpkg.") # can not happen (normally) endif() - message(STATUS "CROSS COMPILE ${TARGET_TRIPLET} ${_HOST_TRIPLET}") set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --with-cross-build=${ICU_HOST_PATH}") - set(ENV{PATH} "$ENV{PATH}${VCPKG_HOST_PATH_SEPARATOR}${_VCPKG_INSTALLED_DIR}/lib") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") @@ -406,16 +411,17 @@ file(INSTALL ${ICU_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}) # To cross compile, we need some files at specific positions. So lets copy them file(GLOB CROSS_COMPILE_TOOLS ${CURRENT_PACKAGES_DIR}/lib/icu*${ICU_VERSION_MAJOR}.dll) -list(APPEND CROSS_COMPILE_TOOLS -${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/derb${VCPKG_HOST_EXECUTABLE_SUFFIX} -${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/genbrk${VCPKG_HOST_EXECUTABLE_SUFFIX} -${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/gencfu${VCPKG_HOST_EXECUTABLE_SUFFIX} -${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/gencnval${VCPKG_HOST_EXECUTABLE_SUFFIX} -${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/gendict${VCPKG_HOST_EXECUTABLE_SUFFIX} -${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/genrb${VCPKG_HOST_EXECUTABLE_SUFFIX} -${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/makeconv${VCPKG_HOST_EXECUTABLE_SUFFIX} -${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/icupkg${VCPKG_HOST_EXECUTABLE_SUFFIX} -${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/pkgdata${VCPKG_HOST_EXECUTABLE_SUFFIX}) +list(APPEND CROSS_COMPILE_TOOLS + ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/derb${VCPKG_HOST_EXECUTABLE_SUFFIX} + ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/genbrk${VCPKG_HOST_EXECUTABLE_SUFFIX} + ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/gencfu${VCPKG_HOST_EXECUTABLE_SUFFIX} + ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/gencnval${VCPKG_HOST_EXECUTABLE_SUFFIX} + ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/gendict${VCPKG_HOST_EXECUTABLE_SUFFIX} + ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/genrb${VCPKG_HOST_EXECUTABLE_SUFFIX} + ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/makeconv${VCPKG_HOST_EXECUTABLE_SUFFIX} + ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/icupkg${VCPKG_HOST_EXECUTABLE_SUFFIX} + ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/pkgdata${VCPKG_HOST_EXECUTABLE_SUFFIX} +) file(COPY ${CROSS_COMPILE_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/for-cross-compile/bin) file(GLOB CROSS_COMPILE_DEFS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/config/icucross.*) file(INSTALL ${CROSS_COMPILE_DEFS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/for-cross-compile/config) From fa8524b2ac56f71aa954de3124594c22d59ac3ab Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sun, 7 Mar 2021 23:55:15 +0100 Subject: [PATCH 11/39] add version files --- versions/i-/icu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/i-/icu.json b/versions/i-/icu.json index 9112b02e7e3986..39ce3d197bf27e 100644 --- a/versions/i-/icu.json +++ b/versions/i-/icu.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "d8d5631b9489180a35688f396a53f885e3903e3d", + "git-tree": "8d7cf35e697abe10f06fa7a2f4c90ecdcede59d1", "version-string": "67.1", "port-version": 9 }, From 5ec4fe9bf29d250f1e78d78d0fd49bb40a005d12 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Wed, 10 Mar 2021 02:10:06 +0100 Subject: [PATCH 12/39] [icu] no for-cross-compile subfolder --- ports/icu/portfile.cmake | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index dd27e74a4adb34..0a31e426467975 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -44,7 +44,7 @@ if(NOT VCPKG_TARGET_IS_WINDOWS) if(NOT "${TARGET_TRIPLET}" STREQUAL "${_HOST_TRIPLET}") # cross compiling - set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --with-cross-build=${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}/for-cross-compile") + set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --with-cross-build=${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}") if(VCPKG_TARGET_IS_OSX) # on apple silicon we have to manually set the arch when we want x64 binaries, otherwise we get arm64 binaries if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) @@ -128,8 +128,8 @@ else() if(NOT "${TARGET_TRIPLET}" STREQUAL "${_HOST_TRIPLET}") # we have to give a path to the buildtree-dir of the host system, but this folder is gone. So we have capied - # the relvant files to ${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}/for-cross-compile - get_filename_component(ICU_HOST_PATH "${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}/for-cross-compile" ABSOLUTE) + # the relvant files to ${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT} + get_filename_component(ICU_HOST_PATH "${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}" ABSOLUTE) if(NOT EXISTS "${ICU_HOST_PATH}") message(FATAL_ERROR "Please create a bug report at vcpkg.") # can not happen (normally) endif() @@ -405,26 +405,16 @@ else() endforeach() endif() -# Install executables from ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin to /tools/icu -file(GLOB ICU_TOOLS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/*${VCPKG_HOST_EXECUTABLE_SUFFIX}) -file(INSTALL ${ICU_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}) +# Install executables from ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin to /tools/icu/bin +file(GLOB ICU_TOOLS + ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/*${VCPKG_HOST_EXECUTABLE_SUFFIX} + ${CURRENT_PACKAGES_DIR}/lib/icu*${ICU_VERSION_MAJOR}.dll +) +file(COPY ${ICU_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) # To cross compile, we need some files at specific positions. So lets copy them -file(GLOB CROSS_COMPILE_TOOLS ${CURRENT_PACKAGES_DIR}/lib/icu*${ICU_VERSION_MAJOR}.dll) -list(APPEND CROSS_COMPILE_TOOLS - ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/derb${VCPKG_HOST_EXECUTABLE_SUFFIX} - ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/genbrk${VCPKG_HOST_EXECUTABLE_SUFFIX} - ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/gencfu${VCPKG_HOST_EXECUTABLE_SUFFIX} - ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/gencnval${VCPKG_HOST_EXECUTABLE_SUFFIX} - ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/gendict${VCPKG_HOST_EXECUTABLE_SUFFIX} - ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/genrb${VCPKG_HOST_EXECUTABLE_SUFFIX} - ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/makeconv${VCPKG_HOST_EXECUTABLE_SUFFIX} - ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/icupkg${VCPKG_HOST_EXECUTABLE_SUFFIX} - ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/pkgdata${VCPKG_HOST_EXECUTABLE_SUFFIX} -) -file(COPY ${CROSS_COMPILE_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/for-cross-compile/bin) file(GLOB CROSS_COMPILE_DEFS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/config/icucross.*) -file(INSTALL ${CROSS_COMPILE_DEFS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/for-cross-compile/config) +file(INSTALL ${CROSS_COMPILE_DEFS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/config) # remove any remaining dlls in /lib file(GLOB DUMMY_DLLS ${CURRENT_PACKAGES_DIR}/lib/*.dll ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) From d44e2dfe198b86b2321a575936270a244e0b0915 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Wed, 10 Mar 2021 02:10:22 +0100 Subject: [PATCH 13/39] add version files --- versions/i-/icu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/i-/icu.json b/versions/i-/icu.json index 39ce3d197bf27e..1c329904ecdf57 100644 --- a/versions/i-/icu.json +++ b/versions/i-/icu.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "8d7cf35e697abe10f06fa7a2f4c90ecdcede59d1", + "git-tree": "b400a9af02514152152d0ab46a090e5a0fe8357a", "version-string": "67.1", "port-version": 9 }, From 6e64f280258530404ebac1c4d0f326fb4525d1f8 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Thu, 11 Mar 2021 20:40:38 +0100 Subject: [PATCH 14/39] [icu] use instead of --- ports/icu/portfile.cmake | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 0a31e426467975..106cd54bff857c 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -42,9 +42,9 @@ set(DEBUG_TRIPLET ${TARGET_TRIPLET}-dbg) if(NOT VCPKG_TARGET_IS_WINDOWS) - if(NOT "${TARGET_TRIPLET}" STREQUAL "${_HOST_TRIPLET}") + if(NOT "${TARGET_TRIPLET}" STREQUAL "${HOST_TRIPLET}") # cross compiling - set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --with-cross-build=${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}") + set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --with-cross-build=${_VCPKG_INSTALLED_DIR}/${HOST_TRIPLET}/tools/${PORT}") if(VCPKG_TARGET_IS_OSX) # on apple silicon we have to manually set the arch when we want x64 binaries, otherwise we get arm64 binaries if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) @@ -126,10 +126,10 @@ else() message(STATUS "Install to ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}") - if(NOT "${TARGET_TRIPLET}" STREQUAL "${_HOST_TRIPLET}") + if(NOT "${TARGET_TRIPLET}" STREQUAL "${HOST_TRIPLET}") # we have to give a path to the buildtree-dir of the host system, but this folder is gone. So we have capied - # the relvant files to ${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT} - get_filename_component(ICU_HOST_PATH "${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/${PORT}" ABSOLUTE) + # the relvant files to ${_VCPKG_INSTALLED_DIR}/${HOST_TRIPLET}/tools/${PORT} + get_filename_component(ICU_HOST_PATH "${_VCPKG_INSTALLED_DIR}/${HOST_TRIPLET}/tools/${PORT}" ABSOLUTE) if(NOT EXISTS "${ICU_HOST_PATH}") message(FATAL_ERROR "Please create a bug report at vcpkg.") # can not happen (normally) endif() From 541060399134b932e96017f7206bad1749b465c4 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Thu, 11 Mar 2021 20:40:54 +0100 Subject: [PATCH 15/39] add version files --- versions/i-/icu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/i-/icu.json b/versions/i-/icu.json index 1c329904ecdf57..7476aa52b77ac3 100644 --- a/versions/i-/icu.json +++ b/versions/i-/icu.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "b400a9af02514152152d0ab46a090e5a0fe8357a", + "git-tree": "700896177a20932cabce7611bec1ae7e9807c652", "version-string": "67.1", "port-version": 9 }, From 2d4b190b3b0b6cb94e23ad5ff8c415449c2a5682 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Wed, 17 Mar 2021 19:08:42 +0100 Subject: [PATCH 16/39] [icu] convert to vcpkg_configure_make --- ports/icu/portfile.cmake | 170 +++++---------------------------------- ports/icu/vcpkg.json | 2 +- 2 files changed, 23 insertions(+), 149 deletions(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 106cd54bff857c..227dad7246a422 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -27,160 +27,43 @@ vcpkg_extract_source_archive_ex( vcpkg_find_acquire_program(PYTHON3) set(ENV{PYTHON} "${PYTHON3}") -set(CONFIGURE_OPTIONS "--disable-samples --disable-tests --disable-layoutex") +list(APPEND CONFIGURE_OPTIONS --disable-samples --disable-tests --disable-layoutex) -if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --disable-static --enable-shared") -else() - set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --enable-static --disable-shared") -endif() +list(APPEND CONFIGURE_OPTIONS_RELEASE --disable-debug --enable-release) +list(APPEND CONFIGURE_OPTIONS_DEBUG --enable-debug --disable-release) -set(CONFIGURE_OPTIONS_RELEASE "--disable-debug --enable-release --prefix=${CURRENT_PACKAGES_DIR}") -set(CONFIGURE_OPTIONS_DEBUG "--enable-debug --disable-release --prefix=${CURRENT_PACKAGES_DIR}/debug") set(RELEASE_TRIPLET ${TARGET_TRIPLET}-rel) set(DEBUG_TRIPLET ${TARGET_TRIPLET}-dbg) -if(NOT VCPKG_TARGET_IS_WINDOWS) - - if(NOT "${TARGET_TRIPLET}" STREQUAL "${HOST_TRIPLET}") - # cross compiling - set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --with-cross-build=${_VCPKG_INSTALLED_DIR}/${HOST_TRIPLET}/tools/${PORT}") - if(VCPKG_TARGET_IS_OSX) - # on apple silicon we have to manually set the arch when we want x64 binaries, otherwise we get arm64 binaries - if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) - set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -arch x86_64") - set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -arch x86_64") - endif() - endif() - endif() - - set(BASH bash) - set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -fPIC") - set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -fPIC") - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - # Configure release - message(STATUS "Configuring ${RELEASE_TRIPLET}") - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}) - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}) - set(ENV{CFLAGS} "-O2 ${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_RELEASE}") - set(ENV{CXXFLAGS} "-O2 ${VCPKG_CXX_FLAGS} ${VCPKG_CXX_FLAGS_RELEASE}") - vcpkg_execute_required_process( - COMMAND ${BASH} --noprofile --norc -c - "${SOURCE_PATH}/source/runConfigureICU Linux ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_RELEASE}" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}" - LOGNAME "configure-${RELEASE_TRIPLET}") - message(STATUS "Configuring ${RELEASE_TRIPLET} done") - endif() - - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - # Configure debug - message(STATUS "Configuring ${DEBUG_TRIPLET}") - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${DEBUG_TRIPLET}) - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${DEBUG_TRIPLET}) - set(ENV{CFLAGS} "-O0 -g ${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_DEBUG}") - set(ENV{CXXFLAGS} "-O0 -g ${VCPKG_CXX_FLAGS} ${VCPKG_CXX_FLAGS_DEBUG}") - vcpkg_execute_required_process( - COMMAND ${BASH} --noprofile --norc -c - "${SOURCE_PATH}/source/runConfigureICU Linux ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_DEBUG}" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${DEBUG_TRIPLET}" - LOGNAME "configure-${DEBUG_TRIPLET}") - message(STATUS "Configuring ${DEBUG_TRIPLET} done") - endif() - -else() +if(NOT "${TARGET_TRIPLET}" STREQUAL "${HOST_TRIPLET}") + # cross compiling + list(APPEND CONFIGURE_OPTIONS "--with-cross-build=${_VCPKG_INSTALLED_DIR}/${HOST_TRIPLET}/tools/${PORT}") +endif() +if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --host=x86_64-w64-mingw32") + set(VCPKG_MAKE_BUILD_TRIPLET --host=x86_64-w64-mingw32) else() - set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --host=i686-w64-mingw32") + set(VCPKG_MAKE_BUILD_TRIPLET --host=i686-w64-mingw32) endif() - - # Acquire tools - vcpkg_acquire_msys(MSYS_ROOT PACKAGES make automake1.16) - - # Insert msys into the path between the compiler toolset and windows system32. This prevents masking of "link.exe" but DOES mask "find.exe". - string(REPLACE ";$ENV{SystemRoot}\\system32;" ";${MSYS_ROOT}/usr/bin;$ENV{SystemRoot}\\system32;" NEWPATH "$ENV{PATH}") - string(REPLACE ";$ENV{SystemRoot}\\System32;" ";${MSYS_ROOT}/usr/bin;$ENV{SystemRoot}\\System32;" NEWPATH "${NEWPATH}") - set(ENV{PATH} "${NEWPATH}") + vcpkg_acquire_msys(MSYS_ROOT PACKAGES make) set(BASH ${MSYS_ROOT}/usr/bin/bash.exe) - - set(AUTOMAKE_DIR ${MSYS_ROOT}/usr/share/automake-1.16) - file(COPY ${AUTOMAKE_DIR}/config.guess ${AUTOMAKE_DIR}/config.sub DESTINATION ${SOURCE_PATH}/source) - - if(NOT VCPKG_TARGET_IS_MINGW) - set(PLATFORM "MSYS/MSVC") - if(VCPKG_CRT_LINKAGE STREQUAL static) - set(ICU_RUNTIME "-MT") - else() - set(ICU_RUNTIME "-MD") - endif() - set(EXTRA_RELEASE_FLAGS "${ICU_RUNTIME} -O2 -Oi -Zi -FS") - set(RELEASE_LDFLAGS "-DEBUG -INCREMENTAL:NO -OPT:REF -OPT:ICF") - set(EXTRA_DEBUG_FLAGS "${ICU_RUNTIME}d -Od -Zi -FS -RTC1") - set(DEBUG_LDFLAGS "-DEBUG") - else() - set(PLATFORM "MinGW") - set(ENV{CC} "${CMAKE_C_COMPILER}") - set(ENV{CXX} "${CMAKE_CXX_COMPILER}") - endif() - - message(STATUS "Install to ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}") - - if(NOT "${TARGET_TRIPLET}" STREQUAL "${HOST_TRIPLET}") - # we have to give a path to the buildtree-dir of the host system, but this folder is gone. So we have capied - # the relvant files to ${_VCPKG_INSTALLED_DIR}/${HOST_TRIPLET}/tools/${PORT} - get_filename_component(ICU_HOST_PATH "${_VCPKG_INSTALLED_DIR}/${HOST_TRIPLET}/tools/${PORT}" ABSOLUTE) - if(NOT EXISTS "${ICU_HOST_PATH}") - message(FATAL_ERROR "Please create a bug report at vcpkg.") # can not happen (normally) - endif() - set(CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS} --with-cross-build=${ICU_HOST_PATH}") - endif() - - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - # Configure release - message(STATUS "Configuring ${RELEASE_TRIPLET}") - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}) - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}) - set(ENV{CFLAGS} "${EXTRA_RELEASE_FLAGS} ${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_RELEASE}") - set(ENV{CXXFLAGS} "${EXTRA_RELEASE_FLAGS} ${VCPKG_CXX_FLAGS} ${VCPKG_CXX_FLAGS_RELEASE}") - set(ENV{LDFLAGS} "${RELEASE_LDFLAGS}") - vcpkg_execute_required_process( - COMMAND ${BASH} --noprofile --norc -c - "${SOURCE_PATH}/source/runConfigureICU ${PLATFORM} ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_RELEASE}" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}" - LOGNAME "configure-${RELEASE_TRIPLET}") - message(STATUS "Configuring ${RELEASE_TRIPLET} done") - endif() - - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - # Configure debug - message(STATUS "Configuring ${DEBUG_TRIPLET}") - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${DEBUG_TRIPLET}) - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${DEBUG_TRIPLET}) - set(ENV{CFLAGS} "${EXTRA_DEBUG_FLAGS} ${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_DEBUG}") - set(ENV{CXXFLAGS} "${EXTRA_DEBUG_FLAGS} ${VCPKG_CXX_FLAGS} ${VCPKG_CXX_FLAGS_DEBUG}") - set(ENV{LDFLAGS} "${DEBUG_LDFLAGS}") - vcpkg_execute_required_process( - COMMAND ${BASH} --noprofile --norc -c - "${SOURCE_PATH}/source/runConfigureICU ${PLATFORM} ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_DEBUG}" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${DEBUG_TRIPLET}" - LOGNAME "configure-${DEBUG_TRIPLET}") - message(STATUS "Configuring ${DEBUG_TRIPLET} done") - endif() +else() + set(BASH bash) endif() -unset(ENV{CFLAGS}) -unset(ENV{CXXFLAGS}) -unset(ENV{LDFLAGS}) +vcpkg_configure_make( + SOURCE_PATH ${SOURCE_PATH} + PROJECT_SUBPATH source + OPTIONS ${CONFIGURE_OPTIONS} + OPTIONS_RELEASE ${CONFIGURE_OPTIONS_RELEASE} + OPTIONS_DEBUG ${CONFIGURE_OPTIONS_DEBUG} +) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") # Build release message(STATUS "Package ${RELEASE_TRIPLET}") - vcpkg_execute_build_process( - COMMAND ${BASH} --noprofile --norc -c "make -j ${VCPKG_CONCURRENCY}" - NO_PARALLEL_COMMAND ${BASH} --noprofile --norc -c "make" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}" - LOGNAME "make-build-${RELEASE_TRIPLET}") + vcpkg_build_make() # remove this block if https://unicode-org.atlassian.net/browse/ICU-21458 # is resolved and use the configure script instead @@ -324,16 +207,7 @@ endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") # Build debug message(STATUS "Package ${DEBUG_TRIPLET}") - vcpkg_execute_build_process( - COMMAND ${BASH} --noprofile --norc -c "make -j ${VCPKG_CONCURRENCY}" - NO_PARALLEL_COMMAND ${BASH} --noprofile --norc -c "make" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${DEBUG_TRIPLET}" - LOGNAME "make-build-${DEBUG_TRIPLET}") - - vcpkg_execute_build_process( - COMMAND ${BASH} --noprofile --norc -c "make install" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${DEBUG_TRIPLET}" - LOGNAME "make-install-${DEBUG_TRIPLET}") + vcpkg_install_make() message(STATUS "Package ${DEBUG_TRIPLET} done") endif() diff --git a/ports/icu/vcpkg.json b/ports/icu/vcpkg.json index c3bf5e694d4f79..7e84bd9148d376 100644 --- a/ports/icu/vcpkg.json +++ b/ports/icu/vcpkg.json @@ -1,6 +1,6 @@ { "name": "icu", - "version-string": "67.1", + "version": "67.1", "port-version": 9, "description": "Mature and widely used Unicode and localization library.", "homepage": "http://icu-project.org/apiref/icu4c/", From 3cfdec01dc9aa86dfaa285222d935eb6ee6b7b5d Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Wed, 17 Mar 2021 20:43:04 +0100 Subject: [PATCH 17/39] [icu] also build on arm --- ports/icu/vcpkg.json | 2 +- scripts/ci.baseline.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ports/icu/vcpkg.json b/ports/icu/vcpkg.json index 7e84bd9148d376..0ae13056562b11 100644 --- a/ports/icu/vcpkg.json +++ b/ports/icu/vcpkg.json @@ -4,7 +4,7 @@ "port-version": 9, "description": "Mature and widely used Unicode and localization library.", "homepage": "http://icu-project.org/apiref/icu4c/", - "supports": "!(arm | uwp)", + "supports": "!uwp", "dependencies": [ { "name": "icu", diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index f1d3b5d1b0c7b9..7eef1eeff5d1ff 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -673,6 +673,7 @@ libmpeg2:x64-osx=fail libmpeg2:x64-uwp=fail libmupdf:x64-osx=fail libmysql:x86-windows=fail +libmysql:arm64-windows=fail #The official website of libnice https://nice.freedesktop.org cannot be accessed libnice:x86-windows=skip libnice:x64-windows=skip @@ -1283,6 +1284,7 @@ qpid-proton:x64-uwp=fail qpid-proton:x64-windows-static=fail qt5-activeqt:x64-linux=fail qt5-activeqt:x64-osx=fail +qt5-base:arm64-windows=fail # Skip deprecated Qt module # (remnove after 1 year or longer due to vcpkg upgrade not handling removed ports correctly) qt5-canvas3d:x64-linux=skip From 2c832eeb4c98214c00d18a5d3d2454370242d9e6 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Wed, 17 Mar 2021 23:37:32 +0100 Subject: [PATCH 18/39] [icu] add DESTINATION param to vcpkg_copy_tools and use it --- docs/maintainers/vcpkg_copy_tools.md | 4 ++++ ports/icu/portfile.cmake | 21 ++++++++++----------- scripts/cmake/vcpkg_copy_tools.cmake | 16 ++++++++++++---- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/docs/maintainers/vcpkg_copy_tools.md b/docs/maintainers/vcpkg_copy_tools.md index 34a4bb84a63c25..3f0bd9873fab3f 100644 --- a/docs/maintainers/vcpkg_copy_tools.md +++ b/docs/maintainers/vcpkg_copy_tools.md @@ -10,6 +10,7 @@ vcpkg_copy_tools( TOOL_NAMES ... [SEARCH_DIR <${CURRENT_PACKAGES_DIR}/bin>] [AUTO_CLEAN] + [DESTINATION <${CURRENT_PACKAGES_DIR}/tools/${PORT}>] ) ``` ## Parameters @@ -22,6 +23,9 @@ The path to the directory containing the tools. This will be set to `${CURRENT_P ### AUTO_CLEAN Auto clean executables in `${CURRENT_PACKAGES_DIR}/bin` and `${CURRENT_PACKAGES_DIR}/debug/bin`. +### DESTINATION +The destination folder. This will be set to `${CURRENT_PACKAGES_DIR}/tools/${PORT}` if ommited. + ## Examples * [cpuinfo](https://github.com/microsoft/vcpkg/blob/master/ports/cpuinfo/portfile.cmake) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 227dad7246a422..729f3ad229010e 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -211,11 +211,7 @@ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") message(STATUS "Package ${DEBUG_TRIPLET} done") endif() -if(NOT VCPKG_TARGET_IS_MINGW) # MinGW already has its files placed in the correct directory - file(REMOVE_RECURSE - ${CURRENT_PACKAGES_DIR}/bin - ${CURRENT_PACKAGES_DIR}/debug/bin) -else() +if(VCPKG_TARGET_IS_MINGW) file(GLOB ICU_TOOLS ${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_HOST_EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/debug/bin/*${VCPKG_HOST_EXECUTABLE_SUFFIX} @@ -225,11 +221,10 @@ else() endif() file(REMOVE_RECURSE - ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/share ${CURRENT_PACKAGES_DIR}/debug/share ${CURRENT_PACKAGES_DIR}/lib/icu - ${CURRENT_PACKAGES_DIR}/debug/lib/icud) + ${CURRENT_PACKAGES_DIR}/debug/lib/icu) file(GLOB TEST_LIBS ${CURRENT_PACKAGES_DIR}/lib/*test* @@ -280,11 +275,15 @@ else() endif() # Install executables from ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin to /tools/icu/bin -file(GLOB ICU_TOOLS - ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin/*${VCPKG_HOST_EXECUTABLE_SUFFIX} - ${CURRENT_PACKAGES_DIR}/lib/icu*${ICU_VERSION_MAJOR}.dll +vcpkg_copy_tools( + TOOL_NAMES icupkg gennorm2 gencmn genccode gensprep + SEARCH_DIR ${CURRENT_PACKAGES_DIR}/tools/icu/sbin + DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin ) -file(COPY ${ICU_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) + +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/tools/icu/sbin + ${CURRENT_PACKAGES_DIR}/tools/icu/debug) # To cross compile, we need some files at specific positions. So lets copy them file(GLOB CROSS_COMPILE_DEFS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/config/icucross.*) diff --git a/scripts/cmake/vcpkg_copy_tools.cmake b/scripts/cmake/vcpkg_copy_tools.cmake index 628bfc506435fc..73eba2ecd8726d 100644 --- a/scripts/cmake/vcpkg_copy_tools.cmake +++ b/scripts/cmake/vcpkg_copy_tools.cmake @@ -9,6 +9,7 @@ vcpkg_copy_tools( TOOL_NAMES ... [SEARCH_DIR <${CURRENT_PACKAGES_DIR}/bin>] [AUTO_CLEAN] + [DESTINATION <${CURRENT_PACKAGES_DIR}/tools/${PORT}>] ) ``` ## Parameters @@ -21,6 +22,9 @@ The path to the directory containing the tools. This will be set to `${CURRENT_P ### AUTO_CLEAN Auto clean executables in `${CURRENT_PACKAGES_DIR}/bin` and `${CURRENT_PACKAGES_DIR}/debug/bin`. +### DESTINATION +The destination folder. This will be set to `${CURRENT_PACKAGES_DIR}/tools/${PORT}` if ommited. + ## Examples * [cpuinfo](https://github.com/microsoft/vcpkg/blob/master/ports/cpuinfo/portfile.cmake) @@ -30,12 +34,16 @@ Auto clean executables in `${CURRENT_PACKAGES_DIR}/bin` and `${CURRENT_PACKAGES_ function(vcpkg_copy_tools) # parse parameters such that semicolons in options arguments to COMMAND don't get erased - cmake_parse_arguments(PARSE_ARGV 0 _vct "AUTO_CLEAN" "SEARCH_DIR" "TOOL_NAMES") + cmake_parse_arguments(PARSE_ARGV 0 _vct "AUTO_CLEAN" "SEARCH_DIR;DESTINATION" "TOOL_NAMES") if(NOT DEFINED _vct_TOOL_NAMES) message(FATAL_ERROR "TOOL_NAMES must be specified.") endif() + if(NOT DEFINED _vct_DESTINATION) + set(_vct_DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") + endif() + if(NOT DEFINED _vct_SEARCH_DIR) set(_vct_SEARCH_DIR "${CURRENT_PACKAGES_DIR}/bin") elseif(NOT IS_DIRECTORY ${_vct_SEARCH_DIR}) @@ -46,12 +54,12 @@ function(vcpkg_copy_tools) set(tool_path "${_vct_SEARCH_DIR}/${tool_name}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") set(tool_pdb "${_vct_SEARCH_DIR}/${tool_name}.pdb") if(EXISTS "${tool_path}") - file(COPY "${tool_path}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") + file(COPY "${tool_path}" DESTINATION "${_vct_DESTINATION}") else() message(FATAL_ERROR "Couldn't find this tool: ${tool_path}.") endif() if(EXISTS "${tool_pdb}") - file(COPY "${tool_pdb}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") + file(COPY "${tool_pdb}" DESTINATION "${_vct_DESTINATION}") endif() endforeach() @@ -59,5 +67,5 @@ function(vcpkg_copy_tools) vcpkg_clean_executables_in_bin(FILE_NAMES ${_vct_TOOL_NAMES}) endif() - vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") + vcpkg_copy_tool_dependencies("${_vct_DESTINATION}") endfunction() From 4e17a78c4f5cc9e48b4f2ee144964df78e48b2ec Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Thu, 18 Mar 2021 13:54:16 +0100 Subject: [PATCH 19/39] [icu] use foreach in macOS build --- ports/icu/portfile.cmake | 178 ++++++++++++--------------------------- 1 file changed, 56 insertions(+), 122 deletions(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 729f3ad229010e..521c0a0f2d87c8 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -46,10 +46,6 @@ if(VCPKG_TARGET_IS_WINDOWS) else() set(VCPKG_MAKE_BUILD_TRIPLET --host=i686-w64-mingw32) endif() - vcpkg_acquire_msys(MSYS_ROOT PACKAGES make) - set(BASH ${MSYS_ROOT}/usr/bin/bash.exe) -else() - set(BASH bash) endif() vcpkg_configure_make( @@ -60,14 +56,13 @@ vcpkg_configure_make( OPTIONS_DEBUG ${CONFIGURE_OPTIONS_DEBUG} ) -if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - # Build release - message(STATUS "Package ${RELEASE_TRIPLET}") - vcpkg_build_make() +if(VCPKG_TARGET_IS_OSX AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + # Build release + vcpkg_build_make() - # 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") + # 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() @@ -84,108 +79,45 @@ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") ) message(STATUS "setting rpath prefix for macOS dynamic libraries") + + # add ID_PREFIX to libicudata libicui18n libicuio libicutu libicuuc + foreach(LIB_NAME libicudata libicui18n libicuio libicutu 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}/${RELEASE_TRIPLET}/lib" + LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}" + ) + endforeach() + + # add ID_PREFIX to libicui18n libicuio libicutu dependencies + foreach(LIB_NAME 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}/${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" + "${LIB_NAME}.${VERSION}.dylib" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib" + LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}" + ) + endforeach() - # 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 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}/${RELEASE_TRIPLET}/lib" + LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}" + ) + endforeach() # add ID_PREFIX to libicuuc dependencies vcpkg_execute_build_process( @@ -195,20 +127,22 @@ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib" LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}" ) + + # make install + vcpkg_execute_build_process( + COMMAND bash --noprofile --norc -c "make install" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}" + LOGNAME "make-install-${RELEASE_TRIPLET}") + message(STATUS "Package ${RELEASE_TRIPLET} done") endif() - vcpkg_execute_build_process( - COMMAND ${BASH} --noprofile --norc -c "make install" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}" - LOGNAME "make-install-${RELEASE_TRIPLET}") - message(STATUS "Package ${RELEASE_TRIPLET} done") -endif() + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + # Build debug + vcpkg_install_make() + endif() -if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - # Build debug - message(STATUS "Package ${DEBUG_TRIPLET}") +else() vcpkg_install_make() - message(STATUS "Package ${DEBUG_TRIPLET} done") endif() if(VCPKG_TARGET_IS_MINGW) From 09d20d95fb7674394c51719ff7a306d47357925d Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Thu, 18 Mar 2021 14:06:27 +0100 Subject: [PATCH 20/39] [icu] fix of copy tool dependencies on windows --- ports/icu/portfile.cmake | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 521c0a0f2d87c8..9139aa9acd91c2 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -165,18 +165,7 @@ file(GLOB TEST_LIBS ${CURRENT_PACKAGES_DIR}/debug/lib/*test*) file(REMOVE ${TEST_LIBS}) -if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - # copy icu dlls from lib to bin - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/lib/icu*${ICU_VERSION_MAJOR}.dll) - file(COPY ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) - endif() - - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/icu*d${ICU_VERSION_MAJOR}.dll) - file(COPY ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - endif() -else() +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") if(VCPKG_TARGET_IS_WINDOWS) # rename static libraries to match import libs # see https://gitlab.kitware.com/cmake/cmake/issues/16617 @@ -208,12 +197,14 @@ else() endforeach() endif() -# Install executables from ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/bin to /tools/icu/bin -vcpkg_copy_tools( - TOOL_NAMES icupkg gennorm2 gencmn genccode gensprep - SEARCH_DIR ${CURRENT_PACKAGES_DIR}/tools/icu/sbin - DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin -) +# Install executables from /tools/icu/sbin to /tools/icu/bin on unix +if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX) + vcpkg_copy_tools( + TOOL_NAMES icupkg gennorm2 gencmn genccode gensprep + SEARCH_DIR ${CURRENT_PACKAGES_DIR}/tools/icu/sbin + DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin + ) +endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools/icu/sbin @@ -223,6 +214,8 @@ file(REMOVE_RECURSE file(GLOB CROSS_COMPILE_DEFS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/config/icucross.*) file(INSTALL ${CROSS_COMPILE_DEFS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/config) +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) + # remove any remaining dlls in /lib file(GLOB DUMMY_DLLS ${CURRENT_PACKAGES_DIR}/lib/*.dll ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) if(DUMMY_DLLS) From 3c33e2c3f7e388114e847f7bacff0447a92c2080 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Thu, 18 Mar 2021 14:56:20 +0100 Subject: [PATCH 21/39] [icu] delete more folders on windows --- ports/icu/portfile.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 9139aa9acd91c2..555de6237d18fc 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -158,7 +158,8 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share ${CURRENT_PACKAGES_DIR}/debug/share ${CURRENT_PACKAGES_DIR}/lib/icu - ${CURRENT_PACKAGES_DIR}/debug/lib/icu) + ${CURRENT_PACKAGES_DIR}/debug/lib/icu + ${CURRENT_PACKAGES_DIR}/debug/lib/icud) file(GLOB TEST_LIBS ${CURRENT_PACKAGES_DIR}/lib/*test* From 681ffe1684994af0cecbed21f18c6cbaec404599 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Thu, 18 Mar 2021 14:56:56 +0100 Subject: [PATCH 22/39] [icu] copy tool dependencies manually --- ports/icu/portfile.cmake | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 555de6237d18fc..fb9b7905e14005 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -215,7 +215,20 @@ file(REMOVE_RECURSE file(GLOB CROSS_COMPILE_DEFS ${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/config/icucross.*) file(INSTALL ${CROSS_COMPILE_DEFS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/config) -vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/lib/icu*${ICU_VERSION_MAJOR}.dll) + file(COPY ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) +endif() + +# copy dlls +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/lib/icu*${ICU_VERSION_MAJOR}.dll) + file(COPY ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) +endif() +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/icu*${ICU_VERSION_MAJOR}.dll) + file(COPY ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() # remove any remaining dlls in /lib file(GLOB DUMMY_DLLS ${CURRENT_PACKAGES_DIR}/lib/*.dll ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) From 70cd3c6fef4af2b2e8adfa35f5e07a75d9641814 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Mon, 22 Mar 2021 14:45:42 +0100 Subject: [PATCH 23/39] [icu] don't copy non existing pdb files --- ports/icu/portfile.cmake | 3 --- 1 file changed, 3 deletions(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index fb9b7905e14005..74f727e82bea97 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -236,9 +236,6 @@ if(DUMMY_DLLS) file(REMOVE ${DUMMY_DLLS}) endif() -# Generates warnings about missing pdbs for icudt.dll -# This is expected because ICU database contains no executable code -vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES pthread m) # Handle copyright From 3948c697cf106b5e96df912fc2e93add2fc38d35 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Mon, 22 Mar 2021 14:46:11 +0100 Subject: [PATCH 24/39] add version files --- versions/i-/icu.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/versions/i-/icu.json b/versions/i-/icu.json index 7476aa52b77ac3..c173332ac02096 100644 --- a/versions/i-/icu.json +++ b/versions/i-/icu.json @@ -1,8 +1,8 @@ { "versions": [ { - "git-tree": "700896177a20932cabce7611bec1ae7e9807c652", - "version-string": "67.1", + "git-tree": "538bd03049e259d34c3884b17b12b75157e64484", + "version": "67.1", "port-version": 9 }, { From a9416819f6accd7c4e7f82aa096ec4a26a18c58d Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sat, 27 Mar 2021 11:04:25 +0100 Subject: [PATCH 25/39] [icu] bring vcpkg_copy_pdbs() back --- ports/icu/portfile.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 74f727e82bea97..bb0c3dbbb2a93b 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -236,6 +236,7 @@ if(DUMMY_DLLS) file(REMOVE ${DUMMY_DLLS}) endif() +vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES pthread m) # Handle copyright From e1a79f00893ca7483a7ab5535ac377824f2b1167 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sat, 27 Mar 2021 11:04:50 +0100 Subject: [PATCH 26/39] add version files --- versions/i-/icu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/i-/icu.json b/versions/i-/icu.json index c173332ac02096..77b650879a5ae3 100644 --- a/versions/i-/icu.json +++ b/versions/i-/icu.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "538bd03049e259d34c3884b17b12b75157e64484", + "git-tree": "fae04f0a989f7060ebda0a27cc5d5b4421127826", "version": "67.1", "port-version": 9 }, From 6e9ad663b936c3e5995076b3cf23c83cd4743f0a Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Fri, 2 Apr 2021 01:35:49 +0200 Subject: [PATCH 27/39] [icu] add comment --- ports/icu/portfile.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index bb0c3dbbb2a93b..e9c575da159627 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -198,7 +198,7 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") endforeach() endif() -# Install executables from /tools/icu/sbin to /tools/icu/bin on unix +# Install executables from /tools/icu/sbin to /tools/icu/bin on unix (/bin because icu require this for cross compiling) if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX) vcpkg_copy_tools( TOOL_NAMES icupkg gennorm2 gencmn genccode gensprep From 2444feb36467646cbec1e8501569662a15343ced Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Fri, 2 Apr 2021 01:36:08 +0200 Subject: [PATCH 28/39] add version files --- versions/i-/icu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/i-/icu.json b/versions/i-/icu.json index 77b650879a5ae3..0242b66dc147e8 100644 --- a/versions/i-/icu.json +++ b/versions/i-/icu.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "fae04f0a989f7060ebda0a27cc5d5b4421127826", + "git-tree": "5458ff3041d06122a6d23d46dae3b59b4e5dd3a5", "version": "67.1", "port-version": 9 }, From ba8615f15690b0d8f34bc093a979c41e8b664a85 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Thu, 15 Apr 2021 01:35:26 +0200 Subject: [PATCH 29/39] [icu] use BUILD_TRIPLET instead of VCPKG_MAKE_BUILD_TRIPLET --- ports/icu/portfile.cmake | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index e9c575da159627..ec37cdecc9d87c 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -42,15 +42,16 @@ endif() if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(VCPKG_MAKE_BUILD_TRIPLET --host=x86_64-w64-mingw32) + set(BUILD_TRIPLET --host=x86_64-w64-mingw32) else() - set(VCPKG_MAKE_BUILD_TRIPLET --host=i686-w64-mingw32) + set(BUILD_TRIPLET --host=i686-w64-mingw32) endif() endif() vcpkg_configure_make( SOURCE_PATH ${SOURCE_PATH} PROJECT_SUBPATH source + BUILD_TRIPLET ${BUILD_TRIPLET} OPTIONS ${CONFIGURE_OPTIONS} OPTIONS_RELEASE ${CONFIGURE_OPTIONS_RELEASE} OPTIONS_DEBUG ${CONFIGURE_OPTIONS_DEBUG} From 6425fa1d27c32ef8e67df5e157ea618529ea8361 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Thu, 15 Apr 2021 01:38:19 +0200 Subject: [PATCH 30/39] add version files --- versions/i-/icu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/i-/icu.json b/versions/i-/icu.json index 0242b66dc147e8..6c2e6bce9d3049 100644 --- a/versions/i-/icu.json +++ b/versions/i-/icu.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "5458ff3041d06122a6d23d46dae3b59b4e5dd3a5", + "git-tree": "0323ebfcc0136d9c4ee77bc7465df0d6da3df026", "version": "67.1", "port-version": 9 }, From 8ac9fd76db7d06b85512b1da761c67c1d0e0f9a6 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Thu, 15 Apr 2021 02:08:06 +0200 Subject: [PATCH 31/39] [icu] simply logic for build on mac --- ports/icu/portfile.cmake | 136 ++++++++++++++++++--------------------- 1 file changed, 64 insertions(+), 72 deletions(-) diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index ec37cdecc9d87c..f523e8abefc301 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -57,91 +57,83 @@ vcpkg_configure_make( OPTIONS_DEBUG ${CONFIGURE_OPTIONS_DEBUG} ) -if(VCPKG_TARGET_IS_OSX AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - # Build release - 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 - ) +if(VCPKG_TARGET_IS_OSX AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")) - message(STATUS "setting rpath prefix for macOS dynamic libraries") - - # add ID_PREFIX to libicudata libicui18n libicuio libicutu libicuuc - foreach(LIB_NAME libicudata libicui18n libicuio libicutu 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}/${RELEASE_TRIPLET}/lib" - LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}" - ) - endforeach() - - # add ID_PREFIX to libicui18n libicuio libicutu dependencies - foreach(LIB_NAME 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}/${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" - "${LIB_NAME}.${VERSION}.dylib" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib" - LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}" - ) - endforeach() + 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() - # 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}/${RELEASE_TRIPLET}/lib" - LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}" - ) - endforeach() + # 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 + ) - # add ID_PREFIX to libicuuc dependencies + message(STATUS "setting rpath prefix for macOS dynamic libraries") + + # add ID_PREFIX to libicudata libicui18n libicuio libicutu libicuuc + foreach(LIB_NAME libicudata libicui18n libicuio libicutu 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}/${RELEASE_TRIPLET}/lib" + LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}" + ) + endforeach() + + # add ID_PREFIX to libicui18n libicuio libicutu dependencies + foreach(LIB_NAME 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}/${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" - "libicuuc.${VERSION}.dylib" + "${LIB_NAME}.${VERSION}.dylib" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}/lib" LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}" ) + endforeach() - # make install + # add ID_PREFIX to remaining libicuio libicutu dependencies + foreach(LIB_NAME libicuio libicutu) vcpkg_execute_build_process( - COMMAND bash --noprofile --norc -c "make install" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}" - LOGNAME "make-install-${RELEASE_TRIPLET}") - message(STATUS "Package ${RELEASE_TRIPLET} done") - endif() + 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}/${RELEASE_TRIPLET}/lib" + LOGNAME "make-build-fix-rpath-${RELEASE_TRIPLET}" + ) + endforeach() - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - # Build debug - vcpkg_install_make() - endif() + # 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}" + ) + # make install + vcpkg_execute_build_process( + COMMAND bash --noprofile --norc -c "make install" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}" + LOGNAME "make-install-${RELEASE_TRIPLET}") + message(STATUS "Package ${RELEASE_TRIPLET} done") + else() vcpkg_install_make() endif() From 9214f9e4388862b628dfbe4f3e0fdfcbfdce1807 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Thu, 15 Apr 2021 02:08:35 +0200 Subject: [PATCH 32/39] add version files --- versions/i-/icu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/i-/icu.json b/versions/i-/icu.json index 6c2e6bce9d3049..a6b33bd18a6e5e 100644 --- a/versions/i-/icu.json +++ b/versions/i-/icu.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "0323ebfcc0136d9c4ee77bc7465df0d6da3df026", + "git-tree": "51df1d8a9eb31538a0b5a97d56bda0e4547e1067", "version": "67.1", "port-version": 9 }, From 973294067d78050e75c3606b38c274188b6e54fd Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Thu, 15 Apr 2021 20:58:03 +0200 Subject: [PATCH 33/39] Trigger Build From 7a8ae4e31c7492fe6f3f0206f3be62fdb4de3f82 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Tue, 20 Apr 2021 16:56:40 +0200 Subject: [PATCH 34/39] add version files --- versions/i-/icu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/i-/icu.json b/versions/i-/icu.json index 5f94c5a272418f..7bb611f5372044 100644 --- a/versions/i-/icu.json +++ b/versions/i-/icu.json @@ -1,7 +1,7 @@ { "versions": [ { - "git-tree": "51df1d8a9eb31538a0b5a97d56bda0e4547e1067", + "git-tree": "5c039f72ee659cc0522524889b9219615f28263a", "version": "69.1", "port-version": 9 }, From 2cf5c8f723ee8d91badb1b6a9d991ca9024e1762 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Thu, 22 Apr 2021 13:10:45 +0200 Subject: [PATCH 35/39] Trigger Build From 048b17b926cfadc2544f6f3869c84f6f88cf6fdd Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Fri, 30 Apr 2021 14:25:52 +0200 Subject: [PATCH 36/39] Trigger Build From 5b45a3e79a61b371e34f6965e79f9ee3f695c77b Mon Sep 17 00:00:00 2001 From: nicole mazzuca <83086508+strega-nil-ms@users.noreply.github.com> Date: Fri, 30 Apr 2021 18:07:34 -0700 Subject: [PATCH 37/39] Apply suggestions from code review --- docs/maintainers/vcpkg_copy_tools.md | 1 - scripts/cmake/vcpkg_copy_tools.cmake | 1 - 2 files changed, 2 deletions(-) diff --git a/docs/maintainers/vcpkg_copy_tools.md b/docs/maintainers/vcpkg_copy_tools.md index 7df0458b8c84e2..e5b562d1dc4ecb 100644 --- a/docs/maintainers/vcpkg_copy_tools.md +++ b/docs/maintainers/vcpkg_copy_tools.md @@ -11,7 +11,6 @@ vcpkg_copy_tools( [SEARCH_DIR <${CURRENT_PACKAGES_DIR}/bin>] [DESTINATION <${CURRENT_PACKAGES_DIR}/tools/${PORT}>] [AUTO_CLEAN] - [DESTINATION <${CURRENT_PACKAGES_DIR}/tools/${PORT}>] ) ``` ## Parameters diff --git a/scripts/cmake/vcpkg_copy_tools.cmake b/scripts/cmake/vcpkg_copy_tools.cmake index 1fcf4fddb3d418..f2e602018fd4c8 100644 --- a/scripts/cmake/vcpkg_copy_tools.cmake +++ b/scripts/cmake/vcpkg_copy_tools.cmake @@ -10,7 +10,6 @@ vcpkg_copy_tools( [SEARCH_DIR <${CURRENT_PACKAGES_DIR}/bin>] [DESTINATION <${CURRENT_PACKAGES_DIR}/tools/${PORT}>] [AUTO_CLEAN] - [DESTINATION <${CURRENT_PACKAGES_DIR}/tools/${PORT}>] ) ``` ## Parameters From a70426ae30054d6c2f1390ae9128d19007b00a28 Mon Sep 17 00:00:00 2001 From: autoantwort <41973254+autoantwort@users.noreply.github.com> Date: Sat, 1 May 2021 03:13:18 +0200 Subject: [PATCH 38/39] Apply suggestions from code review --- docs/maintainers/vcpkg_copy_tools.md | 3 --- scripts/cmake/vcpkg_copy_tools.cmake | 3 --- 2 files changed, 6 deletions(-) diff --git a/docs/maintainers/vcpkg_copy_tools.md b/docs/maintainers/vcpkg_copy_tools.md index e5b562d1dc4ecb..98e86e05b5d349 100644 --- a/docs/maintainers/vcpkg_copy_tools.md +++ b/docs/maintainers/vcpkg_copy_tools.md @@ -26,9 +26,6 @@ Destination to copy the tools to. This will be set to `${CURRENT_PACKAGES_DIR}/t ### AUTO_CLEAN Auto clean executables in `${CURRENT_PACKAGES_DIR}/bin` and `${CURRENT_PACKAGES_DIR}/debug/bin`. -### DESTINATION -The destination folder. This will be set to `${CURRENT_PACKAGES_DIR}/tools/${PORT}` if ommited. - ## Examples * [cpuinfo](https://github.com/microsoft/vcpkg/blob/master/ports/cpuinfo/portfile.cmake) diff --git a/scripts/cmake/vcpkg_copy_tools.cmake b/scripts/cmake/vcpkg_copy_tools.cmake index f2e602018fd4c8..ea1368da0126a4 100644 --- a/scripts/cmake/vcpkg_copy_tools.cmake +++ b/scripts/cmake/vcpkg_copy_tools.cmake @@ -25,9 +25,6 @@ Destination to copy the tools to. This will be set to `${CURRENT_PACKAGES_DIR}/t ### AUTO_CLEAN Auto clean executables in `${CURRENT_PACKAGES_DIR}/bin` and `${CURRENT_PACKAGES_DIR}/debug/bin`. -### DESTINATION -The destination folder. This will be set to `${CURRENT_PACKAGES_DIR}/tools/${PORT}` if ommited. - ## Examples * [cpuinfo](https://github.com/microsoft/vcpkg/blob/master/ports/cpuinfo/portfile.cmake) From d0ec5ba50dffe20e6df27f3e9296c1792e6718d2 Mon Sep 17 00:00:00 2001 From: Leander Schulten Date: Sat, 1 May 2021 12:42:01 +0200 Subject: [PATCH 39/39] Trigger Build