@@ -2550,6 +2550,20 @@ for host in "${ALL_HOSTS[@]}"; do
2550
2550
continue
2551
2551
fi
2552
2552
2553
+ if [[ ! " ${SKIP_BUILD_LIBICU} " ]] ; then
2554
+ ICU_ROOT=$( build_directory ${host} libicu) /tmp_install
2555
+ LIBICU_BUILD_ARGS=(
2556
+ -DICU_ROOT:PATH=${ICU_ROOT}
2557
+ -DICU_INCLUDE_DIR:PATH=${ICU_ROOT} /include
2558
+ -DICU_UC_LIBRARIES:FILEPATH=${ICU_LIBDIR} /libicuucswift.so
2559
+ -DICU_UC_LIBRARY:FILEPATH=${ICU_LIBDIR} /libicuucswift.so
2560
+ -DICU_I18N_LIBRARIES:FILEPATH=${ICU_LIBDIR} /libicui18nswift.so
2561
+ -DICU_I18N_LIBRARY:FILEPATH=${ICU_LIBDIR} /libicui18nswift.so
2562
+ )
2563
+ else
2564
+ LIBICU_BUILD_ARGS=()
2565
+ fi
2566
+
2553
2567
# Staging: require opt-in for building with dispatch
2554
2568
if [[ ! " ${SKIP_BUILD_LIBDISPATCH} " ]] ; then
2555
2569
LIBDISPATCH_BUILD_DIR=" $( build_directory ${host} libdispatch) "
@@ -2574,6 +2588,7 @@ for host in "${ALL_HOSTS[@]}"; do
2574
2588
-DCMAKE_SWIFT_COMPILER:PATH=${SWIFTC_BIN}
2575
2589
-DCMAKE_INSTALL_PREFIX:PATH=$( get_host_install_prefix ${host} )
2576
2590
2591
+ ${LIBICU_BUILD_ARGS[@]}
2577
2592
${LIBDISPATCH_BUILD_ARGS[@]}
2578
2593
2579
2594
# NOTE(compnerd) we disable tests because XCTest is not ready
@@ -2658,47 +2673,62 @@ for host in "${ALL_HOSTS[@]}"; do
2658
2673
ICU_TMPLIBDIR=" ${SWIFT_BUILD_PATH} /lib/swift/${SWIFT_HOST_VARIANT} /${SWIFT_HOST_VARIANT_ARCH} "
2659
2674
if [[ " ${RECONFIGURE} " || ! -f " ${LIBICU_BUILD_DIR} " /config.status ]]; then
2660
2675
echo " Reconfiguring libicu"
2661
- if [[ " $LIBICU_BUILD_TYPE " == " Release" ]] ; then
2662
- icu_build_variant_arg=" --enable-release"
2663
- elif [[ " $LIBICU_BUILD_TYPE " == " RelWithDebInfo" ]]; then
2664
- icu_build_variant_arg=" --enable-release"
2676
+ if [[ " $LIBICU_BUILD_TYPE " != " Release" ]] ; then
2677
+ libicu_enable_debug=" --enable-debug"
2665
2678
else
2666
- icu_build_variant_arg= " --enable-debug "
2679
+ libicu_enable_debug= " "
2667
2680
fi
2668
2681
call mkdir -p " ${LIBICU_BUILD_DIR} "
2682
+
2683
+ if [ $( true_false " ${BUILD_SWIFT_STATIC_STDLIB} " ) == " TRUE" ]; then
2684
+ libicu_enable_static=" --enable-static"
2685
+ else
2686
+ libicu_enable_static=" "
2687
+ fi
2688
+
2669
2689
with_pushd " ${LIBICU_BUILD_DIR} " \
2670
- call " ${LIBICU_SOURCE_DIR} " /source/configure \
2690
+ call env CXXFLAGS=-fPIC " ${LIBICU_SOURCE_DIR} " /icu4c/ source/runConfigureICU Linux \
2671
2691
${icu_build_variant_arg} --prefix=${ICU_TMPINSTALL} \
2692
+ ${libicu_enable_debug} \
2693
+ --enable-renaming --with-library-suffix=swift \
2672
2694
--libdir=${ICU_TMPLIBDIR} \
2673
2695
--enable-shared --enable-static \
2674
2696
--enable-strict --disable-icuio \
2675
2697
--disable-plugins --disable-dyload --disable-extras \
2676
- --disable-samples --with-data-packaging=auto
2698
+ --disable-samples --disable-layoutex -- with-data-packaging=auto
2677
2699
else
2678
2700
echo " Skipping reconfiguration of libicu"
2679
2701
fi
2680
2702
with_pushd " ${LIBICU_BUILD_DIR} " \
2681
- call make install
2703
+ call make -j ${BUILD_JOBS} install
2682
2704
ICU_LIBDIR=" $( build_directory ${host} swift) /lib/swift/${SWIFT_HOST_VARIANT} /${SWIFT_HOST_VARIANT_ARCH} "
2683
2705
ICU_LIBDIR_STATIC=" $( build_directory ${host} swift) /lib/swift_static/${SWIFT_HOST_VARIANT} "
2684
2706
ICU_LIBDIR_STATIC_ARCH=" $( build_directory ${host} swift) /lib/swift_static/${SWIFT_HOST_VARIANT} /${SWIFT_HOST_VARIANT_ARCH} "
2685
- mkdir -p " ${ICU_LIBDIR_STATIC_ARCH} "
2686
- # Copy the static libs into the swift_static directory
2687
- for l in uc i18n data
2688
- do
2689
- lib=" ${ICU_LIBDIR} /libicu${l} .a"
2690
- cp " ${lib} " " ${ICU_LIBDIR_STATIC} "
2691
- cp " ${lib} " " ${ICU_LIBDIR_STATIC_ARCH} "
2692
- done
2707
+ # Add in the ICU renaming config into uconfig.h
2708
+ sed -e " /^#define __UCONFIG_H__/ r ${LIBICU_BUILD_DIR} /uconfig.h.prepend" -i ${ICU_TMPINSTALL} /include/unicode/uconfig.h
2709
+
2710
+ if [ $( true_false " ${BUILD_SWIFT_STATIC_STDLIB} " ) == " TRUE" ]; then
2711
+ # Copy the static libs into the swift_static directory
2712
+ mkdir -p " ${ICU_LIBDIR_STATIC_ARCH} "
2713
+ for l in uc i18n data
2714
+ do
2715
+ lib=" ${ICU_LIBDIR} /libicu${l} swift.a"
2716
+ cp " ${lib} " " ${ICU_LIBDIR_STATIC} "
2717
+ cp " ${lib} " " ${ICU_LIBDIR_STATIC_ARCH} "
2718
+ done
2719
+ fi
2693
2720
2694
2721
# Set the PKG_CONFIG_PATH so that core-foundation can find the libraries and
2695
2722
# header files
2696
- export PKG_CONFIG_PATH=" ${ICU_TMPLIBDIR} /pkgconfig:${PKG_CONFIG_PATH} "
2723
+ export PKG_CONFIG_PATH=" ${LIBICU_BUILD_DIR} /config:${PKG_CONFIG_PATH} "
2724
+ export LD_LIBRARY_PATH=" ${LD_LIBRARY_PATH} " :" ${LIBICU_BUILD_DIR} /lib"
2697
2725
swift_cmake_options=(
2698
2726
" ${swift_cmake_options[@]} "
2699
2727
-DSWIFT_${SWIFT_HOST_VARIANT_SDK} _${SWIFT_HOST_VARIANT_ARCH} _ICU_UC_INCLUDE:STRING=" ${ICU_TMPINSTALL} /include"
2700
2728
-DSWIFT_${SWIFT_HOST_VARIANT_SDK} _${SWIFT_HOST_VARIANT_ARCH} _ICU_I18N_INCLUDE:STRING=" ${ICU_TMPINSTALL} /include"
2701
2729
-DSWIFT_${SWIFT_HOST_VARIANT_SDK} _${SWIFT_HOST_VARIANT_ARCH} _ICU_STATICLIB:BOOL=TRUE
2730
+ -DICU_UC_LIBDIR:PATH=" ${LIBICU_BUILD_DIR} /lib"
2731
+ -DICU_I18N_LIBDIR:PATH=" ${LIBICU_BUILD_DIR} /lib"
2702
2732
)
2703
2733
# libicu builds itself and doesn't use cmake
2704
2734
continue
@@ -3110,6 +3140,20 @@ for host in "${ALL_HOSTS[@]}"; do
3110
3140
continue
3111
3141
fi
3112
3142
3143
+ if [[ ! " ${SKIP_BUILD_LIBICU} " ]] ; then
3144
+ ICU_ROOT=$( build_directory ${host} libicu) /tmp_install
3145
+ LIBICU_BUILD_ARGS=(
3146
+ -DICU_ROOT:PATH=${ICU_ROOT}
3147
+ -DICU_INCLUDE_DIR:PATH=${ICU_ROOT} /include
3148
+ -DICU_UC_LIBRARIES:FILEPATH=${ICU_LIBDIR} /libicuucswift.so
3149
+ -DICU_UC_LIBRARY:FILEPATH=${ICU_LIBDIR} /libicuucswift.so
3150
+ -DICU_I18N_LIBRARIES:FILEPATH=${ICU_LIBDIR} /libicui18nswift.so
3151
+ -DICU_I18N_LIBRARY:FILEPATH=${ICU_LIBDIR} /libicui18nswift.so
3152
+ )
3153
+ else
3154
+ LIBICU_BUILD_ARGS=()
3155
+ fi
3156
+
3113
3157
if [[ ! " ${SKIP_BUILD_LIBDISPATCH} " ]] ; then
3114
3158
LIBDISPATCH_BUILD_DIR=" $( build_directory ${host} libdispatch) "
3115
3159
LIBDISPATCH_BUILD_ARGS=(
@@ -3128,6 +3172,7 @@ for host in "${ALL_HOSTS[@]}"; do
3128
3172
-DCMAKE_SWIFT_COMPILER:PATH=${SWIFTC_BIN}
3129
3173
-DCMAKE_INSTALL_PREFIX:PATH=$( get_host_install_prefix ${host} )
3130
3174
3175
+ ${LIBICU_BUILD_ARGS[@]}
3131
3176
${LIBDISPATCH_BUILD_ARGS[@]}
3132
3177
3133
3178
# NOTE(compnerd) the time has come to enable tests now
@@ -3169,7 +3214,7 @@ for host in "${ALL_HOSTS[@]}"; do
3169
3214
LIBICU_BUILD_DIR=$( build_directory ${host} ${product} )
3170
3215
echo " --- Running tests for ${product} ---"
3171
3216
with_pushd " ${LIBICU_BUILD_DIR} /test" \
3172
- call make
3217
+ call make -j ${BUILD_JOBS}
3173
3218
echo " --- Finished tests for ${product} ---"
3174
3219
continue
3175
3220
;;
@@ -3411,21 +3456,35 @@ for host in "${ALL_HOSTS[@]}"; do
3411
3456
exit 1
3412
3457
fi
3413
3458
echo " --- Installing ${product} ---"
3414
- LIBICU_BUILD_DIR=$( build_directory ${host} ${product} )
3459
+ ICU_BUILD_DIR=$( build_directory ${host} ${product} )
3460
+ ICU_INSTALL_DIR=" $( get_host_install_destdir ${host} ) $( get_host_install_prefix ${host} ) "
3415
3461
ICU_LIBDIR=" $( build_directory ${host} swift) /lib/swift/${SWIFT_HOST_VARIANT} /${SWIFT_HOST_VARIANT_ARCH} "
3416
- LIBICU_DEST_DIR=" $( get_host_install_destdir ${host} ) $( get_host_install_prefix ${host} ) lib/swift/${SWIFT_HOST_VARIANT} "
3417
- LIBICU_DEST_DIR_STATIC=" $( get_host_install_destdir ${host} ) $( get_host_install_prefix ${host} ) lib/swift_static/${SWIFT_HOST_VARIANT} "
3462
+ LIBICU_DEST_DIR=" ${ICU_INSTALL_DIR} lib/swift/${SWIFT_HOST_VARIANT} "
3418
3463
mkdir -p ${LIBICU_DEST_DIR}
3419
- mkdir -p ${LIBICU_DEST_DIR_STATIC}
3464
+
3420
3465
for l in uc i18n data
3421
3466
do
3422
- lib=${ICU_LIBDIR} /libicu${l}
3467
+ lib=${ICU_LIBDIR} /libicu${l} swift
3423
3468
echo " ${lib} => ${LIBICU_DEST_DIR} "
3424
3469
cp -d ${lib} .so ${lib} .so.* ${LIBICU_DEST_DIR}
3425
- cp -d ${lib} .so ${lib} .so.* ${LIBICU_DEST_DIR}
3426
- cp -d ${lib} .a ${LIBICU_DEST_DIR_STATIC}
3427
- cp -d ${lib} .a ${LIBICU_DEST_DIR_STATIC}
3428
3470
done
3471
+
3472
+ if [ $( true_false " ${BUILD_SWIFT_STATIC_STDLIB} " ) == " TRUE" ]; then
3473
+ LIBICU_DEST_DIR_STATIC=" ${ICU_INSTALL_DIR} lib/swift_static/${SWIFT_HOST_VARIANT} "
3474
+ mkdir -p ${LIBICU_DEST_DIR_STATIC}
3475
+ for l in uc i18n data
3476
+ do
3477
+ lib=${ICU_LIBDIR} /libicu${l} swift
3478
+ echo " ${lib} => ${LIBICU_DEST_DIR_STATIC} "
3479
+ cp -d ${lib} .a ${LIBICU_DEST_DIR_STATIC}
3480
+ done
3481
+ fi
3482
+
3483
+ ICU_TMP_INSTALL_DIR=" ${ICU_BUILD_DIR} /tmp_install"
3484
+ mkdir -p " ${ICU_INSTALL_DIR} include"
3485
+ cp -a " ${ICU_TMP_INSTALL_DIR} /include/unicode" " ${ICU_INSTALL_DIR} include"
3486
+ mkdir -p " ${ICU_INSTALL_DIR} share/icuswift"
3487
+ cp -a " ${ICU_TMP_INSTALL_DIR} /share/icuswift" " ${ICU_INSTALL_DIR} share"
3429
3488
continue
3430
3489
;;
3431
3490
playgroundsupport)
0 commit comments