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,
154 : AlreadySeen(AlreadySeen) {}
157 Commands.push_back(std::move(
Cmd));
163 Dependencies.push_back(std::string(
File));
167 PrebuiltModuleDeps.emplace_back(std::move(PMD));
171 ClangModuleDeps[MD.
ID] = std::move(MD);
175 DirectModuleDeps.push_back(
ID);
179 ContextHash = std::move(Hash);
186 std::vector<std::string> Dependencies;
187 std::vector<PrebuiltModuleDep> PrebuiltModuleDeps;
188 llvm::MapVector<ModuleID, ModuleDeps> ClangModuleDeps;
189 std::vector<ModuleID> DirectModuleDeps;
190 std::vector<Command> Commands;
191 std::string ContextHash;
192 std::vector<std::string> OutputPaths;
193 const llvm::DenseSet<ModuleID> &AlreadySeen;
203 : LookupModuleOutput(
std::move(LMO)) {
204 if (!LookupModuleOutput) {
205 LookupModuleOutput = [](
const ModuleID &,
207 llvm::report_fatal_error(
"unexpected call to lookupModuleOutput");
214 return LookupModuleOutput(
ID,
Kind);
enum clang::sema::@1655::IndirectLocalPathEntry::EntryKind Kind
DependencyOutputOptions - Options for controlling the compiler dependency file generation.
The JSON file list parser is used to communicate input to InstallAPI.