9#ifndef LLVM_CLANG_TOOLING_DEPENDENCYSCANNING_DEPENDENCYSCANNINGTOOL_H
10#define LLVM_CLANG_TOOLING_DEPENDENCYSCANNING_DEPENDENCYSCANNINGTOOL_H
16#include "llvm/ADT/MapVector.h"
17#include "llvm/ADT/StringSet.h"
18#include "llvm/ADT/StringMap.h"
25namespace dependencies {
84 llvm::vfs::createPhysicalFileSystem());
108 StringRef CWD, std::string &MakeformatOutput,
109 std::string &MakeformatOutputPath);
128 const llvm::StringSet<> &AlreadySeen,
136 const std::vector<std::string> &CommandLine,
137 StringRef CWD,
const llvm::StringSet<> &AlreadySeen,
147 : AlreadySeen(AlreadySeen) {}
150 Commands.push_back(std::move(
Cmd));
156 Dependencies.push_back(std::string(
File));
160 PrebuiltModuleDeps.emplace_back(std::move(PMD));
168 ContextHash = std::move(Hash);
175 std::vector<std::string> Dependencies;
176 std::vector<PrebuiltModuleDep> PrebuiltModuleDeps;
177 llvm::MapVector<std::string, ModuleDeps, llvm::StringMap<unsigned>>
179 std::vector<Command> Commands;
180 std::string ContextHash;
181 std::vector<std::string> OutputPaths;
182 const llvm::StringSet<> &AlreadySeen;
192 : LookupModuleOutput(
std::move(LMO)) {
193 if (!LookupModuleOutput) {
194 LookupModuleOutput = [](
const ModuleID &,
196 llvm::report_fatal_error(
"unexpected call to lookupModuleOutput");
203 return LookupModuleOutput(ID, Kind);
DependencyOutputOptions - Options for controlling the compiler dependency file generation.