9#ifndef LLVM_CLANG_DEPENDENCYSCANNING_DEPENDENCYSCANNINGSERVICE_H
10#define LLVM_CLANG_DEPENDENCYSCANNING_DEPENDENCYSCANNINGSERVICE_H
14#include "llvm/ADT/BitmaskEnum.h"
15#include "llvm/Support/Chrono.h"
49#define DSS_LAST_BITMASK_ENUM(Id) \
50 LLVM_MARK_AS_BITMASK_ENUM(Id), All = llvm::NextPowerOf2(Id) - 1
78#undef DSS_LAST_BITMASK_ENUM
87 bool EagerLoadModules =
false,
bool TraceVFS =
false,
88 std::time_t BuildSessionTimestamp =
89 llvm::sys::toTimeT(std::chrono::system_clock::now()));
115 const bool EagerLoadModules;
123 std::time_t BuildSessionTimestamp;
This class is a shared cache, that caches the 'stat' and 'open' calls to the underlying real file sys...
ModuleCacheEntries & getModuleCacheEntries()
std::time_t getBuildSessionTimestamp() const
DependencyScanningService(ScanningMode Mode, ScanningOutputFormat Format, ScanningOptimizations OptimizeArgs=ScanningOptimizations::Default, bool EagerLoadModules=false, bool TraceVFS=false, std::time_t BuildSessionTimestamp=llvm::sys::toTimeT(std::chrono::system_clock::now()))
bool shouldTraceVFS() const
ScanningOptimizations getOptimizeArgs() const
DependencyScanningFilesystemSharedCache & getSharedCache()
ScanningMode getMode() const
ScanningOutputFormat getFormat() const
bool shouldEagerLoadModules() const
@ VFS
Remove unused -ivfsoverlay arguments.
@ IgnoreCWD
Ignore the compiler's working directory if it is safe.
@ SystemWarnings
Remove warnings from system modules.
@ Macros
Canonicalize -D and -U options.
@ HeaderSearch
Remove unused header search paths including header maps.
ScanningOutputFormat
The format that is output by the dependency scanner.
@ Make
This is the Makefile compatible dep format.
@ Full
This outputs the full clang module dependency graph suitable for use for explicitly building modules.
@ P1689
This outputs the dependency graph for standard c++ modules in P1689R5 format.
ScanningMode
The mode in which the dependency scanner will operate to find the dependencies.
@ DependencyDirectivesScan
This mode is used to compute the dependencies by running the preprocessor with special kind of lexing...
@ CanonicalPreprocessing
This mode is used to compute the dependencies by running the preprocessor over the source files.
The JSON file list parser is used to communicate input to InstallAPI.