clang 19.0.0git
Classes | Typedefs | Enumerations | Functions
clang::tooling::dependencies Namespace Reference


struct  CachedFileContents
 Contents and directive tokens of a cached file entry. More...
class  CachedFileSystemEntry
 An in-memory representation of a file system entity that is of interest to the dependency scanning filesystem. More...
class  CallbackActionController
 A simple dependency action controller that uses a callback. More...
struct  Command
 A command-line tool invocation that is part of building a TU. More...
class  DependencyActionController
 Dependency scanner callbacks that are used during scanning to influence the behaviour of the scan - for example, to customize the scanned invocations. More...
class  DependencyConsumer
class  DependencyScanningFilesystemLocalCache
 This class is a local cache, that caches the 'stat' and 'open' calls to the underlying real file system. More...
class  DependencyScanningFilesystemSharedCache
 This class is a shared cache, that caches the 'stat' and 'open' calls to the underlying real file system, and the scanned preprocessor directives of files. More...
class  DependencyScanningService
 The dependency scanning service contains shared configuration and state that is used by the individual dependency scanning workers. More...
class  DependencyScanningTool
 The high-level implementation of the dependency discovery tool that runs on an individual worker thread. More...
class  DependencyScanningWorker
 An individual dependency scanning worker that is able to run on its own thread. More...
class  DependencyScanningWorkerFilesystem
 A virtual file system optimized for the dependency discovery. More...
class  EntryRef
 Reference to a CachedFileSystemEntry. More...
class  FullDependencyConsumer
class  ModuleDepCollector
 Collects modular and non-modular dependencies of the main file by attaching ModuleDepCollectorPP to the preprocessor. More...
class  ModuleDepCollectorPP
 Callback that records textual includes and direct modular includes/imports during preprocessing. More...
struct  ModuleDeps
struct  ModuleID
 This is used to identify a specific module. More...
struct  P1689ModuleInfo
 P1689ModuleInfo - Represents the needed information of standard C++20 modules for P1689 format. More...
struct  P1689Rule
struct  PrebuiltModuleDep
 Modular dependency that has already been built prior to the dependency scan. More...
struct  TranslationUnitDeps
 The full dependencies and module graph for a specific input. More...


using DependencyDirectivesTy = SmallVector< dependency_directives_scan::Directive, 20 >
using CachedRealPath = llvm::ErrorOr< std::string >
using LookupModuleOutputCallback = llvm::function_ref< std::string(const ModuleID &, ModuleOutputKind)>
 A callback to lookup module outputs for "-fmodule-file=", "-o" etc.
using ModuleDepsGraph = std::vector< ModuleDeps >
 Graph of modular dependencies.
using PrebuiltModuleVFSMapT = llvm::StringMap< llvm::StringSet<> >


enum class  ScanningMode { CanonicalPreprocessing , DependencyDirectivesScan }
 The mode in which the dependency scanner will operate to find the dependencies. More...
enum class  ScanningOutputFormat { Make , Full , P1689 }
 The format that is output by the dependency scanner. More...
enum class  ScanningOptimizations {
  None = 0 , HeaderSearch = 1 , SystemWarnings = 2 , VFS = 4 ,
  Macros = 8 , DSS_LAST_BITMASK_ENUM =(Macros) , Default = All
enum class  ModuleOutputKind { ModuleFile , DependencyFile , DependencyTargets , DiagnosticSerializationFile }
 An output from a module compilation, such as the path of the module file. More...


void resetBenignCodeGenOptions (frontend::ActionKind ProgramAction, const LangOptions &LangOpts, CodeGenOptions &CGOpts)
 Resets codegen options that don't affect modules/PCH.

Typedef Documentation

◆ CachedRealPath

using clang::tooling::dependencies::CachedRealPath = typedef llvm::ErrorOr<std::string>

Definition at line 145 of file DependencyScanningFilesystem.h.

◆ DependencyDirectivesTy

Definition at line 26 of file DependencyScanningFilesystem.h.

◆ LookupModuleOutputCallback

using clang::tooling::dependencies::LookupModuleOutputCallback = typedef llvm::function_ref<std::string(const ModuleID &, ModuleOutputKind)>

A callback to lookup module outputs for "-fmodule-file=", "-o" etc.

Definition at line 27 of file DependencyScanningTool.h.

◆ ModuleDepsGraph

Graph of modular dependencies.

Definition at line 31 of file DependencyScanningTool.h.

◆ PrebuiltModuleVFSMapT

using clang::tooling::dependencies::PrebuiltModuleVFSMapT = typedef llvm::StringMap<llvm::StringSet<> >

Definition at line 157 of file ModuleDepCollector.h.

Enumeration Type Documentation

◆ ModuleOutputKind

An output from a module compilation, such as the path of the module file.


The module file (.pcm). Required.


The path of the dependency file (.d), if any.


The null-separated list of names to use as the targets in the dependency file, if any.

Defaults to the value of ModuleFile, as in the driver.


The path of the serialized diagnostic file (.dia), if any.

Definition at line 98 of file ModuleDepCollector.h.

◆ ScanningMode

The mode in which the dependency scanner will operate to find the dependencies.


This mode is used to compute the dependencies by running the preprocessor over the source files.


This mode is used to compute the dependencies by running the preprocessor with special kind of lexing after scanning header and source files to get the minimum necessary preprocessor directives for evaluating includes.

Definition at line 21 of file DependencyScanningService.h.

◆ ScanningOptimizations


Remove unused header search paths including header maps.


Remove warnings from system modules.


Remove unused -ivfsoverlay arguments.


Canonicalize -D and -U options.


Definition at line 51 of file DependencyScanningService.h.

◆ ScanningOutputFormat

The format that is output by the dependency scanner.


This is the Makefile compatible dep format.

This will include all of the deps necessary for an implicit modules build, but won't include any intermodule dependency information.


This outputs the full clang module dependency graph suitable for use for explicitly building modules.


This outputs the dependency graph for standard c++ modules in P1689R5 format.

Definition at line 33 of file DependencyScanningService.h.

Function Documentation

◆ resetBenignCodeGenOptions()

void clang::tooling::dependencies::resetBenignCodeGenOptions ( frontend::ActionKind  ProgramAction,
const LangOptions LangOpts,
CodeGenOptions CGOpts