Skip to content

Commit eb40500

Browse files
committed
Separate build directory for libdispatch_static
1 parent f4db1dd commit eb40500

File tree

1 file changed

+37
-12
lines changed

1 file changed

+37
-12
lines changed

utils/build-script-impl

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,6 +1172,7 @@ SWIFTSYNTAX_SOURCE_DIR="${WORKSPACE}/swift-syntax"
11721172
XCTEST_SOURCE_DIR="${WORKSPACE}/swift-corelibs-xctest"
11731173
FOUNDATION_SOURCE_DIR="${WORKSPACE}/swift-corelibs-foundation"
11741174
LIBDISPATCH_SOURCE_DIR="${WORKSPACE}/swift-corelibs-libdispatch"
1175+
LIBDISPATCH_STATIC_SOURCE_DIR="${LIBDISPATCH_SOURCE_DIR}"
11751176
LIBICU_SOURCE_DIR="${WORKSPACE}/icu"
11761177
PLAYGROUNDSUPPORT_SOURCE_DIR="${WORKSPACE}/swift-xcode-playground-support"
11771178

@@ -1213,6 +1214,9 @@ fi
12131214
# added to the list of build products first.
12141215
if [[ ! "${SKIP_BUILD_LIBDISPATCH}" ]] ; then
12151216
PRODUCTS=("${PRODUCTS[@]}" libdispatch)
1217+
if [[ "${BUILD_SWIFT_STATIC_STDLIB}" ]]; then
1218+
PRODUCTS=("${PRODUCTS[@]}" libdispatch_static)
1219+
fi
12161220
fi
12171221
if [[ ! "${SKIP_BUILD_FOUNDATION}" ]] ; then
12181222
PRODUCTS=("${PRODUCTS[@]}" foundation)
@@ -1552,7 +1556,7 @@ function build_directory_bin() {
15521556
foundation)
15531557
echo "${root}/${FOUNDATION_BUILD_TYPE}/bin"
15541558
;;
1555-
libdispatch)
1559+
libdispatch|libdispatch_static)
15561560
echo "${root}/${LIBDISPATCH_BUILD_TYPE}/bin"
15571561
;;
15581562
libicu)
@@ -1691,7 +1695,7 @@ function cmake_config_opt() {
16911695
foundation)
16921696
echo "--config ${FOUNDATION_BUILD_TYPE}"
16931697
;;
1694-
libdispatch)
1698+
libdispatch|libdispatch_static)
16951699
echo "--config ${LIBDISPATCH_BUILD_TYPE}"
16961700
;;
16971701
libicu)
@@ -2214,7 +2218,6 @@ for host in "${ALL_HOSTS[@]}"; do
22142218
-DSWIFT_PATH_TO_CMARK_SOURCE:PATH="${CMARK_SOURCE_DIR}"
22152219
-DSWIFT_PATH_TO_CMARK_BUILD:PATH="$(build_directory ${host} cmark)"
22162220
-DSWIFT_PATH_TO_LIBDISPATCH_SOURCE:PATH="${LIBDISPATCH_SOURCE_DIR}"
2217-
-DSWIFT_PATH_TO_LIBDISPATCH_BUILD:PATH="$(build_directory ${host} libdispatch)"
22182221
)
22192222

22202223
if [[ ! "${SKIP_BUILD_LIBICU}" ]] ; then
@@ -2567,8 +2570,9 @@ for host in "${ALL_HOSTS[@]}"; do
25672570
# Foundation builds itself and doesn't use cmake
25682571
continue
25692572
;;
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)
25722576
SWIFT_BUILD_PATH="$(build_directory ${host} swift)"
25732577
SWIFTC_BIN="$(build_directory_bin ${LOCAL_HOST} swift)/swiftc"
25742578
LLVM_BIN="$(build_directory_bin ${LOCAL_HOST} llvm)"
@@ -2613,11 +2617,6 @@ for host in "${ALL_HOSTS[@]}"; do
26132617
continue
26142618
;;
26152619
*)
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-
26212620
cmake_options=(
26222621
${cmake_options[@]}
26232622
-DCMAKE_BUILD_TYPE:STRING="${LIBDISPATCH_BUILD_TYPE}"
@@ -2628,10 +2627,32 @@ for host in "${ALL_HOSTS[@]}"; do
26282627
-DCMAKE_INSTALL_LIBDIR:PATH="lib"
26292628

26302629
-DENABLE_SWIFT=YES
2631-
-DSWIFT_RUNTIME_LIBDIR:PATH="${SWIFT_BUILD_PATH}/lib/swift/${SWIFT_HOST_VARIANT}/${SWIFT_HOST_VARIANT_ARCH}"
26322630

26332631
-DENABLE_TESTING=YES
26342632
)
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+
26352656
;;
26362657
esac
26372658

@@ -3094,6 +3115,10 @@ for host in "${ALL_HOSTS[@]}"; do
30943115
echo "--- Finished tests for ${product} ---"
30953116
continue
30963117
;;
3118+
libdispatch_static)
3119+
# FIXME: Merge with libdispatch once the unit tests work with libdispatch_static
3120+
continue
3121+
;;
30973122
libdispatch)
30983123
if [[ "${SKIP_TEST_LIBDISPATCH}" ]]; then
30993124
continue
@@ -3361,7 +3386,7 @@ for host in "${ALL_HOSTS[@]}"; do
33613386
# As foundation installation is self-contained, we break early here.
33623387
continue
33633388
;;
3364-
libdispatch)
3389+
libdispatch|libdispatch_static)
33653390
if [[ -z "${INSTALL_LIBDISPATCH}" ]] ; then
33663391
continue
33673392
fi

0 commit comments

Comments
 (0)