@@ -328,12 +328,13 @@ class ClangImporterDependencyCollector : public clang::DependencyCollector
328
328
// / The FileCollector is used by LLDB to generate reproducers. It's not used
329
329
// / by Swift to track dependencies.
330
330
std::shared_ptr<llvm::FileCollector> FileCollector;
331
- const bool TrackSystemDeps ;
331
+ const IntermoduleDepTrackingMode Mode ;
332
332
333
333
public:
334
334
ClangImporterDependencyCollector (
335
- bool TrackSystemDeps, std::shared_ptr<llvm::FileCollector> FileCollector)
336
- : FileCollector(FileCollector), TrackSystemDeps(TrackSystemDeps) {}
335
+ IntermoduleDepTrackingMode Mode,
336
+ std::shared_ptr<llvm::FileCollector> FileCollector)
337
+ : FileCollector(FileCollector), Mode(Mode) {}
337
338
338
339
void excludePath (StringRef filename) {
339
340
ExcludedPaths.insert (filename);
@@ -345,7 +346,9 @@ class ClangImporterDependencyCollector : public clang::DependencyCollector
345
346
|| Filename == ImporterImpl::bridgingHeaderBufferName);
346
347
}
347
348
348
- bool needSystemDependencies () override { return TrackSystemDeps; }
349
+ bool needSystemDependencies () override {
350
+ return Mode == IntermoduleDepTrackingMode::IncludeSystem;
351
+ }
349
352
350
353
bool sawDependency (StringRef Filename, bool FromClangModule,
351
354
bool IsSystem, bool IsClangModuleFile,
@@ -375,8 +378,9 @@ class ClangImporterDependencyCollector : public clang::DependencyCollector
375
378
376
379
std::shared_ptr<clang::DependencyCollector>
377
380
ClangImporter::createDependencyCollector (
378
- bool TrackSystemDeps, std::shared_ptr<llvm::FileCollector> FileCollector) {
379
- return std::make_shared<ClangImporterDependencyCollector>(TrackSystemDeps,
381
+ IntermoduleDepTrackingMode Mode,
382
+ std::shared_ptr<llvm::FileCollector> FileCollector) {
383
+ return std::make_shared<ClangImporterDependencyCollector>(Mode,
380
384
FileCollector);
381
385
}
382
386
0 commit comments