@@ -1855,15 +1855,25 @@ for deployment_target in "${HOST_TARGET}" "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"
1855
1855
continue
1856
1856
;;
1857
1857
xctest)
1858
+ XCTEST_BUILD_DIR=$( build_directory ${deployment_target} xctest)
1858
1859
if [[ " $( uname -s) " == " Darwin" ]] ; then
1859
1860
set -x
1860
- xcodebuild -project " ${XCTEST_SOURCE_DIR} " /XCTest.xcodeproj -scheme SwiftXCTest SKIP_INSTALL=NO DEPLOYMENT_LOCATION=YES DSTROOT=" ${build_dir} " INSTALL_PATH=" /"
1861
+ xcodebuild \
1862
+ -project " ${XCTEST_SOURCE_DIR} " /XCTest.xcodeproj \
1863
+ -scheme SwiftXCTest \
1864
+ SKIP_INSTALL=NO \
1865
+ DEPLOYMENT_LOCATION=YES \
1866
+ DSTROOT=" ${XCTEST_BUILD_DIR} " \
1867
+ INSTALL_PATH=" /"
1861
1868
{ set +x; } 2> /dev/null
1862
1869
else
1863
1870
SWIFTC_BIN=" $( build_directory_bin ${deployment_target} swift) /swiftc"
1864
- SWIFT_BUILD_PATH=" $( build_directory ${deployment_target} swift) "
1865
1871
set -x
1866
- " ${XCTEST_SOURCE_DIR} " /build_script.py --swiftc=" ${SWIFTC_BIN} " --build-dir=" ${build_dir} " --swift-build-dir=" ${SWIFT_BUILD_PATH} " --arch=" ${SWIFT_HOST_VARIANT_ARCH} "
1872
+ # FIXME: Use XCTEST_BUILD_TYPE (which is never properly
1873
+ # set) to build either --debug or --release.
1874
+ " ${XCTEST_SOURCE_DIR} " /build_script.py \
1875
+ --swiftc=" ${SWIFTC_BIN} " \
1876
+ --build-dir=" ${XCTEST_BUILD_DIR} "
1867
1877
{ set +x; } 2> /dev/null
1868
1878
fi
1869
1879
@@ -2111,15 +2121,17 @@ for deployment_target in "${STDLIB_DEPLOYMENT_TARGETS[@]}"; do
2111
2121
echo " --- Running tests for ${product} ---"
2112
2122
if [[ " $( uname -s) " == " Darwin" ]] ; then
2113
2123
set -x
2114
- xcodebuild -project " ${XCTEST_SOURCE_DIR} " /XCTest.xcodeproj -scheme SwiftXCTestFunctionalTests
2124
+ xcodebuild \
2125
+ -project " ${XCTEST_SOURCE_DIR} " /XCTest.xcodeproj \
2126
+ -scheme SwiftXCTestFunctionalTests
2115
2127
{ set +x; } 2> /dev/null
2116
2128
else
2117
2129
SWIFTC_BIN=" $( build_directory_bin ${deployment_target} swift) /swiftc"
2118
- SWIFT_BUILD_PATH= " $( build_directory ${deployment_target} swift ) "
2130
+ XCTEST_BUILD_DIR= $( build_directory ${deployment_target} xctest )
2119
2131
set -x
2120
- # FIXME: This re-builds swift-corelibs-xctest. Instead, ' build_script.py' should take
2121
- # a top-level 'test' command that only tests an already built XCTest.
2122
- " ${XCTEST_SOURCE_DIR} " /build_script.py --swiftc= " ${SWIFTC_BIN} " --build-dir= " ${build_dir} " --swift-build-dir= " ${SWIFT_BUILD_PATH} " --arch= " ${SWIFT_HOST_VARIANT_ARCH} " --test
2132
+ " ${XCTEST_SOURCE_DIR} " / build_script.py test \
2133
+ --swiftc= " ${SWIFTC_BIN} " \
2134
+ " ${XCTEST_BUILD_DIR} "
2123
2135
{ set +x; } 2> /dev/null
2124
2136
fi
2125
2137
echo " --- Finished tests for ${product} ---"
@@ -2269,31 +2281,38 @@ for deployment_target in "${HOST_TARGET}" "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"
2269
2281
if [[ -z " ${INSTALL_XCTEST} " ]] ; then
2270
2282
continue
2271
2283
fi
2272
- if [[ $( uname -s) == " Linux" ]]; then
2273
- LIB_TARGET=" linux"
2274
- ARCH_FLAG=" --arch=\" ${SWIFT_HOST_VARIANT_ARCH} \" "
2275
- fi
2276
- if [[ $( uname -s) == " FreeBSD" ]]; then
2277
- LIB_TARGET=" freebsd"
2278
- ARCH_FLAG=" --arch=\" ${SWIFT_HOST_VARIANT_ARCH} \" "
2279
- fi
2280
- if [[ $( uname -s) == " CYGWIN_NT-10.0" ]]; then
2281
- LIB_TARGET=" windows"
2282
- fi
2283
- if [[ $( uname -s) == " Darwin" ]]; then
2284
- LIB_TARGET=" macosx"
2285
- ARCH_FLAG=" "
2284
+ if [[ -z " ${INSTALL_DESTDIR} " ]] ; then
2285
+ echo " error: --install-destdir is required"
2286
+ exit 1
2286
2287
fi
2287
- XCTEST_INSTALL_PREFIX=" ${INSTALL_DESTDIR} " /" ${INSTALL_PREFIX} " /lib/swift/" ${LIB_TARGET} "
2288
+ case " $( uname -s) " in
2289
+ Linux)
2290
+ LIB_TARGET=" linux"
2291
+ ;;
2292
+ FreeBSD)
2293
+ LIB_TARGET=" freebsd"
2294
+ ;;
2295
+ CYGWIN_NT-10.0)
2296
+ LIB_TARGET=" windows"
2297
+ ;;
2298
+ * )
2299
+ echo " error: --install-xctest is not supported on this platform"
2300
+ exit 1
2301
+ ;;
2302
+ esac
2303
+
2288
2304
echo " --- Installing ${product} ---"
2305
+ XCTEST_BUILD_DIR=$( build_directory ${deployment_target} xctest)
2306
+ XCTEST_INSTALL_PREFIX=" ${INSTALL_DESTDIR} /${INSTALL_PREFIX} /lib/swift/${LIB_TARGET} "
2307
+ # Note that installing directly to /usr/lib/swift usually
2308
+ # requires root permissions.
2289
2309
set -x
2290
- " ${XCTEST_SOURCE_DIR} " /build_script.py --swiftc=" ${SWIFTC_BIN} " \
2291
- --build-dir=" ${build_dir} " \
2292
- --library-install-path=" ${XCTEST_INSTALL_PREFIX} " \
2293
- --module-install-path=" ${XCTEST_INSTALL_PREFIX} " /" ${SWIFT_HOST_VARIANT_ARCH} " \
2294
- --swift-build-dir=" ${SWIFT_BUILD_PATH} " ${ARCH_FLAG}
2310
+ " ${XCTEST_SOURCE_DIR} " /build_script.py install \
2311
+ --library-install-path=" ${XCTEST_INSTALL_PREFIX} " \
2312
+ --module-install-path=" ${XCTEST_INSTALL_PREFIX} " /" ${SWIFT_HOST_VARIANT_ARCH} " \
2313
+ " ${XCTEST_BUILD_DIR} "
2295
2314
{ set +x; } 2> /dev/null
2296
-
2315
+
2297
2316
# As XCTest installation is self-contained, we break early here.
2298
2317
continue
2299
2318
;;
0 commit comments