9#ifndef LLVM_CLANG_TOOLING_DEPENDENCYSCANNING_DEPENDENCYSCANNINGTOOL_H
10#define LLVM_CLANG_TOOLING_DEPENDENCYSCANNING_DEPENDENCYSCANNINGTOOL_H
16#include "llvm/ADT/DenseSet.h"
17#include "llvm/ADT/MapVector.h"
24namespace dependencies {
83 llvm::vfs::createPhysicalFileSystem());
107 StringRef CWD, std::string &MakeformatOutput,
108 std::string &MakeformatOutputPath);
112 std::string MakeformatOutput;
113 std::string MakeformatOutputPath;
116 MakeformatOutputPath);
136 const llvm::DenseSet<ModuleID> &AlreadySeen,
143 StringRef ModuleName,
const std::vector<std::string> &CommandLine,
144 StringRef CWD,
const llvm::DenseSet<ModuleID> &AlreadySeen,
156 : AlreadySeen(AlreadySeen) {}
159 Commands.push_back(std::move(
Cmd));
165 Dependencies.push_back(std::string(
File));
169 PrebuiltModuleDeps.emplace_back(std::move(PMD));
173 ClangModuleDeps[MD.
ID] = std::move(MD);
177 DirectModuleDeps.push_back(
ID);
181 ContextHash = std::move(Hash);
188 std::vector<std::string> Dependencies;
189 std::vector<PrebuiltModuleDep> PrebuiltModuleDeps;
190 llvm::MapVector<ModuleID, ModuleDeps> ClangModuleDeps;
191 std::vector<ModuleID> DirectModuleDeps;
192 std::vector<Command> Commands;
193 std::string ContextHash;
194 std::vector<std::string> OutputPaths;
195 const llvm::DenseSet<ModuleID> &AlreadySeen;
205 : LookupModuleOutput(
std::move(LMO)) {
206 if (!LookupModuleOutput) {
207 LookupModuleOutput = [](
const ModuleID &,
209 llvm::report_fatal_error(
"unexpected call to lookupModuleOutput");
216 return LookupModuleOutput(
ID,
Kind);
enum clang::sema::@1718::IndirectLocalPathEntry::EntryKind Kind
DependencyOutputOptions - Options for controlling the compiler dependency file generation.
The JSON file list parser is used to communicate input to InstallAPI.