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

Classes

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...
 

Typedefs

using DependencyDirectivesTy = SmallVector< dependency_directives_scan::Directive, 20 >
 
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<> >
 

Enumerations

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...
 

Typedef Documentation

◆ 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 152 of file ModuleDepCollector.h.

Enumeration Type Documentation

◆ ModuleOutputKind

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

Enumerator
ModuleFile 

The module file (.pcm). Required.

DependencyFile 

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

DependencyTargets 

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.

DiagnosticSerializationFile 

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

Definition at line 97 of file ModuleDepCollector.h.

◆ ScanningMode

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

Enumerator
CanonicalPreprocessing 

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

DependencyDirectivesScan 

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

Enumerator
None 
HeaderSearch 

Remove unused header search paths including header maps.

SystemWarnings 

Remove warnings from system modules.

VFS 

Remove unused -ivfsoverlay arguments.

Macros 

Canonicalize -D and -U options.

DSS_LAST_BITMASK_ENUM 
Default 

Definition at line 51 of file DependencyScanningService.h.

◆ ScanningOutputFormat

The format that is output by the dependency scanner.

Enumerator
Make 

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.

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.

Definition at line 33 of file DependencyScanningService.h.