Skip to content

Commit fe1b01d

Browse files
jmschonfeldsusmonteiro
authored andcommitted
Remove ICU from the toolchain (#75262)
* Remove ICU from the toolchain * Remove icu comment from GettingStarted.md
1 parent 77d0329 commit fe1b01d

27 files changed

+1
-328
lines changed

docs/HowToGuides/GettingStarted.md

-3
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,6 @@ toolchain as a one-off, there are a couple of differences:
135135
- Before running `update-checkout`, double-check that `swift` is the only
136136
repository inside the `swift-project` directory. Otherwise,
137137
`update-checkout` may not clone the necessary dependencies.
138-
- Running `update-checkout` may fail if the `git-lfs` dependency is not
139-
installed. This may report as an error related to `icu`. A workaround is
140-
passing `--skip-repository icu` to `update-checkout`.
141138
142139
## Installing dependencies
143140

utils/build-presets.ini

-12
Original file line numberDiff line numberDiff line change
@@ -840,7 +840,6 @@ llbuild
840840
swiftpm
841841
swift-driver
842842
xctest
843-
libicu
844843
swiftdocc
845844
swiftformat
846845

@@ -854,7 +853,6 @@ install-swiftpm
854853
install-swift-driver
855854
install-swiftsyntax
856855
install-xctest
857-
install-libicu
858856
install-prefix=/usr
859857
install-sourcekit-lsp
860858
install-swiftformat
@@ -951,7 +949,6 @@ skip-test-xctest
951949
skip-test-foundation
952950
skip-test-libdispatch
953951
skip-test-playgroundsupport
954-
skip-test-libicu
955952
skip-test-indexstore-db
956953
skip-test-sourcekit-lsp
957954
skip-test-swiftdocc
@@ -1179,7 +1176,6 @@ mixin-preset=
11791176
mixin_linux_install_components_with_clang
11801177
build-subdir=buildbot_incremental
11811178

1182-
libicu
11831179
llbuild
11841180
swiftpm
11851181
swift-driver
@@ -1194,7 +1190,6 @@ install-llvm
11941190
install-static-linux-config
11951191
install-swift
11961192
install-llbuild
1197-
install-libicu
11981193
install-swiftpm
11991194
install-swift-driver
12001195
install-swiftsyntax
@@ -1788,7 +1783,6 @@ skip-test-osx
17881783
llvm-cmake-options=-DCLANG_DEFAULT_LINKER=gold
17891784

17901785
foundation
1791-
libicu
17921786
libdispatch
17931787
test
17941788

@@ -1832,17 +1826,14 @@ mixin-preset=
18321826
mixin_linux_install_components_with_clang
18331827

18341828
libdispatch
1835-
libicu
18361829
foundation
18371830
xctest
18381831
libcxx=false
18391832

1840-
install-libicu
18411833
install-foundation
18421834
install-libdispatch
18431835
install-xctest
18441836

1845-
skip-test-libicu
18461837
skip-test-foundation
18471838
skip-test-libdispatch
18481839
skip-test-xctest
@@ -2113,7 +2104,6 @@ mixin-preset=buildbot_indexstoredb_linux,sanitize
21132104
mixin-preset=
21142105
mixin_linux_install_components_with_clang
21152106

2116-
libicu
21172107
llbuild
21182108
swiftpm
21192109
xctest
@@ -2129,7 +2119,6 @@ reconfigure
21292119

21302120
install-foundation
21312121
install-libdispatch
2132-
install-libicu
21332122
install-libcxx
21342123
install-llvm
21352124
install-static-linux-config
@@ -3056,7 +3045,6 @@ mixin-preset=
30563045
[preset: linux_lldb]
30573046
lldb
30583047
foundation
3059-
libicu
30603048
libdispatch
30613049
build-ninja
30623050

utils/build-script-impl

+1-142
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,6 @@ components=(
298298
foundation
299299
libcxx
300300
libdispatch
301-
libicu
302301
libxml2
303302
zlib
304303
curl
@@ -1249,15 +1248,13 @@ FOUNDATION_SWIFTFOUNDATION_SOURCE_DIR="${WORKSPACE}/swift-foundation"
12491248
FOUNDATION_SWIFTFOUNDATIONICU_SOURCE_DIR="${WORKSPACE}/swift-foundation-icu"
12501249
LIBDISPATCH_SOURCE_DIR="${WORKSPACE}/swift-corelibs-libdispatch"
12511250
LIBDISPATCH_STATIC_SOURCE_DIR="${WORKSPACE}/swift-corelibs-libdispatch"
1252-
LIBICU_SOURCE_DIR="${WORKSPACE}/icu"
12531251
LIBCXX_SOURCE_DIR="${WORKSPACE}/llvm-project/runtimes"
12541252
SWIFT_COLLECTIONS_SOURCE_DIR="${WORKSPACE}/swift-collections"
12551253
SWIFT_PATH_TO_STRING_PROCESSING_SOURCE="${WORKSPACE}/swift-experimental-string-processing"
12561254
SWIFTSYNTAX_SOURCE_DIR="${WORKSPACE}/swift-syntax"
12571255
SWIFT_SYNTAX_SOURCE_DIR="${WORKSPACE}/swift-syntax"
12581256

12591257
[[ "${SKIP_BUILD_LIBCXX}" ]] || PRODUCTS+=(libcxx)
1260-
[[ "${SKIP_BUILD_LIBICU}" ]] || PRODUCTS+=(libicu)
12611258
[[ "${SKIP_BUILD_SWIFT}" ]] || PRODUCTS+=(swift)
12621259
[[ "${SKIP_BUILD_LLDB}" ]] || PRODUCTS+=(lldb)
12631260
[[ "${SKIP_BUILD_LIBDISPATCH}" ]] || PRODUCTS+=(libdispatch)
@@ -1345,8 +1342,6 @@ function build_directory_bin() {
13451342
libdispatch|libdispatch_static)
13461343
echo "${root}/${LIBDISPATCH_BUILD_TYPE}/bin"
13471344
;;
1348-
libicu)
1349-
;;
13501345
*)
13511346
echo "error: unknown product: ${product}"
13521347
exit 1
@@ -1485,8 +1480,6 @@ function cmake_config_opt() {
14851480
libdispatch|libdispatch_static)
14861481
echo "--config ${LIBDISPATCH_BUILD_TYPE}"
14871482
;;
1488-
libicu)
1489-
;;
14901483
*)
14911484
echo "error: unknown product: ${product}"
14921485
exit 1
@@ -2420,29 +2413,6 @@ for host in "${ALL_HOSTS[@]}"; do
24202413
continue
24212414
fi
24222415

2423-
if [[ ! "${SKIP_BUILD_LIBICU}" ]] ; then
2424-
ICU_ROOT=$(build_directory ${host} libicu)/tmp_install
2425-
ICU_LIBDIR="$(build_directory ${host} swift)/lib/swift/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
2426-
LIBICU_BUILD_ARGS=(
2427-
-DICU_ROOT:PATH=${ICU_ROOT}
2428-
-DICU_INCLUDE_DIR:PATH=${ICU_ROOT}/include
2429-
-DICU_DATA_LIBRARIES:FILEPATH=${ICU_LIBDIR}/libicudataswift.so
2430-
-DICU_DATA_LIBRARY:FILEPATH=${ICU_LIBDIR}/libicudataswift.so
2431-
-DICU_DATA_LIBRARY_DEBUG:FILEPATH=${ICU_LIBDIR}/libicudataswift.so
2432-
-DICU_DATA_LIBRARY_RELEASE:FILEPATH=${ICU_LIBDIR}/libicudataswift.so
2433-
-DICU_UC_LIBRARIES:FILEPATH=${ICU_LIBDIR}/libicuucswift.so
2434-
-DICU_UC_LIBRARY:FILEPATH=${ICU_LIBDIR}/libicuucswift.so
2435-
-DICU_UC_LIBRARY_DEBUG:FILEPATH=${ICU_LIBDIR}/libicuucswift.so
2436-
-DICU_UC_LIBRARY_RELEASE:FILEPATH=${ICU_LIBDIR}/libicuucswift.so
2437-
-DICU_I18N_LIBRARIES:FILEPATH=${ICU_LIBDIR}/libicui18nswift.so
2438-
-DICU_I18N_LIBRARY:FILEPATH=${ICU_LIBDIR}/libicui18nswift.so
2439-
-DICU_I18N_LIBRARY_DEBUG:FILEPATH=${ICU_LIBDIR}/libicui18nswift.so
2440-
-DICU_I18N_LIBRARY_RELEASE:FILEPATH=${ICU_LIBDIR}/libicui18nswift.so
2441-
)
2442-
else
2443-
LIBICU_BUILD_ARGS=()
2444-
fi
2445-
24462416
if [[ ! "${SKIP_BUILD_LIBXML2}" ]]; then
24472417
BASE_INSTALL_DIR="$(get_host_install_destdir ${host})"
24482418
LIBXML2_HEADERS="${BASE_INSTALL_DIR}/usr/include/libxml2"
@@ -2506,12 +2476,6 @@ for host in "${ALL_HOSTS[@]}"; do
25062476
call rm -rf "${build_dir}"
25072477
fi
25082478

2509-
# Set the PKG_CONFIG_PATH so that core-foundation can find the libraries and
2510-
# header files
2511-
LIBICU_BUILD_DIR="$(build_directory ${host} libicu)"
2512-
export PKG_CONFIG_PATH="${LIBICU_BUILD_DIR}/config:${PKG_CONFIG_PATH}"
2513-
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"${LIBICU_BUILD_DIR}/lib"
2514-
25152479
cmake_options=(
25162480
${cmake_options[@]}
25172481
-DCMAKE_BUILD_TYPE:STRING=${FOUNDATION_BUILD_TYPE}
@@ -2522,8 +2486,6 @@ for host in "${ALL_HOSTS[@]}"; do
25222486
-DCMAKE_Swift_FLAGS:STRING="$(common_swift_flags)"
25232487
-DCMAKE_INSTALL_PREFIX:PATH=$(get_host_install_prefix ${host})
25242488

2525-
${LIBICU_BUILD_ARGS[@]}
2526-
25272489
${LIBXML2_BUILD_ARGS[@]}
25282490

25292491
${ZLIB_BUILD_ARGS[@]}
@@ -2551,7 +2513,7 @@ for host in "${ALL_HOSTS[@]}"; do
25512513
if [[ $(is_cross_tools_host ${host}) ]] ; then
25522514
cmake_options+=("${SWIFT_TARGET_CMAKE_OPTIONS[@]}")
25532515

2554-
# Foundation looks for the ICU, libXML2 and libcurl libraries
2516+
# Foundation looks for the libXML2 and libcurl libraries
25552517
# using find_package(), so search for them in
25562518
# CROSS_COMPILE_DEPS_PATH using the CMake process for doing
25572519
# so, see the linked CMake docs for more info:
@@ -2611,62 +2573,6 @@ for host in "${ALL_HOSTS[@]}"; do
26112573
;;
26122574
esac
26132575

2614-
;;
2615-
libicu)
2616-
SWIFT_BUILD_PATH=$(build_directory ${host} swift)
2617-
LIBICU_BUILD_DIR=$(build_directory ${host} ${product})
2618-
ICU_TMPINSTALL=$LIBICU_BUILD_DIR/tmp_install
2619-
ICU_TMPLIBDIR="${SWIFT_BUILD_PATH}/lib/swift/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
2620-
if [[ "${RECONFIGURE}" || ! -f "${LIBICU_BUILD_DIR}"/config.status ]]; then
2621-
echo "Reconfiguring libicu"
2622-
if [[ "$LIBICU_BUILD_TYPE" != "Release" ]] ; then
2623-
libicu_enable_debug="--enable-debug"
2624-
else
2625-
libicu_enable_debug=""
2626-
fi
2627-
call mkdir -p "${LIBICU_BUILD_DIR}"
2628-
2629-
if [ $(true_false "${BUILD_SWIFT_STATIC_STDLIB}") == "TRUE" ]; then
2630-
libicu_enable_static="--enable-static"
2631-
else
2632-
libicu_enable_static=""
2633-
fi
2634-
2635-
with_pushd "${LIBICU_BUILD_DIR}" \
2636-
call env CXXFLAGS=-fPIC LDFLAGS='-Wl,-rpath=\$$ORIGIN' \
2637-
"${LIBICU_SOURCE_DIR}"/icu4c/source/runConfigureICU Linux \
2638-
${icu_build_variant_arg} --prefix=${ICU_TMPINSTALL} \
2639-
${libicu_enable_debug} \
2640-
--enable-renaming --with-library-suffix=swift \
2641-
--libdir=${ICU_TMPLIBDIR} \
2642-
--enable-shared --enable-static \
2643-
--enable-strict --disable-icuio \
2644-
--disable-plugins --disable-dyload --disable-extras \
2645-
--disable-samples --disable-layoutex --with-data-packaging=auto
2646-
else
2647-
echo "Skipping reconfiguration of libicu"
2648-
fi
2649-
with_pushd "${LIBICU_BUILD_DIR}" \
2650-
call make -j ${BUILD_JOBS} install
2651-
ICU_LIBDIR="$(build_directory ${host} swift)/lib/swift/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
2652-
ICU_LIBDIR_STATIC="$(build_directory ${host} swift)/lib/swift_static/${SWIFT_HOST_VARIANT}"
2653-
ICU_LIBDIR_STATIC_ARCH="$(build_directory ${host} swift)/lib/swift_static/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
2654-
# Add in the ICU renaming config into uconfig.h
2655-
call sed -e "/^#define __UCONFIG_H__/ r ${LIBICU_BUILD_DIR}/uconfig.h.prepend" -i ${ICU_TMPINSTALL}/include/unicode/uconfig.h
2656-
2657-
if [ $(true_false "${BUILD_SWIFT_STATIC_STDLIB}") == "TRUE" ]; then
2658-
# Copy the static libs into the swift_static directory
2659-
call mkdir -p "${ICU_LIBDIR_STATIC_ARCH}"
2660-
for l in uc i18n data
2661-
do
2662-
lib="${ICU_LIBDIR}/libicu${l}swift.a"
2663-
call cp "${lib}" "${ICU_LIBDIR_STATIC}"
2664-
call cp "${lib}" "${ICU_LIBDIR_STATIC_ARCH}"
2665-
done
2666-
fi
2667-
2668-
# libicu builds itself and doesn't use cmake
2669-
continue
26702576
;;
26712577
*)
26722578
echo "error: unknown product: ${product}"
@@ -2947,17 +2853,6 @@ for host in "${ALL_HOSTS[@]}"; do
29472853
# libdispatch_static
29482854
continue
29492855
;;
2950-
libicu)
2951-
if [[ "${SKIP_TEST_LIBICU}" ]]; then
2952-
continue
2953-
fi
2954-
LIBICU_BUILD_DIR=$(build_directory ${host} ${product})
2955-
echo "--- Running tests for ${product} ---"
2956-
with_pushd "${LIBICU_BUILD_DIR}/test" \
2957-
call make -j ${BUILD_JOBS}
2958-
echo "--- Finished tests for ${product} ---"
2959-
continue
2960-
;;
29612856
*)
29622857
echo "error: unknown product: ${product}"
29632858
exit 1
@@ -3136,42 +3031,6 @@ for host in "${ALL_HOSTS[@]}"; do
31363031
;;
31373032
esac
31383033
;;
3139-
libicu)
3140-
if [[ -z "${INSTALL_LIBICU}" ]]; then
3141-
continue
3142-
fi
3143-
echo "--- Installing ${product} ---"
3144-
ICU_BUILD_DIR=$(build_directory ${host} ${product})
3145-
ICU_INSTALL_DIR="$(get_host_install_destdir ${host})$(get_host_install_prefix ${host})"
3146-
ICU_LIBDIR="$(build_directory ${host} swift)/lib/swift/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
3147-
LIBICU_DEST_DIR="${ICU_INSTALL_DIR}lib/swift/${SWIFT_HOST_VARIANT}"
3148-
call mkdir -p ${LIBICU_DEST_DIR}
3149-
3150-
for l in uc i18n data
3151-
do
3152-
lib=${ICU_LIBDIR}/libicu${l}swift
3153-
echo "${lib} => ${LIBICU_DEST_DIR}"
3154-
call cp -d ${lib}.so ${lib}.so.* ${LIBICU_DEST_DIR}
3155-
done
3156-
3157-
if [ $(true_false "${BUILD_SWIFT_STATIC_STDLIB}") == "TRUE" ]; then
3158-
LIBICU_DEST_DIR_STATIC="${ICU_INSTALL_DIR}lib/swift_static/${SWIFT_HOST_VARIANT}"
3159-
call mkdir -p ${LIBICU_DEST_DIR_STATIC}
3160-
for l in uc i18n data
3161-
do
3162-
lib=${ICU_LIBDIR}/libicu${l}swift
3163-
echo "${lib} => ${LIBICU_DEST_DIR_STATIC}"
3164-
call cp -d ${lib}.a ${LIBICU_DEST_DIR_STATIC}
3165-
done
3166-
fi
3167-
3168-
ICU_TMP_INSTALL_DIR="${ICU_BUILD_DIR}/tmp_install"
3169-
call mkdir -p "${ICU_INSTALL_DIR}include"
3170-
call cp -a "${ICU_TMP_INSTALL_DIR}/include/unicode" "${ICU_INSTALL_DIR}include"
3171-
call mkdir -p "${ICU_INSTALL_DIR}share/icuswift"
3172-
call cp -a "${ICU_TMP_INSTALL_DIR}/share/icuswift" "${ICU_INSTALL_DIR}share"
3173-
continue
3174-
;;
31753034
*)
31763035
echo "error: unknown product: ${product}"
31773036
exit 1

0 commit comments

Comments
 (0)