mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Swift has some module maps it overlays on Linux and Windows that groups all of the C standard library headers into a single module. This doesn’t allow clang and C++ headers to layer properly with the OS/SDK modules. clang will set -fbuiltin-headers-in-system-modules as necessary for Apple SDKs, but Swift will need to pass that flag itself when required by its module maps.
20 lines
1.2 KiB
Swift
20 lines
1.2 KiB
Swift
// Emit the explicit module.
|
|
// RUN: %empty-directory(%t)
|
|
// RUN: %swift-frontend -emit-pcm -direct-clang-cc1-module-build -only-use-extra-clang-opts -module-name script -o %t/script.pcm %S/Inputs/custom-modules/module.modulemap -Xcc %S/Inputs/custom-modules/module.modulemap -Xcc -o -Xcc %t/script.pcm -Xcc -fmodules -Xcc -triple -Xcc %target-triple -Xcc -x -Xcc objective-c -dump-clang-diagnostics 2> %t.diags.txt
|
|
|
|
// Sometimes returns a 1 exit code with no stdout or stderr or even an indication of which command failed.
|
|
// XFAIL: OS=linux-gnu
|
|
|
|
// Verify some of the output of the -dump-pcm flag.
|
|
// RUN: %swift-dump-pcm %t/script.pcm | %FileCheck %s --check-prefix=CHECK-DUMP
|
|
// CHECK-DUMP: Information for module file '{{.*}}/script.pcm':
|
|
// CHECK-DUMP: Module name: script
|
|
// CHECK-DUMP: Module map file: {{.*[/\\]}}Inputs{{/|\\}}custom-modules{{/|\\}}module.modulemap
|
|
|
|
// Verify that the clang command-line used is cc1
|
|
// RUN: %FileCheck -check-prefix CHECK-CLANG -DTRIPLE=%target-triple %s < %t.diags.txt
|
|
// CHECK-CLANG: '{{.*[/\\]}}module.modulemap' '-o' '{{.*[/\\]}}script.pcm' '-fmodules' '-triple' '[[TRIPLE]]' '-x' 'objective-c'
|
|
|
|
import script
|
|
var _ : ScriptTy
|