| # 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' |
| # CHECK-VERBOSE: swiftc -module-name Bar -incremental -emit-dependencies -emit-module -emit-module-path Bar.swiftmodule -output-file-map bar.build/output-file-map.json -parse-as-library -whole-module-optimization -num-threads 1 -c s1.swift -I importB |
| # CHECK-VERBOSE-NEXT: swiftc -module-name Foo -incremental -emit-dependencies -emit-module -emit-module-path Foo.swiftmodule -output-file-map foo.build/output-file-map.json -parse-as-library -whole-module-optimization -num-threads 0 -c s1.swift s2.swift -I importA -I importB -Onone -I somePath |
| |
| # # Sanity check the output file map. |
| # |
| # RUN: %{FileCheck} --check-prefix=CHECK-OUTPUT-FILE-MAP --input-file=%t.build/foo.build/output-file-map.json %s |
| # CHECK-OUTPUT-FILE-MAP: "": { |
| # CHECK-OUTPUT-FILE-MAP-NEXT: "dependencies": "foo.build/Foo.d" |
| # CHECK-OUTPUT-FILE-MAP-NEXT: "object": "foo.build/Foo.o" |
| # |
| # RUN: %{FileCheck} --check-prefix=CHECK-OUTPUT-FILE-MAP-BAR --input-file=%t.build/bar.build/output-file-map.json %s |
| # CHECK-OUTPUT-FILE-MAP-BAR: "": { |
| # CHECK-OUTPUT-FILE-MAP-BAR-NEXT: "dependencies": "bar.build/Bar.d" |
| |
| |
| client: |
| name: swift-build |
| |
| targets: |
| "": ["<output>"] |
| |
| commands: |
| C0: |
| tool: swift-compiler |
| outputs: ["<C0>"] |
| executable: SOURCEDIR/Inputs/pseudo-swiftc |
| module-name: Bar |
| module-output-path: Bar.swiftmodule |
| sources: ["s1.swift"] |
| import-paths: ["importB"] |
| objects: ["bar.build/s1.o"] |
| other-args: [] |
| temps-path: bar.build |
| is-library: true |
| enable-whole-module-optimization: true |
| num-threads: 1 |
| |
| C1: |
| tool: swift-compiler |
| inputs: ["<C0>"] |
| outputs: ["<output>"] |
| executable: SOURCEDIR/Inputs/pseudo-swiftc |
| module-name: Foo |
| module-output-path: Foo.swiftmodule |
| sources: ["s1.swift", "s2.swift"] |
| import-paths: ["importA", "importB"] |
| objects: ["foo.build/s1.o", "foo.build/s2.o"] |
| other-args: ["-Onone", "-I", "somePath"] |
| temps-path: foo.build |
| is-library: true |
| enable-whole-module-optimization: true |