brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.2 KiB · 3719d71 Raw
121 lines · c
1// RUN: rm -rf %t2// RUN: mkdir %t3// RUN: mkdir %t/Inputs4// RUN: cp -R %S/Inputs/frameworks %t/Inputs/frameworks5// RUN: split-file %s %t6 7//--- module.modulemap8module root { header "root.h" }9module direct { header "direct.h" }10module transitive {11  header "transitive.h"12  link framework "libTransitive"13}14//--- root.h15#include "direct.h"16#include "root/textual.h"17#include "Framework/Framework.h"18//--- direct.h19#include "transitive.h"20//--- transitive.h21// empty22 23//--- root/textual.h24// This is here to verify that the "root" directory doesn't clash with name of25// the "root" module.26 27//--- cdb.json.template28[{29  "file": "",30  "directory": "DIR",31  "command": "clang -fmodules -fmodules-cache-path=DIR/cache -FDIR/Inputs/frameworks -I DIR -x c"32}]33 34// RUN: sed "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json35// RUN: clang-scan-deps -compilation-database %t/cdb.json -format experimental-full -module-names=root > %t/result.json36// RUN: cat %t/result.json | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t %s37 38// CHECK:      {39// CHECK-NEXT:   "modules": [40// CHECK-NEXT:     {41// CHECK-NEXT:       "clang-module-deps": [],42// CHECK-NEXT:       "clang-modulemap-file": "[[PREFIX]]/Inputs/frameworks/module.modulemap",43// CHECK-NEXT:       "command-line": [44// CHECK:            ],45// CHECK-NEXT:       "context-hash": "{{.*}}",46// CHECK-NEXT:       "file-deps": [47// CHECK-NEXT:         "[[PREFIX]]/Inputs/frameworks/module.modulemap",48// CHECK-NEXT:         "[[PREFIX]]/Inputs/frameworks/Framework.framework/Headers/Framework.h"49// CHECK-NEXT:       ],50// CHECK-NEXT:       "link-libraries": [51// CHECK-NEXT:         {52// CHECK-NEXT:           "isFramework": true,53// CHECK-NEXT:           "link-name": "Framework"54// CHECK-NEXT:         }55// CHECK-NEXT:       ],56// CHECK-NEXT:       "name": "Framework"57// CHECK-NEXT:     },58// CHECK-NEXT:     {59// CHECK-NEXT:       "clang-module-deps": [60// CHECK-NEXT:         {61// CHECK-NEXT:           "context-hash": "{{.*}}",62// CHECK-NEXT:           "module-name": "transitive"63// CHECK-NEXT:         }64// CHECK-NEXT:       ],65// CHECK-NEXT:       "clang-modulemap-file": "[[PREFIX]]/module.modulemap",66// CHECK-NEXT:       "command-line": [67// CHECK:            ],68// CHECK-NEXT:       "context-hash": "{{.*}}",69// CHECK-NEXT:       "file-deps": [70// CHECK-NEXT:         "[[PREFIX]]/module.modulemap",71// CHECK-NEXT:         "[[PREFIX]]/direct.h"72// CHECK-NEXT:       ],73// CHECK-NEXT:       "link-libraries": [],74// CHECK-NEXT:       "name": "direct"75// CHECK-NEXT:     },76// CHECK-NEXT:     {77// CHECK-NEXT:       "clang-module-deps": [78// CHECK-NEXT:         {79// CHECK-NEXT:           "context-hash": "{{.*}}",80// CHECK-NEXT:           "module-name": "Framework"81// CHECK-NEXT:         },82// CHECK-NEXT:         {83// CHECK-NEXT:           "context-hash": "{{.*}}",84// CHECK-NEXT:           "module-name": "direct"85// CHECK-NEXT:         }86// CHECK-NEXT:       ],87// CHECK-NEXT:       "clang-modulemap-file": "[[PREFIX]]/module.modulemap",88// CHECK-NEXT:       "command-line": [89// CHECK:            ],90// CHECK-NEXT:       "context-hash": "{{.*}}",91// CHECK-NEXT:       "file-deps": [92// CHECK-NEXT:         "[[PREFIX]]/module.modulemap",93// CHECK-NEXT:         "[[PREFIX]]/root.h",94// CHECK-NEXT:         "[[PREFIX]]/root/textual.h",95// CHECK-NEXT:         "[[PREFIX]]/Inputs/frameworks/module.modulemap"96// CHECK-NEXT:       ],97// CHECK-NEXT:       "link-libraries": [],98// CHECK-NEXT:       "name": "root"99// CHECK-NEXT:     },100// CHECK-NEXT:     {101// CHECK-NEXT:       "clang-module-deps": [],102// CHECK-NEXT:       "clang-modulemap-file": "[[PREFIX]]/module.modulemap",103// CHECK-NEXT:       "command-line": [104// CHECK:            ],105// CHECK-NEXT:       "context-hash": "{{.*}}",106// CHECK-NEXT:       "file-deps": [107// CHECK-NEXT:         "[[PREFIX]]/module.modulemap",108// CHECK-NEXT:         "[[PREFIX]]/transitive.h"109// CHECK-NEXT:       ],110// CHECK-NEXT:       "link-libraries": [111// CHECK-NEXT:         {112// CHECK-NEXT:           "isFramework": true,113// CHECK-NEXT:           "link-name": "libTransitive"114// CHECK-NEXT:         }115// CHECK-NEXT:       ],116// CHECK-NEXT:       "name": "transitive"117// CHECK-NEXT:     }118// CHECK-NEXT:   ],119// CHECK-NEXT:   "translation-units": []120// CHECK-NEXT: }121