@@ -230,6 +230,7 @@ KNOWN_SETTINGS=(
230
230
)
231
231
232
232
components=(
233
+ clibdispatch
233
234
cmark
234
235
foundation
235
236
libcxx
@@ -1162,6 +1163,7 @@ STRESSTEST_PACKAGE_DIR="${WORKSPACE}/swift-stress-tester"
1162
1163
XCTEST_SOURCE_DIR=" ${WORKSPACE} /swift-corelibs-xctest"
1163
1164
FOUNDATION_SOURCE_DIR=" ${WORKSPACE} /swift-corelibs-foundation"
1164
1165
FOUNDATION_STATIC_SOURCE_DIR=" ${WORKSPACE} /swift-corelibs-foundation"
1166
+ CLIBDISPATCH_SOURCE_DIR=" ${WORKSPACE} /swift-corelibs-libdispatch"
1165
1167
LIBDISPATCH_SOURCE_DIR=" ${WORKSPACE} /swift-corelibs-libdispatch"
1166
1168
LIBDISPATCH_STATIC_SOURCE_DIR=" ${WORKSPACE} /swift-corelibs-libdispatch"
1167
1169
LIBICU_SOURCE_DIR=" ${WORKSPACE} /icu"
@@ -1175,6 +1177,7 @@ PRODUCTS=(llvm)
1175
1177
[[ " ${SKIP_BUILD_CMARK} " ]] || PRODUCTS+=(cmark)
1176
1178
[[ " ${SKIP_BUILD_LIBCXX} " ]] || PRODUCTS+=(libcxx)
1177
1179
[[ " ${SKIP_BUILD_LIBICU} " ]] || PRODUCTS+=(libicu)
1180
+ [[ " ${SKIP_BUILD_CLIBDISPATCH} " ]] || PRODUCTS+=(clibdispatch)
1178
1181
[[ " ${SKIP_BUILD_SWIFT} " ]] || PRODUCTS+=(swift)
1179
1182
[[ " ${SKIP_BUILD_LLDB} " ]] || PRODUCTS+=(lldb)
1180
1183
[[ " ${SKIP_BUILD_LIBDISPATCH} " ]] || PRODUCTS+=(libdispatch)
@@ -1259,7 +1262,7 @@ function build_directory_bin() {
1259
1262
foundation|foundation_static)
1260
1263
echo " ${root} /${FOUNDATION_BUILD_TYPE} /bin"
1261
1264
;;
1262
- libdispatch|libdispatch_static)
1265
+ clibdispatch| libdispatch|libdispatch_static)
1263
1266
echo " ${root} /${LIBDISPATCH_BUILD_TYPE} /bin"
1264
1267
;;
1265
1268
libicu)
@@ -1377,7 +1380,7 @@ function cmake_config_opt() {
1377
1380
foundation|foundation_static)
1378
1381
echo " --config ${FOUNDATION_BUILD_TYPE} "
1379
1382
;;
1380
- libdispatch|libdispatch_static)
1383
+ clibdispatch| libdispatch|libdispatch_static)
1381
1384
echo " --config ${LIBDISPATCH_BUILD_TYPE} "
1382
1385
;;
1383
1386
libicu)
@@ -1764,7 +1767,6 @@ for host in "${ALL_HOSTS[@]}"; do
1764
1767
;;
1765
1768
1766
1769
swift)
1767
-
1768
1770
if [[ " ${ANDROID_API_LEVEL} " ]]; then
1769
1771
cmake_options=(
1770
1772
" ${cmake_options[@]} "
@@ -2320,9 +2322,18 @@ for host in "${ALL_HOSTS[@]}"; do
2320
2322
)
2321
2323
2322
2324
;;
2323
- libdispatch|libdispatch_static)
2325
+ clibdispatch| libdispatch|libdispatch_static)
2324
2326
LIBDISPATCH_BUILD_DIR=$( build_directory ${host} ${product} )
2325
2327
SWIFT_BUILD_PATH=" $( build_directory ${host} swift) "
2328
+ ENABLE_SWIFT=YES
2329
+ if [[ " ${product} " = " clibdispatch" ]]; then
2330
+ if [[ " $( uname -s) " = " Darwin" ]]; then
2331
+ continue # We don't build clibdispatch on Darwin
2332
+ fi
2333
+ ENABLE_SWIFT=NO
2334
+ LIBDISPATCH_BUILD_DIR=$( build_directory ${host} libdispatch)
2335
+ build_dir=${LIBDISPATCH_BUILD_DIR}
2336
+ fi
2326
2337
2327
2338
case " ${host} " in
2328
2339
macosx-* )
@@ -2338,7 +2349,7 @@ for host in "${ALL_HOSTS[@]}"; do
2338
2349
call rm -rf " ${LIBDISPATCH_BUILD_DIR} "
2339
2350
2340
2351
cmake_options=(
2341
- -DENABLE_SWIFT=YES
2352
+ -DENABLE_SWIFT=" ${ENABLE_SWIFT} "
2342
2353
${cmake_options[@]}
2343
2354
-DCMAKE_BUILD_TYPE:STRING=" ${LIBDISPATCH_BUILD_TYPE} "
2344
2355
-DCMAKE_C_COMPILER:PATH=" ${CLANG_BIN} /clang"
@@ -2506,6 +2517,13 @@ for host in "${ALL_HOSTS[@]}"; do
2506
2517
if [[ " ${product} " = " llvm" ]] && [[ " ${BUILD_LLVM} " = " 1" ]] && [[ " $( uname -s) " = " Darwin" ]]; then
2507
2518
copy_embedded_compiler_rt_builtins_from_darwin_host_toolchain " $( build_directory_bin ${host} llvm) /.."
2508
2519
fi
2520
+
2521
+ # We need to copy libdispatch.so into the swift lib directory
2522
+ # so the tests can find it
2523
+ if [[ " ${product} " = " clibdispatch" ]] && [[ " uname -s" != " Darwin" ]]; then
2524
+ clibdispatch_libdir=" $( build_directory ${host} swift) /lib/swift/${SWIFT_HOST_VARIANT} /${SWIFT_HOST_VARIANT_ARCH} "
2525
+ call cp " ${build_dir} /libdispatch.so" " ${clibdispatch_libdir} "
2526
+ fi
2509
2527
done
2510
2528
done
2511
2529
# END OF BUILD PHASE
@@ -2762,13 +2780,17 @@ for host in "${ALL_HOSTS[@]}"; do
2762
2780
foundation_static)
2763
2781
continue
2764
2782
;;
2765
- libdispatch)
2783
+ clibdispatch| libdispatch)
2766
2784
if [[ " ${SKIP_TEST_LIBDISPATCH} " ]]; then
2767
2785
continue
2768
2786
fi
2769
2787
2770
2788
case " ${host} " in
2771
2789
macosx-* )
2790
+ if [[ " ${product} " = clibdispatch ]]; then
2791
+ # we don't build clibdispatch on Darwin
2792
+ continue
2793
+ fi
2772
2794
LIBDISPATCH_BUILD_DIR=$( build_directory ${host} ${product} )
2773
2795
echo " --- Running tests for ${product} ---"
2774
2796
with_pushd " ${LIBDISPATCH_BUILD_DIR} " \
@@ -2777,6 +2799,9 @@ for host in "${ALL_HOSTS[@]}"; do
2777
2799
continue
2778
2800
;;
2779
2801
* )
2802
+ if [[ " ${product} " = clibdispatch ]]; then
2803
+ product=libdispatch
2804
+ fi
2780
2805
results_targets=( " test" )
2781
2806
executable_target=" "
2782
2807
;;
@@ -2951,13 +2976,21 @@ for host in "${ALL_HOSTS[@]}"; do
2951
2976
fi
2952
2977
2953
2978
;;
2954
- libdispatch|libdispatch_static)
2955
- if [[ -z " ${INSTALL_LIBDISPATCH} " ]] ; then
2979
+ clibdispatch|libdispatch|libdispatch_static)
2980
+ if [[ " ${product} " = clibdispatch ]]; then
2981
+ if [[ -z " ${INSTALL_CLIBDISPATCH} " ]]; then
2982
+ continue
2983
+ fi
2984
+ elif [[ -z " ${INSTALL_LIBDISPATCH} " ]]; then
2956
2985
continue
2957
2986
fi
2958
2987
2959
2988
case " ${host} " in
2960
2989
macosx-* )
2990
+ if [[ " ${product} " = clibdispatch ]]; then
2991
+ # we don't build clibdispatch on Darwin
2992
+ continue
2993
+ fi
2961
2994
if [[ -z " ${INSTALL_DESTDIR} " ]] ; then
2962
2995
echo " --install-destdir is required to install products."
2963
2996
exit 1
@@ -2976,6 +3009,9 @@ for host in "${ALL_HOSTS[@]}"; do
2976
3009
continue
2977
3010
;;
2978
3011
* )
3012
+ if [[ " ${product} " = clibdispatch ]]; then
3013
+ product=libdispatch
3014
+ fi
2979
3015
;;
2980
3016
esac
2981
3017
;;
0 commit comments