@@ -1172,6 +1172,7 @@ SWIFTSYNTAX_SOURCE_DIR="${WORKSPACE}/swift-syntax"
1172
1172
XCTEST_SOURCE_DIR=" ${WORKSPACE} /swift-corelibs-xctest"
1173
1173
FOUNDATION_SOURCE_DIR=" ${WORKSPACE} /swift-corelibs-foundation"
1174
1174
LIBDISPATCH_SOURCE_DIR=" ${WORKSPACE} /swift-corelibs-libdispatch"
1175
+ LIBDISPATCH_STATIC_SOURCE_DIR=" ${LIBDISPATCH_SOURCE_DIR} "
1175
1176
LIBICU_SOURCE_DIR=" ${WORKSPACE} /icu"
1176
1177
PLAYGROUNDSUPPORT_SOURCE_DIR=" ${WORKSPACE} /swift-xcode-playground-support"
1177
1178
1213
1214
# added to the list of build products first.
1214
1215
if [[ ! " ${SKIP_BUILD_LIBDISPATCH} " ]] ; then
1215
1216
PRODUCTS=(" ${PRODUCTS[@]} " libdispatch)
1217
+ if [[ " ${BUILD_SWIFT_STATIC_STDLIB} " ]]; then
1218
+ PRODUCTS=(" ${PRODUCTS[@]} " libdispatch_static)
1219
+ fi
1216
1220
fi
1217
1221
if [[ ! " ${SKIP_BUILD_FOUNDATION} " ]] ; then
1218
1222
PRODUCTS=(" ${PRODUCTS[@]} " foundation)
@@ -1552,7 +1556,7 @@ function build_directory_bin() {
1552
1556
foundation)
1553
1557
echo " ${root} /${FOUNDATION_BUILD_TYPE} /bin"
1554
1558
;;
1555
- libdispatch)
1559
+ libdispatch|libdispatch_static )
1556
1560
echo " ${root} /${LIBDISPATCH_BUILD_TYPE} /bin"
1557
1561
;;
1558
1562
libicu)
@@ -1691,7 +1695,7 @@ function cmake_config_opt() {
1691
1695
foundation)
1692
1696
echo " --config ${FOUNDATION_BUILD_TYPE} "
1693
1697
;;
1694
- libdispatch)
1698
+ libdispatch|libdispatch_static )
1695
1699
echo " --config ${LIBDISPATCH_BUILD_TYPE} "
1696
1700
;;
1697
1701
libicu)
@@ -2214,7 +2218,6 @@ for host in "${ALL_HOSTS[@]}"; do
2214
2218
-DSWIFT_PATH_TO_CMARK_SOURCE:PATH=" ${CMARK_SOURCE_DIR} "
2215
2219
-DSWIFT_PATH_TO_CMARK_BUILD:PATH=" $( build_directory ${host} cmark) "
2216
2220
-DSWIFT_PATH_TO_LIBDISPATCH_SOURCE:PATH=" ${LIBDISPATCH_SOURCE_DIR} "
2217
- -DSWIFT_PATH_TO_LIBDISPATCH_BUILD:PATH=" $( build_directory ${host} libdispatch) "
2218
2221
)
2219
2222
2220
2223
if [[ ! " ${SKIP_BUILD_LIBICU} " ]] ; then
@@ -2567,8 +2570,9 @@ for host in "${ALL_HOSTS[@]}"; do
2567
2570
# Foundation builds itself and doesn't use cmake
2568
2571
continue
2569
2572
;;
2570
- libdispatch)
2571
- LIBDISPATCH_BUILD_DIR=$( build_directory ${host} ${product} )
2573
+ libdispatch|libdispatch_static)
2574
+ LIBDISPATCH_BUILD_DIR=$( build_directory ${host} libdispatch)
2575
+ LIBDISPATCH_STATIC_BUILD_DIR=$( build_directory ${host} libdispatch_static)
2572
2576
SWIFT_BUILD_PATH=" $( build_directory ${host} swift) "
2573
2577
SWIFTC_BIN=" $( build_directory_bin ${LOCAL_HOST} swift) /swiftc"
2574
2578
LLVM_BIN=" $( build_directory_bin ${LOCAL_HOST} llvm) "
@@ -2613,11 +2617,6 @@ for host in "${ALL_HOSTS[@]}"; do
2613
2617
continue
2614
2618
;;
2615
2619
* )
2616
- # FIXME: Always re-build libdispatch on non-darwin platforms.
2617
- # Remove this when products build in the CMake system.
2618
- echo " Cleaning the libdispatch build directory"
2619
- call rm -rf " ${LIBDISPATCH_BUILD_DIR} "
2620
-
2621
2620
cmake_options=(
2622
2621
${cmake_options[@]}
2623
2622
-DCMAKE_BUILD_TYPE:STRING=" ${LIBDISPATCH_BUILD_TYPE} "
@@ -2628,10 +2627,32 @@ for host in "${ALL_HOSTS[@]}"; do
2628
2627
-DCMAKE_INSTALL_LIBDIR:PATH=" lib"
2629
2628
2630
2629
-DENABLE_SWIFT=YES
2631
- -DSWIFT_RUNTIME_LIBDIR:PATH=" ${SWIFT_BUILD_PATH} /lib/swift/${SWIFT_HOST_VARIANT} /${SWIFT_HOST_VARIANT_ARCH} "
2632
2630
2633
2631
-DENABLE_TESTING=YES
2634
2632
)
2633
+
2634
+ case ${product} in
2635
+ libdispatch)
2636
+ cmake_options=(
2637
+ ${cmake_options[@]}
2638
+ -DSWIFT_RUNTIME_LIBDIR:PATH=" ${SWIFT_BUILD_PATH} /lib/swift/${SWIFT_HOST_VARIANT} /${SWIFT_HOST_VARIANT_ARCH} "
2639
+ -DBUILD_SHARED_LIBS=YES
2640
+ )
2641
+ ;;
2642
+ libdispatch_static)
2643
+ cmake_options=(
2644
+ ${cmake_options[@]}
2645
+ -DBUILD_SHARED_LIBS=NO
2646
+ -DSWIFT_RUNTIME_LIBDIR:PATH=" ${SWIFT_BUILD_PATH} /lib/swift_static/${SWIFT_HOST_VARIANT} /${SWIFT_HOST_VARIANT_ARCH} "
2647
+ -DINSTALL_TARGET_DIR:PATH=lib/swift_static/${target}
2648
+ )
2649
+ ;;
2650
+ * )
2651
+ echo " Error: unknown product ${product} " >&2
2652
+ exit 1
2653
+ ;;
2654
+ esac
2655
+
2635
2656
;;
2636
2657
esac
2637
2658
@@ -3094,6 +3115,10 @@ for host in "${ALL_HOSTS[@]}"; do
3094
3115
echo " --- Finished tests for ${product} ---"
3095
3116
continue
3096
3117
;;
3118
+ libdispatch_static)
3119
+ # FIXME: Merge with libdispatch once the unit tests work with libdispatch_static
3120
+ continue
3121
+ ;;
3097
3122
libdispatch)
3098
3123
if [[ " ${SKIP_TEST_LIBDISPATCH} " ]]; then
3099
3124
continue
@@ -3361,7 +3386,7 @@ for host in "${ALL_HOSTS[@]}"; do
3361
3386
# As foundation installation is self-contained, we break early here.
3362
3387
continue
3363
3388
;;
3364
- libdispatch)
3389
+ libdispatch|libdispatch_static )
3365
3390
if [[ -z " ${INSTALL_LIBDISPATCH} " ]] ; then
3366
3391
continue
3367
3392
fi
0 commit comments