#ifndef LLVM_CLANG_TOOLING_DEPENDENCYSCANNING_MODULEDEPCOLLECTOR_H
#define LLVM_CLANG_TOOLING_DEPENDENCYSCANNING_MODULEDEPCOLLECTOR_H
#include "clang/Basic/LLVM.h"
#include "clang/Basic/Module.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Frontend/CompilerInvocation.h"
#include "clang/Frontend/Utils.h"
#include "clang/Lex/HeaderSearch.h"
#include "clang/Lex/PPCallbacks.h"
#include "clang/Serialization/ASTReader.h"
#include "clang/Tooling/DependencyScanning/DependencyScanningService.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/Support/raw_ostream.h"
#include <optional>
#include <string>
#include <unordered_map>
#include <variant>
namespace clang {
namespace tooling {
namespace dependencies {
class DependencyActionController;
class DependencyConsumer;
struct PrebuiltModuleDep { … };
struct ModuleID { … };
struct P1689ModuleInfo { … };
enum class ModuleOutputKind { … };
struct ModuleDeps { … };
PrebuiltModuleVFSMapT;
class ModuleDepCollector;
class ModuleDepCollectorPP final : public PPCallbacks { … };
class ModuleDepCollector final : public DependencyCollector { … };
void resetBenignCodeGenOptions(frontend::ActionKind ProgramAction,
const LangOptions &LangOpts,
CodeGenOptions &CGOpts);
}
}
}
namespace llvm {
inline hash_code hash_value(const clang::tooling::dependencies::ModuleID &ID) { … }
template <> struct DenseMapInfo<clang::tooling::dependencies::ModuleID> { … };
}
#endif