[clang][deps] Simplify function discovering .pcm and .modulemap files
authorJan Svoboda <jan_svoboda@apple.com>
Tue, 30 Mar 2021 08:45:04 +0000 (10:45 +0200)
committerJan Svoboda <jan_svoboda@apple.com>
Mon, 19 Apr 2021 10:11:39 +0000 (12:11 +0200)
commit32219c8c44787c79edbd68962b554860338651e8
tree74ccfbc63d44189ce8f7706fe8fe15886925776d
parentbbccdf6f81979c0707c6ce25bf7c70be82e2629a
[clang][deps] Simplify function discovering .pcm and .modulemap files

This patch simplifies (and renames) the `appendCommonModuleArguments` function.

It no longer tries to construct the command line for explicitly building modules. Instead, it only performs the DFS traversal of modular dependencies and queries the callbacks to collect paths to `.pcm` and `.modulemap` files.

This makes it more flexible and usable in two contexts:

* Generating additional command line arguments for the main TU in modular build. The `std::vector<std::string>` output parameters can be used to manually generate appropriate command line flags.
* Generate full command line for a module. The output parameters can be the corresponding parts of `CompilerInvocation`. (In a follow-up patch.)

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D100531
clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h
clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
clang/test/ClangScanDeps/modules-full.cpp