Skip to content

Commit 0794a22

Browse files
jmschonfeldfinagolfin
authored andcommitted
Remove ICU from the toolchain (swiftlang#75262)
* Remove ICU from the toolchain
1 parent 8644d24 commit 0794a22

26 files changed

+1
-310
lines changed

utils/build-presets.ini

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -842,7 +842,6 @@ swift-driver
842842
swift-testing
843843
swift-testing-macros
844844
xctest
845-
libicu
846845
swiftdocc
847846
swiftformat
848847

@@ -858,7 +857,6 @@ install-swiftsyntax
858857
install-swift-testing
859858
install-swift-testing-macros
860859
install-xctest
861-
install-libicu
862860
install-prefix=/usr
863861
install-sourcekit-lsp
864862
install-swiftformat
@@ -952,7 +950,6 @@ skip-test-xctest
952950
skip-test-foundation
953951
skip-test-libdispatch
954952
skip-test-playgroundsupport
955-
skip-test-libicu
956953
skip-test-indexstore-db
957954
skip-test-sourcekit-lsp
958955
skip-test-swiftdocc
@@ -1172,7 +1169,6 @@ mixin-preset=
11721169
mixin_linux_install_components_with_clang
11731170
build-subdir=buildbot_incremental
11741171

1175-
libicu
11761172
llbuild
11771173
swiftpm
11781174
swift-driver
@@ -1190,7 +1186,6 @@ install-llvm
11901186
install-static-linux-config
11911187
install-swift
11921188
install-llbuild
1193-
install-libicu
11941189
install-swiftpm
11951190
install-swift-driver
11961191
install-swiftsyntax
@@ -1770,7 +1765,6 @@ skip-test-osx
17701765
llvm-cmake-options=-DCLANG_DEFAULT_LINKER=gold
17711766

17721767
foundation
1773-
libicu
17741768
libdispatch
17751769
test
17761770

@@ -1814,17 +1808,14 @@ mixin-preset=
18141808
mixin_linux_install_components_with_clang
18151809

18161810
libdispatch
1817-
libicu
18181811
foundation
18191812
xctest
18201813
libcxx=false
18211814

1822-
install-libicu
18231815
install-foundation
18241816
install-libdispatch
18251817
install-xctest
18261818

1827-
skip-test-libicu
18281819
skip-test-foundation
18291820
skip-test-libdispatch
18301821
skip-test-xctest
@@ -2090,7 +2081,6 @@ mixin-preset=buildbot_indexstoredb_linux,sanitize
20902081
mixin-preset=
20912082
mixin_linux_install_components_with_clang
20922083

2093-
libicu
20942084
llbuild
20952085
swiftpm
20962086
xctest
@@ -2106,7 +2096,6 @@ reconfigure
21062096

21072097
install-foundation
21082098
install-libdispatch
2109-
install-libicu
21102099
install-libcxx
21112100
install-llvm
21122101
install-static-linux-config
@@ -3027,7 +3016,6 @@ mixin-preset=
30273016
[preset: linux_lldb]
30283017
lldb
30293018
foundation
3030-
libicu
30313019
libdispatch
30323020
build-ninja
30333021

utils/build-script-impl

Lines changed: 1 addition & 142 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,6 @@ components=(
299299
foundation
300300
libcxx
301301
libdispatch
302-
libicu
303302
libxml2
304303
zlib
305304
curl
@@ -1260,15 +1259,13 @@ FOUNDATION_SWIFTFOUNDATION_SOURCE_DIR="${WORKSPACE}/swift-foundation"
12601259
FOUNDATION_SWIFTFOUNDATIONICU_SOURCE_DIR="${WORKSPACE}/swift-foundation-icu"
12611260
LIBDISPATCH_SOURCE_DIR="${WORKSPACE}/swift-corelibs-libdispatch"
12621261
LIBDISPATCH_STATIC_SOURCE_DIR="${WORKSPACE}/swift-corelibs-libdispatch"
1263-
LIBICU_SOURCE_DIR="${WORKSPACE}/icu"
12641262
LIBCXX_SOURCE_DIR="${WORKSPACE}/llvm-project/runtimes"
12651263
SWIFT_COLLECTIONS_SOURCE_DIR="${WORKSPACE}/swift-collections"
12661264
SWIFT_PATH_TO_STRING_PROCESSING_SOURCE="${WORKSPACE}/swift-experimental-string-processing"
12671265
SWIFTSYNTAX_SOURCE_DIR="${WORKSPACE}/swift-syntax"
12681266
SWIFT_SYNTAX_SOURCE_DIR="${WORKSPACE}/swift-syntax"
12691267

12701268
[[ "${SKIP_BUILD_LIBCXX}" ]] || PRODUCTS+=(libcxx)
1271-
[[ "${SKIP_BUILD_LIBICU}" ]] || PRODUCTS+=(libicu)
12721269
[[ "${SKIP_BUILD_SWIFT}" ]] || PRODUCTS+=(swift)
12731270
[[ "${SKIP_BUILD_LLDB}" ]] || PRODUCTS+=(lldb)
12741271
[[ "${SKIP_BUILD_LIBDISPATCH}" ]] || PRODUCTS+=(libdispatch)
@@ -1357,8 +1354,6 @@ function build_directory_bin() {
13571354
libdispatch|libdispatch_static)
13581355
echo "${root}/${LIBDISPATCH_BUILD_TYPE}/bin"
13591356
;;
1360-
libicu)
1361-
;;
13621357
*)
13631358
echo "error: unknown product: ${product}"
13641359
exit 1
@@ -1497,8 +1492,6 @@ function cmake_config_opt() {
14971492
libdispatch|libdispatch_static)
14981493
echo "--config ${LIBDISPATCH_BUILD_TYPE}"
14991494
;;
1500-
libicu)
1501-
;;
15021495
*)
15031496
echo "error: unknown product: ${product}"
15041497
exit 1
@@ -2457,29 +2450,6 @@ for host in "${ALL_HOSTS[@]}"; do
24572450
continue
24582451
fi
24592452

2460-
if [[ ! "${SKIP_BUILD_LIBICU}" ]] ; then
2461-
ICU_ROOT=$(build_directory ${host} libicu)/tmp_install
2462-
ICU_LIBDIR="$(build_directory ${host} swift)/lib/swift/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
2463-
LIBICU_BUILD_ARGS=(
2464-
-DICU_ROOT:PATH=${ICU_ROOT}
2465-
-DICU_INCLUDE_DIR:PATH=${ICU_ROOT}/include
2466-
-DICU_DATA_LIBRARIES:FILEPATH=${ICU_LIBDIR}/libicudataswift.so
2467-
-DICU_DATA_LIBRARY:FILEPATH=${ICU_LIBDIR}/libicudataswift.so
2468-
-DICU_DATA_LIBRARY_DEBUG:FILEPATH=${ICU_LIBDIR}/libicudataswift.so
2469-
-DICU_DATA_LIBRARY_RELEASE:FILEPATH=${ICU_LIBDIR}/libicudataswift.so
2470-
-DICU_UC_LIBRARIES:FILEPATH=${ICU_LIBDIR}/libicuucswift.so
2471-
-DICU_UC_LIBRARY:FILEPATH=${ICU_LIBDIR}/libicuucswift.so
2472-
-DICU_UC_LIBRARY_DEBUG:FILEPATH=${ICU_LIBDIR}/libicuucswift.so
2473-
-DICU_UC_LIBRARY_RELEASE:FILEPATH=${ICU_LIBDIR}/libicuucswift.so
2474-
-DICU_I18N_LIBRARIES:FILEPATH=${ICU_LIBDIR}/libicui18nswift.so
2475-
-DICU_I18N_LIBRARY:FILEPATH=${ICU_LIBDIR}/libicui18nswift.so
2476-
-DICU_I18N_LIBRARY_DEBUG:FILEPATH=${ICU_LIBDIR}/libicui18nswift.so
2477-
-DICU_I18N_LIBRARY_RELEASE:FILEPATH=${ICU_LIBDIR}/libicui18nswift.so
2478-
)
2479-
else
2480-
LIBICU_BUILD_ARGS=()
2481-
fi
2482-
24832453
if [[ ! "${SKIP_BUILD_LIBXML2}" ]]; then
24842454
BASE_INSTALL_DIR="$(get_host_install_destdir ${host})"
24852455
LIBXML2_HEADERS="${BASE_INSTALL_DIR}/usr/include/libxml2"
@@ -2543,12 +2513,6 @@ for host in "${ALL_HOSTS[@]}"; do
25432513
call rm -rf "${build_dir}"
25442514
fi
25452515

2546-
# Set the PKG_CONFIG_PATH so that core-foundation can find the libraries and
2547-
# header files
2548-
LIBICU_BUILD_DIR="$(build_directory ${host} libicu)"
2549-
export PKG_CONFIG_PATH="${LIBICU_BUILD_DIR}/config:${PKG_CONFIG_PATH}"
2550-
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"${LIBICU_BUILD_DIR}/lib"
2551-
25522516
cmake_options=(
25532517
${cmake_options[@]}
25542518
-DCMAKE_BUILD_TYPE:STRING=${FOUNDATION_BUILD_TYPE}
@@ -2559,8 +2523,6 @@ for host in "${ALL_HOSTS[@]}"; do
25592523
-DCMAKE_Swift_FLAGS:STRING="$(common_swift_flags)"
25602524
-DCMAKE_INSTALL_PREFIX:PATH=$(get_host_install_prefix ${host})
25612525

2562-
${LIBICU_BUILD_ARGS[@]}
2563-
25642526
${LIBXML2_BUILD_ARGS[@]}
25652527

25662528
${ZLIB_BUILD_ARGS[@]}
@@ -2588,7 +2550,7 @@ for host in "${ALL_HOSTS[@]}"; do
25882550
if [[ $(is_cross_tools_host ${host}) ]] ; then
25892551
cmake_options+=("${SWIFT_TARGET_CMAKE_OPTIONS[@]}")
25902552

2591-
# Foundation looks for the ICU, libXML2 and libcurl libraries
2553+
# Foundation looks for the libXML2 and libcurl libraries
25922554
# using find_package(), so search for them in
25932555
# CROSS_COMPILE_DEPS_PATH using the CMake process for doing
25942556
# so, see the linked CMake docs for more info:
@@ -2648,62 +2610,6 @@ for host in "${ALL_HOSTS[@]}"; do
26482610
;;
26492611
esac
26502612

2651-
;;
2652-
libicu)
2653-
SWIFT_BUILD_PATH=$(build_directory ${host} swift)
2654-
LIBICU_BUILD_DIR=$(build_directory ${host} ${product})
2655-
ICU_TMPINSTALL=$LIBICU_BUILD_DIR/tmp_install
2656-
ICU_TMPLIBDIR="${SWIFT_BUILD_PATH}/lib/swift/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
2657-
if [[ "${RECONFIGURE}" || ! -f "${LIBICU_BUILD_DIR}"/config.status ]]; then
2658-
echo "Reconfiguring libicu"
2659-
if [[ "$LIBICU_BUILD_TYPE" != "Release" ]] ; then
2660-
libicu_enable_debug="--enable-debug"
2661-
else
2662-
libicu_enable_debug=""
2663-
fi
2664-
call mkdir -p "${LIBICU_BUILD_DIR}"
2665-
2666-
if [ $(true_false "${BUILD_SWIFT_STATIC_STDLIB}") == "TRUE" ]; then
2667-
libicu_enable_static="--enable-static"
2668-
else
2669-
libicu_enable_static=""
2670-
fi
2671-
2672-
with_pushd "${LIBICU_BUILD_DIR}" \
2673-
call env CXXFLAGS=-fPIC LDFLAGS='-Wl,-rpath=\$$ORIGIN' \
2674-
"${LIBICU_SOURCE_DIR}"/icu4c/source/runConfigureICU Linux \
2675-
${icu_build_variant_arg} --prefix=${ICU_TMPINSTALL} \
2676-
${libicu_enable_debug} \
2677-
--enable-renaming --with-library-suffix=swift \
2678-
--libdir=${ICU_TMPLIBDIR} \
2679-
--enable-shared --enable-static \
2680-
--enable-strict --disable-icuio \
2681-
--disable-plugins --disable-dyload --disable-extras \
2682-
--disable-samples --disable-layoutex --with-data-packaging=auto
2683-
else
2684-
echo "Skipping reconfiguration of libicu"
2685-
fi
2686-
with_pushd "${LIBICU_BUILD_DIR}" \
2687-
call make -j ${BUILD_JOBS} install
2688-
ICU_LIBDIR="$(build_directory ${host} swift)/lib/swift/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
2689-
ICU_LIBDIR_STATIC="$(build_directory ${host} swift)/lib/swift_static/${SWIFT_HOST_VARIANT}"
2690-
ICU_LIBDIR_STATIC_ARCH="$(build_directory ${host} swift)/lib/swift_static/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
2691-
# Add in the ICU renaming config into uconfig.h
2692-
call sed -e "/^#define __UCONFIG_H__/ r ${LIBICU_BUILD_DIR}/uconfig.h.prepend" -i ${ICU_TMPINSTALL}/include/unicode/uconfig.h
2693-
2694-
if [ $(true_false "${BUILD_SWIFT_STATIC_STDLIB}") == "TRUE" ]; then
2695-
# Copy the static libs into the swift_static directory
2696-
call mkdir -p "${ICU_LIBDIR_STATIC_ARCH}"
2697-
for l in uc i18n data
2698-
do
2699-
lib="${ICU_LIBDIR}/libicu${l}swift.a"
2700-
call cp "${lib}" "${ICU_LIBDIR_STATIC}"
2701-
call cp "${lib}" "${ICU_LIBDIR_STATIC_ARCH}"
2702-
done
2703-
fi
2704-
2705-
# libicu builds itself and doesn't use cmake
2706-
continue
27072613
;;
27082614
*)
27092615
echo "error: unknown product: ${product}"
@@ -2979,17 +2885,6 @@ for host in "${ALL_HOSTS[@]}"; do
29792885
# libdispatch_static
29802886
continue
29812887
;;
2982-
libicu)
2983-
if [[ "${SKIP_TEST_LIBICU}" ]]; then
2984-
continue
2985-
fi
2986-
LIBICU_BUILD_DIR=$(build_directory ${host} ${product})
2987-
echo "--- Running tests for ${product} ---"
2988-
with_pushd "${LIBICU_BUILD_DIR}/test" \
2989-
call make -j ${BUILD_JOBS}
2990-
echo "--- Finished tests for ${product} ---"
2991-
continue
2992-
;;
29932888
*)
29942889
echo "error: unknown product: ${product}"
29952890
exit 1
@@ -3151,42 +3046,6 @@ for host in "${ALL_HOSTS[@]}"; do
31513046
;;
31523047
esac
31533048
;;
3154-
libicu)
3155-
if [[ -z "${INSTALL_LIBICU}" ]]; then
3156-
continue
3157-
fi
3158-
echo "--- Installing ${product} ---"
3159-
ICU_BUILD_DIR=$(build_directory ${host} ${product})
3160-
ICU_INSTALL_DIR="$(get_host_install_destdir ${host})$(get_host_install_prefix ${host})"
3161-
ICU_LIBDIR="$(build_directory ${host} swift)/lib/swift/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
3162-
LIBICU_DEST_DIR="${ICU_INSTALL_DIR}lib/swift/${SWIFT_HOST_VARIANT}"
3163-
call mkdir -p ${LIBICU_DEST_DIR}
3164-
3165-
for l in uc i18n data
3166-
do
3167-
lib=${ICU_LIBDIR}/libicu${l}swift
3168-
echo "${lib} => ${LIBICU_DEST_DIR}"
3169-
call cp -d ${lib}.so ${lib}.so.* ${LIBICU_DEST_DIR}
3170-
done
3171-
3172-
if [ $(true_false "${BUILD_SWIFT_STATIC_STDLIB}") == "TRUE" ]; then
3173-
LIBICU_DEST_DIR_STATIC="${ICU_INSTALL_DIR}lib/swift_static/${SWIFT_HOST_VARIANT}"
3174-
call mkdir -p ${LIBICU_DEST_DIR_STATIC}
3175-
for l in uc i18n data
3176-
do
3177-
lib=${ICU_LIBDIR}/libicu${l}swift
3178-
echo "${lib} => ${LIBICU_DEST_DIR_STATIC}"
3179-
call cp -d ${lib}.a ${LIBICU_DEST_DIR_STATIC}
3180-
done
3181-
fi
3182-
3183-
ICU_TMP_INSTALL_DIR="${ICU_BUILD_DIR}/tmp_install"
3184-
call mkdir -p "${ICU_INSTALL_DIR}include"
3185-
call cp -a "${ICU_TMP_INSTALL_DIR}/include/unicode" "${ICU_INSTALL_DIR}include"
3186-
call mkdir -p "${ICU_INSTALL_DIR}share/icuswift"
3187-
call cp -a "${ICU_TMP_INSTALL_DIR}/share/icuswift" "${ICU_INSTALL_DIR}share"
3188-
continue
3189-
;;
31903049
*)
31913050
echo "error: unknown product: ${product}"
31923051
exit 1

utils/build.ps1

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1320,41 +1320,6 @@ function Build-CURL([Platform]$Platform, $Arch) {
13201320
})
13211321
}
13221322

1323-
function Build-ICU([Platform]$Platform, $Arch) {
1324-
$ArchName = $Arch.LLVMName
1325-
1326-
if (-not $ToBatch) {
1327-
if (-not (Test-Path -Path "$SourceCache\icu\icu4c\CMakeLists.txt")) {
1328-
Copy-Item $SourceCache\swift-installer-scripts\shared\ICU\CMakeLists.txt $SourceCache\icu\icu4c\
1329-
Copy-Item $SourceCache\swift-installer-scripts\shared\ICU\icupkg.inc.cmake $SourceCache\icu\icu4c\
1330-
}
1331-
}
1332-
1333-
if ($Platform -eq "Windows" -and (($Arch.CMakeName -eq $BuildArch.CMakeName) -or ($Arch.CMakeName -ne "ARM64"))) {
1334-
$BuildToolsDefines = @{BUILD_TOOLS = "YES"}
1335-
} else {
1336-
$BuildToolsDefines = @{
1337-
BUILD_TOOLS = "NO";
1338-
ICU_TOOLS_DIR = "$($BuildArch.BinaryCache)\windows\icu-69.1"
1339-
}
1340-
}
1341-
1342-
Build-CMakeProject `
1343-
-Src $SourceCache\icu\icu4c `
1344-
-Bin "$($Arch.BinaryCache)\$Platform\icu-69.1" `
1345-
-InstallTo "$LibraryRoot\icu-69.1\usr" `
1346-
-Arch $Arch `
1347-
-Platform $Platform `
1348-
-UseMSVCCompilers C,CXX `
1349-
-BuildTargets default `
1350-
-Defines ($BuildToolsDefines + @{
1351-
BUILD_SHARED_LIBS = "NO";
1352-
CMAKE_SYSTEM_NAME = if ($Platform -eq "Windows") { "Windows" } else { "Android" };
1353-
CMAKE_INSTALL_BINDIR = "bin/$Platform/$ArchName";
1354-
CMAKE_INSTALL_LIBDIR = "lib/$Platform/$ArchName";
1355-
})
1356-
}
1357-
13581323
function Build-Runtime([Platform]$Platform, $Arch) {
13591324
Isolate-EnvVars {
13601325
$env:Path = "$($BuildArch.BinaryCache)\cmark-gfm-0.29.0.gfm.13\src;$(Get-PinnedToolchainRuntime);${env:Path}"
@@ -1443,15 +1408,7 @@ function Build-Foundation([Platform]$Platform, $Arch, [switch]$Test = $false) {
14431408
-UseBuiltCompilers ASM,C,CXX,Swift `
14441409
-BuildTargets $Targets `
14451410
-Defines (@{
1446-
# Turn off safeseh for lld as it has safeseh enabled by default
1447-
# and fails with an ICU data object file icudt69l_dat.obj. This
1448-
# matters to X86 only.
1449-
CMAKE_Swift_FLAGS = if ($Arch -eq $ArchX86) { @("-Xlinker", "/SAFESEH:NO") } else { "" };
14501411
CURL_DIR = "$LibraryRoot\curl-8.4.0\usr\lib\$Platform\$ShortArch\cmake\CURL";
1451-
ICU_DATA_LIBRARY_RELEASE = "$LibraryRoot\icu-69.1\usr\lib\$Platform\$ShortArch\sicudt69.lib";
1452-
ICU_I18N_LIBRARY_RELEASE = "$LibraryRoot\icu-69.1\usr\lib\$Platform\$ShortArch\sicuin69.lib";
1453-
ICU_ROOT = "$LibraryRoot\icu-69.1\usr";
1454-
ICU_UC_LIBRARY_RELEASE = "$LibraryRoot\icu-69.1\usr\lib\$Platform\$ShortArch\sicuuc69.lib";
14551412
LIBXML2_LIBRARY = "$LibraryRoot\libxml2-2.11.5\usr\lib\$Platform\$ShortArch\libxml2s.lib";
14561413
LIBXML2_INCLUDE_DIR = "$LibraryRoot\libxml2-2.11.5\usr\include\libxml2";
14571414
LIBXML2_DEFINITIONS = "/DLIBXML_STATIC";
@@ -2159,7 +2116,6 @@ if (-not $SkipBuild) {
21592116
Invoke-BuildStep Build-ZLib Windows $Arch
21602117
Invoke-BuildStep Build-XML2 Windows $Arch
21612118
Invoke-BuildStep Build-CURL Windows $Arch
2162-
Invoke-BuildStep Build-ICU Windows $Arch
21632119
Invoke-BuildStep Build-LLVM Windows $Arch
21642120

21652121
# Build platform: SDK, Redist and XCTest

0 commit comments

Comments
 (0)