Skip to content

Commit f4db3a2

Browse files
authored
Merge pull request #76613 from finagolfin/link-icu
[6.0.x] Remove libicu build and update list of Swift runtime libraries to be de-duplicated
2 parents 7fb200b + 92d5c76 commit f4db3a2

27 files changed

+3
-312
lines changed

lib/DriverTool/autolink_extract_main.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ int autolink_extract_main(ArrayRef<const char *> Args, const char *Argv0,
228228
"-lswiftCore",
229229
"-lswift_Concurrency",
230230
"-lswift_StringProcessing",
231-
"-lswift_RegexBuilder",
231+
"-lswiftRegexBuilder",
232232
"-lswift_RegexParser",
233233
"-lswift_Backtracing",
234234
"-lswiftSynchronization",
@@ -250,12 +250,9 @@ int autolink_extract_main(ArrayRef<const char *> Args, const char *Argv0,
250250
"-lcurl",
251251
"-lxml2",
252252
"-luuid",
253+
"-lTesting",
253254
// XCTest runtime libs (must be first due to http://github.com/apple/swift-corelibs-xctest/issues/432)
254255
"-lXCTest",
255-
// ICU Swift runtime libs
256-
"-licui18nswift",
257-
"-licuucswift",
258-
"-licudataswift",
259256
// Common-use ordering-agnostic Linux system libs
260257
"-lm",
261258
"-lpthread",

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
@@ -954,7 +952,6 @@ skip-test-xctest
954952
skip-test-foundation
955953
skip-test-libdispatch
956954
skip-test-playgroundsupport
957-
skip-test-libicu
958955
skip-test-indexstore-db
959956
skip-test-sourcekit-lsp
960957
skip-test-swiftdocc
@@ -1181,7 +1178,6 @@ mixin-preset=
11811178
mixin_linux_install_components_with_clang
11821179
build-subdir=buildbot_incremental
11831180

1184-
libicu
11851181
llbuild
11861182
swiftpm
11871183
swift-driver
@@ -1199,7 +1195,6 @@ install-llvm
11991195
install-static-linux-config
12001196
install-swift
12011197
install-llbuild
1202-
install-libicu
12031198
install-swiftpm
12041199
install-swift-driver
12051200
install-swiftsyntax
@@ -1779,7 +1774,6 @@ skip-test-osx
17791774
llvm-cmake-options=-DCLANG_DEFAULT_LINKER=gold
17801775

17811776
foundation
1782-
libicu
17831777
libdispatch
17841778
test
17851779

@@ -1823,17 +1817,14 @@ mixin-preset=
18231817
mixin_linux_install_components_with_clang
18241818

18251819
libdispatch
1826-
libicu
18271820
foundation
18281821
xctest
18291822
libcxx=false
18301823

1831-
install-libicu
18321824
install-foundation
18331825
install-libdispatch
18341826
install-xctest
18351827

1836-
skip-test-libicu
18371828
skip-test-foundation
18381829
skip-test-libdispatch
18391830
skip-test-xctest
@@ -2104,7 +2095,6 @@ mixin-preset=buildbot_indexstoredb_linux,sanitize
21042095
mixin-preset=
21052096
mixin_linux_install_components_with_clang
21062097

2107-
libicu
21082098
llbuild
21092099
swiftpm
21102100
xctest
@@ -2120,7 +2110,6 @@ reconfigure
21202110

21212111
install-foundation
21222112
install-libdispatch
2123-
install-libicu
21242113
install-libcxx
21252114
install-llvm
21262115
install-static-linux-config
@@ -3047,7 +3036,6 @@ mixin-preset=
30473036
[preset: linux_lldb]
30483037
lldb
30493038
foundation
3050-
libicu
30513039
libdispatch
30523040
build-ninja
30533041

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
@@ -2462,29 +2455,6 @@ for host in "${ALL_HOSTS[@]}"; do
24622455
continue
24632456
fi
24642457

2465-
if [[ ! "${SKIP_BUILD_LIBICU}" ]] ; then
2466-
ICU_ROOT=$(build_directory ${host} libicu)/tmp_install
2467-
ICU_LIBDIR="$(build_directory ${host} swift)/lib/swift/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
2468-
LIBICU_BUILD_ARGS=(
2469-
-DICU_ROOT:PATH=${ICU_ROOT}
2470-
-DICU_INCLUDE_DIR:PATH=${ICU_ROOT}/include
2471-
-DICU_DATA_LIBRARIES:FILEPATH=${ICU_LIBDIR}/libicudataswift.so
2472-
-DICU_DATA_LIBRARY:FILEPATH=${ICU_LIBDIR}/libicudataswift.so
2473-
-DICU_DATA_LIBRARY_DEBUG:FILEPATH=${ICU_LIBDIR}/libicudataswift.so
2474-
-DICU_DATA_LIBRARY_RELEASE:FILEPATH=${ICU_LIBDIR}/libicudataswift.so
2475-
-DICU_UC_LIBRARIES:FILEPATH=${ICU_LIBDIR}/libicuucswift.so
2476-
-DICU_UC_LIBRARY:FILEPATH=${ICU_LIBDIR}/libicuucswift.so
2477-
-DICU_UC_LIBRARY_DEBUG:FILEPATH=${ICU_LIBDIR}/libicuucswift.so
2478-
-DICU_UC_LIBRARY_RELEASE:FILEPATH=${ICU_LIBDIR}/libicuucswift.so
2479-
-DICU_I18N_LIBRARIES:FILEPATH=${ICU_LIBDIR}/libicui18nswift.so
2480-
-DICU_I18N_LIBRARY:FILEPATH=${ICU_LIBDIR}/libicui18nswift.so
2481-
-DICU_I18N_LIBRARY_DEBUG:FILEPATH=${ICU_LIBDIR}/libicui18nswift.so
2482-
-DICU_I18N_LIBRARY_RELEASE:FILEPATH=${ICU_LIBDIR}/libicui18nswift.so
2483-
)
2484-
else
2485-
LIBICU_BUILD_ARGS=()
2486-
fi
2487-
24882458
if [[ ! "${SKIP_BUILD_LIBXML2}" ]]; then
24892459
BASE_INSTALL_DIR="$(get_host_install_destdir ${host})"
24902460
LIBXML2_HEADERS="${BASE_INSTALL_DIR}/usr/include/libxml2"
@@ -2548,12 +2518,6 @@ for host in "${ALL_HOSTS[@]}"; do
25482518
call rm -rf "${build_dir}"
25492519
fi
25502520

2551-
# Set the PKG_CONFIG_PATH so that core-foundation can find the libraries and
2552-
# header files
2553-
LIBICU_BUILD_DIR="$(build_directory ${host} libicu)"
2554-
export PKG_CONFIG_PATH="${LIBICU_BUILD_DIR}/config:${PKG_CONFIG_PATH}"
2555-
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"${LIBICU_BUILD_DIR}/lib"
2556-
25572521
cmake_options=(
25582522
${cmake_options[@]}
25592523
-DCMAKE_BUILD_TYPE:STRING=${FOUNDATION_BUILD_TYPE}
@@ -2564,8 +2528,6 @@ for host in "${ALL_HOSTS[@]}"; do
25642528
-DCMAKE_Swift_FLAGS:STRING="$(common_swift_flags)"
25652529
-DCMAKE_INSTALL_PREFIX:PATH=$(get_host_install_prefix ${host})
25662530

2567-
${LIBICU_BUILD_ARGS[@]}
2568-
25692531
${LIBXML2_BUILD_ARGS[@]}
25702532

25712533
${ZLIB_BUILD_ARGS[@]}
@@ -2593,7 +2555,7 @@ for host in "${ALL_HOSTS[@]}"; do
25932555
if [[ $(is_cross_tools_host ${host}) ]] ; then
25942556
cmake_options+=("${SWIFT_TARGET_CMAKE_OPTIONS[@]}")
25952557

2596-
# Foundation looks for the ICU, libXML2 and libcurl libraries
2558+
# Foundation looks for the libXML2 and libcurl libraries
25972559
# using find_package(), so search for them in
25982560
# CROSS_COMPILE_DEPS_PATH using the CMake process for doing
25992561
# so, see the linked CMake docs for more info:
@@ -2653,62 +2615,6 @@ for host in "${ALL_HOSTS[@]}"; do
26532615
;;
26542616
esac
26552617

2656-
;;
2657-
libicu)
2658-
SWIFT_BUILD_PATH=$(build_directory ${host} swift)
2659-
LIBICU_BUILD_DIR=$(build_directory ${host} ${product})
2660-
ICU_TMPINSTALL=$LIBICU_BUILD_DIR/tmp_install
2661-
ICU_TMPLIBDIR="${SWIFT_BUILD_PATH}/lib/swift/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
2662-
if [[ "${RECONFIGURE}" || ! -f "${LIBICU_BUILD_DIR}"/config.status ]]; then
2663-
echo "Reconfiguring libicu"
2664-
if [[ "$LIBICU_BUILD_TYPE" != "Release" ]] ; then
2665-
libicu_enable_debug="--enable-debug"
2666-
else
2667-
libicu_enable_debug=""
2668-
fi
2669-
call mkdir -p "${LIBICU_BUILD_DIR}"
2670-
2671-
if [ $(true_false "${BUILD_SWIFT_STATIC_STDLIB}") == "TRUE" ]; then
2672-
libicu_enable_static="--enable-static"
2673-
else
2674-
libicu_enable_static=""
2675-
fi
2676-
2677-
with_pushd "${LIBICU_BUILD_DIR}" \
2678-
call env CXXFLAGS=-fPIC LDFLAGS='-Wl,-rpath=\$$ORIGIN' \
2679-
"${LIBICU_SOURCE_DIR}"/icu4c/source/runConfigureICU Linux \
2680-
${icu_build_variant_arg} --prefix=${ICU_TMPINSTALL} \
2681-
${libicu_enable_debug} \
2682-
--enable-renaming --with-library-suffix=swift \
2683-
--libdir=${ICU_TMPLIBDIR} \
2684-
--enable-shared --enable-static \
2685-
--enable-strict --disable-icuio \
2686-
--disable-plugins --disable-dyload --disable-extras \
2687-
--disable-samples --disable-layoutex --with-data-packaging=auto
2688-
else
2689-
echo "Skipping reconfiguration of libicu"
2690-
fi
2691-
with_pushd "${LIBICU_BUILD_DIR}" \
2692-
call make -j ${BUILD_JOBS} install
2693-
ICU_LIBDIR="$(build_directory ${host} swift)/lib/swift/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
2694-
ICU_LIBDIR_STATIC="$(build_directory ${host} swift)/lib/swift_static/${SWIFT_HOST_VARIANT}"
2695-
ICU_LIBDIR_STATIC_ARCH="$(build_directory ${host} swift)/lib/swift_static/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
2696-
# Add in the ICU renaming config into uconfig.h
2697-
call sed -e "/^#define __UCONFIG_H__/ r ${LIBICU_BUILD_DIR}/uconfig.h.prepend" -i ${ICU_TMPINSTALL}/include/unicode/uconfig.h
2698-
2699-
if [ $(true_false "${BUILD_SWIFT_STATIC_STDLIB}") == "TRUE" ]; then
2700-
# Copy the static libs into the swift_static directory
2701-
call mkdir -p "${ICU_LIBDIR_STATIC_ARCH}"
2702-
for l in uc i18n data
2703-
do
2704-
lib="${ICU_LIBDIR}/libicu${l}swift.a"
2705-
call cp "${lib}" "${ICU_LIBDIR_STATIC}"
2706-
call cp "${lib}" "${ICU_LIBDIR_STATIC_ARCH}"
2707-
done
2708-
fi
2709-
2710-
# libicu builds itself and doesn't use cmake
2711-
continue
27122618
;;
27132619
*)
27142620
echo "error: unknown product: ${product}"
@@ -2989,17 +2895,6 @@ for host in "${ALL_HOSTS[@]}"; do
29892895
# libdispatch_static
29902896
continue
29912897
;;
2992-
libicu)
2993-
if [[ "${SKIP_TEST_LIBICU}" ]]; then
2994-
continue
2995-
fi
2996-
LIBICU_BUILD_DIR=$(build_directory ${host} ${product})
2997-
echo "--- Running tests for ${product} ---"
2998-
with_pushd "${LIBICU_BUILD_DIR}/test" \
2999-
call make -j ${BUILD_JOBS}
3000-
echo "--- Finished tests for ${product} ---"
3001-
continue
3002-
;;
30032898
*)
30042899
echo "error: unknown product: ${product}"
30052900
exit 1
@@ -3178,42 +3073,6 @@ for host in "${ALL_HOSTS[@]}"; do
31783073
;;
31793074
esac
31803075
;;
3181-
libicu)
3182-
if [[ -z "${INSTALL_LIBICU}" ]]; then
3183-
continue
3184-
fi
3185-
echo "--- Installing ${product} ---"
3186-
ICU_BUILD_DIR=$(build_directory ${host} ${product})
3187-
ICU_INSTALL_DIR="$(get_host_install_destdir ${host})$(get_host_install_prefix ${host})"
3188-
ICU_LIBDIR="$(build_directory ${host} swift)/lib/swift/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
3189-
LIBICU_DEST_DIR="${ICU_INSTALL_DIR}lib/swift/${SWIFT_HOST_VARIANT}"
3190-
call mkdir -p ${LIBICU_DEST_DIR}
3191-
3192-
for l in uc i18n data
3193-
do
3194-
lib=${ICU_LIBDIR}/libicu${l}swift
3195-
echo "${lib} => ${LIBICU_DEST_DIR}"
3196-
call cp -d ${lib}.so ${lib}.so.* ${LIBICU_DEST_DIR}
3197-
done
3198-
3199-
if [ $(true_false "${BUILD_SWIFT_STATIC_STDLIB}") == "TRUE" ]; then
3200-
LIBICU_DEST_DIR_STATIC="${ICU_INSTALL_DIR}lib/swift_static/${SWIFT_HOST_VARIANT}"
3201-
call mkdir -p ${LIBICU_DEST_DIR_STATIC}
3202-
for l in uc i18n data
3203-
do
3204-
lib=${ICU_LIBDIR}/libicu${l}swift
3205-
echo "${lib} => ${LIBICU_DEST_DIR_STATIC}"
3206-
call cp -d ${lib}.a ${LIBICU_DEST_DIR_STATIC}
3207-
done
3208-
fi
3209-
3210-
ICU_TMP_INSTALL_DIR="${ICU_BUILD_DIR}/tmp_install"
3211-
call mkdir -p "${ICU_INSTALL_DIR}include"
3212-
call cp -a "${ICU_TMP_INSTALL_DIR}/include/unicode" "${ICU_INSTALL_DIR}include"
3213-
call mkdir -p "${ICU_INSTALL_DIR}share/icuswift"
3214-
call cp -a "${ICU_TMP_INSTALL_DIR}/share/icuswift" "${ICU_INSTALL_DIR}share"
3215-
continue
3216-
;;
32173076
*)
32183077
echo "error: unknown product: ${product}"
32193078
exit 1

0 commit comments

Comments
 (0)