20#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_MODULES_BUILDER_H
21#define LLVM_CLANG_TOOLS_EXTRA_CLANGD_MODULES_BUILDER_H
27#include "clang/Frontend/CompilerInvocation.h"
28#include "llvm/ADT/SmallString.h"
77 llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>)
const = 0;
97 std::unique_ptr<PrerequisiteModules>
102 std::unique_ptr<ModulesBuilderImpl> Impl;
std::unique_ptr< CompilerInvocation > CI
Provides compilation arguments used for parsing C and C++ files.
This class handles building module files for a given source file.
ModulesBuilder & operator=(ModulesBuilder &&)=delete
std::unique_ptr< PrerequisiteModules > buildPrerequisiteModulesFor(PathRef File, const ThreadsafeFS &TFS)
ModulesBuilder & operator=(const ModulesBuilder &)=delete
ModulesBuilder(const ModulesBuilder &)=delete
ModulesBuilder(ModulesBuilder &&)=delete
Store all the needed module files information to parse a single source file.
virtual bool canReuse(const CompilerInvocation &CI, llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem >) const =0
Whether or not the built module files are up to date.
virtual void adjustHeaderSearchOptions(HeaderSearchOptions &Options) const =0
Change commands to load the module files recorded in this PrerequisiteModules first.
virtual ~PrerequisiteModules()=default
Wrapper for vfs::FileSystem for use in multithreaded programs like clangd.
llvm::StringRef PathRef
A typedef to represent a ref to file path.
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//