| // RUN: rm -rf %t.dir |
| // RUN: split-file %s %t.dir |
| // RUN: sed -e "s|DIR|%/t.dir|g" %t.dir/build/compile-commands.json.in > %t.dir/build/compile-commands.json |
| // RUN: sed -e "s|DIR|%/t.dir|g" %t.dir/build/vfs.yaml.in > %t.dir/build/vfs.yaml |
| // RUN: clang-scan-deps -compilation-database %t.dir/build/compile-commands.json \ |
| // RUN: -reuse-filemanager=0 -j 1 -format experimental-full \ |
| // RUN: -mode preprocess-dependency-directives -generate-modules-path-args > %t.db |
| // RUN: %deps-to-rsp %t.db --module-name=A > %t.A.cc1.rsp |
| // RUN: cat %t.A.cc1.rsp | sed 's:\\\\\?:/:g' | FileCheck %s |
| |
| // CHECK-NOT: build/module.modulemap |
| // CHECK: A/module.modulemap |
| // CHECK-NOT: build/module.modulemap |
| |
| //--- build/compile-commands.json.in |
| |
| [ |
| { |
| "directory": "DIR", |
| "command": "clang DIR/main.m -Imodules/A -fmodules -fmodules-cache-path=DIR/module-cache -fimplicit-modules -fimplicit-module-maps -ivfsoverlay build/vfs.yaml", |
| "file": "DIR/main.m" |
| }, |
| { |
| "directory": "DIR", |
| "command": "clang DIR/main.m -Imodules/A -fmodules -Xclang -fno-modules-share-filemanager -fmodules-cache-path=DIR/module-cache-unshared -fimplicit-modules -fimplicit-module-maps -ivfsoverlay build/vfs.yaml", |
| "file": "DIR/main.m" |
| } |
| ] |
| |
| //--- build/module.modulemap |
| |
| module A { |
| umbrella header "A.h" |
| } |
| |
| //--- modules/A/A.h |
| |
| typedef int A_t; |
| |
| //--- build/vfs.yaml.in |
| |
| { |
| "version": 0, |
| "case-sensitive": "false", |
| "use-external-names": true, |
| "roots": [ |
| { |
| "contents": [ |
| { |
| "external-contents": "DIR/build/module.modulemap", |
| "name": "module.modulemap", |
| "type": "file" |
| }], |
| "name": "DIR/modules/A", |
| "type": "directory" |
| } |
| ] |
| } |
| |
| //--- main.m |
| |
| @import A; |
| |
| A_t a = 0; |