Skip to content

Commit b538224

Browse files
committed
[build-script-impl] Call into the XCTest build_script.py on all platforms
No longer invoke xcodebuild directly on Darwin for building and testing, because XCTest's own build script now contains the platform-specific logic.
1 parent cd29d0f commit b538224

File tree

1 file changed

+18
-40
lines changed

1 file changed

+18
-40
lines changed

utils/build-script-impl

Lines changed: 18 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1934,35 +1934,25 @@ for deployment_target in "${HOST_TARGET}" "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"
19341934
xctest)
19351935
SWIFTC_BIN="$(build_directory_bin ${deployment_target} swift)/swiftc"
19361936
XCTEST_BUILD_DIR=$(build_directory ${deployment_target} xctest)
1937+
FOUNDATION_BUILD_DIR=$(build_directory ${deployment_target} foundation)
19371938
if [[ "$(uname -s)" == "Darwin" ]] ; then
19381939
# xcodebuild requires swift-stdlib-tool to build a Swift
19391940
# framework. This is normally present when building XCTest
19401941
# via a packaged .xctoolchain, but here we are using the
19411942
# swiftc that was just built--no toolchain exists yet. As a
19421943
# result, we must copy swift-stdlib-tool ourselves.
19431944
copy_swift_stdlib_tool_substitute "$(build_directory_bin ${deployment_target} swift)/swift-stdlib-tool"
1944-
1945-
set -x
1946-
xcodebuild \
1947-
-workspace "${XCTEST_SOURCE_DIR}"/XCTest.xcworkspace \
1948-
-scheme SwiftXCTest \
1949-
SWIFT_EXEC="${SWIFTC_BIN}" \
1950-
SWIFT_LINK_OBJC_RUNTIME=YES \
1951-
SYMROOT="${XCTEST_BUILD_DIR}" \
1952-
OBJROOT="${XCTEST_BUILD_DIR}"
1953-
{ set +x; } 2>/dev/null
1954-
else
1955-
FOUNDATION_BUILD_DIR=$(build_directory ${deployment_target} foundation)
1956-
set -x
1957-
# FIXME: Use XCTEST_BUILD_TYPE (which is never properly
1958-
# set) to build either --debug or --release.
1959-
"${XCTEST_SOURCE_DIR}"/build_script.py \
1960-
--swiftc="${SWIFTC_BIN}" \
1961-
--build-dir="${XCTEST_BUILD_DIR}" \
1962-
--foundation-build-dir="${FOUNDATION_BUILD_DIR}/Foundation"
1963-
{ set +x; } 2>/dev/null
19641945
fi
19651946

1947+
set -x
1948+
# FIXME: Use XCTEST_BUILD_TYPE (which is never properly
1949+
# set) to build either --debug or --release.
1950+
"${XCTEST_SOURCE_DIR}"/build_script.py \
1951+
--swiftc="${SWIFTC_BIN}" \
1952+
--build-dir="${XCTEST_BUILD_DIR}" \
1953+
--foundation-build-dir="${FOUNDATION_BUILD_DIR}/Foundation"
1954+
{ set +x; } 2>/dev/null
1955+
19661956
# XCTest builds itself and doesn't rely on cmake
19671957
continue
19681958
;;
@@ -2243,26 +2233,14 @@ for deployment_target in "${STDLIB_DEPLOYMENT_TARGETS[@]}"; do
22432233
fi
22442234
echo "--- Running tests for ${product} ---"
22452235
SWIFTC_BIN="$(build_directory_bin ${deployment_target} swift)/swiftc"
2246-
if [[ "$(uname -s)" == "Darwin" ]] ; then
2247-
set -x
2248-
xcodebuild \
2249-
-workspace "${XCTEST_SOURCE_DIR}"/XCTest.xcworkspace \
2250-
-scheme SwiftXCTestFunctionalTests \
2251-
SWIFT_EXEC="${SWIFTC_BIN}" \
2252-
SWIFT_LINK_OBJC_RUNTIME=YES \
2253-
SYMROOT="${XCTEST_BUILD_DIR}" \
2254-
OBJROOT="${XCTEST_BUILD_DIR}"
2255-
{ set +x; } 2>/dev/null
2256-
else
2257-
FOUNDATION_BUILD_DIR=$(build_directory ${deployment_target} foundation)
2258-
XCTEST_BUILD_DIR=$(build_directory ${deployment_target} xctest)
2259-
set -x
2260-
"${XCTEST_SOURCE_DIR}"/build_script.py test \
2261-
--swiftc="${SWIFTC_BIN}" \
2262-
--foundation-build-dir="${FOUNDATION_BUILD_DIR}/Foundation" \
2263-
"${XCTEST_BUILD_DIR}"
2264-
{ set +x; } 2>/dev/null
2265-
fi
2236+
FOUNDATION_BUILD_DIR=$(build_directory ${deployment_target} foundation)
2237+
XCTEST_BUILD_DIR=$(build_directory ${deployment_target} xctest)
2238+
set -x
2239+
"${XCTEST_SOURCE_DIR}"/build_script.py test \
2240+
--swiftc="${SWIFTC_BIN}" \
2241+
--foundation-build-dir="${FOUNDATION_BUILD_DIR}/Foundation" \
2242+
"${XCTEST_BUILD_DIR}"
2243+
{ set +x; } 2>/dev/null
22662244
echo "--- Finished tests for ${product} ---"
22672245
continue
22682246
;;

0 commit comments

Comments
 (0)