blob: ee9d56de26ee5a333a3c3b2f89b7044a0ef15536 [file] [log] [blame]
# Check that we communicate properly with the Swift compiler.
#
# RUN: rm -rf %t.build
# RUN: mkdir -p %t.build
# RUN: sed -e "s#SOURCEDIR#%S#g" -e "s#TMPDIR#%t#g" < %s > %t.build/build.swift-build
# RUN: %{swift-build-tool} --no-db --chdir %t.build > %t.out
# RUN: %{swift-build-tool} --no-db -v --chdir %t.build > %t-verbose.out
# RUN: %{FileCheck} --input-file=%t.out %s
# RUN: %{FileCheck} --check-prefix=CHECK-VERBOSE --input-file=%t-verbose.out %s
#
# CHECK: Compile Swift Module 'Foo'
# FIXME: This should quote output paths.
# CHECK-VERBOSE: swiftc -module-name Foo -incremental -emit-dependencies -emit-module -emit-module-path Foo.swiftmodule -output-file-map temps/output-file-map.json -parse-as-library -num-threads 0 -c "s 1.swift" "s 2.swift" -I "import A" -I "import B" -Onone -I "path with spaces"
# Sanity check the output file map.
#
# RUN: %{FileCheck} --check-prefix=CHECK-OUTPUT-FILE-MAP --input-file=%t.build/temps/output-file-map.json %s
# CHECK-OUTPUT-FILE-MAP: "s 1.swift": {
# CHECK-OUTPUT-FILE-MAP-NEXT: "dependencies": "temps/s 1.d"
client:
name: swift-build
targets:
"": ["<output>"]
commands:
C1:
tool: swift-compiler
outputs: ["<output>"]
executable: SOURCEDIR/Inputs/pseudo-swiftc
module-name: Foo
module-output-path: Foo.swiftmodule
sources: ["s 1.swift", "s 2.swift"]
import-paths: ["import A", "import B"]
# FIXME: We can't use spaces in filenames here yet, because of a Swift compiler bug.
objects: ["s1.o", "s2.o"]
other-args: ["-Onone", "-I", "path with spaces"]
temps-path: temps
is-library: true