Skip to content

Commit 021f3a9

Browse files
authored
Merge pull request #63831 from artemcm/DepScanEmitBridgingHeaderDependencyModules
[Dependency Scanning] Record all bridging header module dependencies in the scanning result
2 parents e75b35f + 072dd06 commit 021f3a9

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

lib/DependencyScan/ScanDependencies.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,7 @@ resolveDirectDependencies(CompilerInstance &instance, ModuleDependencyID module,
365365

366366
assert(bridgingModuleDependencies);
367367
for (const auto &clangDep : *bridgingModuleDependencies) {
368+
result.insert({clangDep, ModuleDependencyKind::Clang});
368369
findAllImportedClangModules(ctx, clangDep, cache, allClangModules,
369370
knownModules);
370371
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: mkdir -p %t/clang-module-cache
3+
4+
// RUN: %target-swift-frontend -scan-dependencies -module-cache-path %t/clang-module-cache %s -o %t/deps.json -I %S/Inputs/CHeaders -I %S/Inputs/Swift -import-objc-header %S/Inputs/CHeaders/Bridging.h -swift-version 4
5+
// RUN: %FileCheck %s < %t/deps.json
6+
7+
import E
8+
9+
// CHECK: "swift": "deps"
10+
// CHECK: "directDependencies": [
11+
// CHECK-NEXT: {
12+
// CHECK-DAG: "swift": "E"
13+
// CHECK-DAG: "swift": "Swift"
14+
// CHECK-DAG: "swift": "SwiftOnoneSupport"
15+
// CHECK-DAG: "swift": "_Concurrency"
16+
// CHECK-DAG: "clang": "_SwiftConcurrencyShims"
17+
// CHECK-DAG: "swift": "_StringProcessing"
18+
// The source of dependency on clang:F is the bridging header, ensure it is captured here
19+
// CHECK-DAG: "clang": "F"
20+
// CHECK-DAG: "swift": "F"
21+
22+
// CHECK: "bridgingHeader": {
23+
// CHECK-NEXT: "path": "{{.*}}Bridging.h",
24+
// CHECK-NEXT: "sourceFiles": [
25+
// CHECK-NEXT: "{{.*}}Bridging.h",
26+
// CHECK-NEXT: "{{.*}}BridgingOther.h"
27+
// CHECK-NEXT: ],
28+
// CHECK-NEXT: "moduleDependencies": [
29+
// CHECK-NEXT: "F"

0 commit comments

Comments
 (0)