// The slash direction in linux and windows are different. // Also the command to create symbolic link is different. // UNSUPPORTED: system-windows // // RUN: rm -fr %t // RUN: mkdir -p %t // RUN: split-file %s %t // // RUN: EXPECTED_RESOURCE_DIR=`%clang -print-resource-dir` && \ // RUN: ln -s %clang++ %t/clang++ && \ // RUN: sed "s|EXPECTED_RESOURCE_DIR|$EXPECTED_RESOURCE_DIR|g; s|DIR|%/t|g" %t/P1689.json.in > %t/P1689.json && \ // RUN: clang-scan-deps -compilation-database %t/P1689.json -format=p1689 | FileCheck %t/a.cpp -DPREFIX=%/t && \ // RUN: clang-scan-deps -format=p1689 \ // RUN: -- %t/clang++ -std=c++20 -c -fprebuilt-module-path=%t %t/a.cpp -o %t/a.o \ // RUN: -resource-dir $EXPECTED_RESOURCE_DIR | FileCheck %t/a.cpp -DPREFIX=%/t //--- P1689.json.in [ { "directory": "DIR", "command": "DIR/clang++ -std=c++20 -c -fprebuilt-module-path=DIR DIR/a.cpp -o DIR/a.o -resource-dir EXPECTED_RESOURCE_DIR", "file": "DIR/a.cpp", "output": "DIR/a.o" } ] //--- a.cpp #include "a.h" import b; // CHECK: { // CHECK-NEXT: "revision": 0, // CHECK-NEXT: "rules": [ // CHECK-NEXT: { // CHECK-NEXT: "primary-output": "[[PREFIX]]/a.o", // CHECK-NEXT: "requires": [ // CHECK-NEXT: { // CHECK-NEXT: "logical-name": "b" // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: ], // CHECK-NEXT: "version": 1 // CHECK-NEXT: } //--- a.h