clang 23.0.0git
clang::dependencies::ModuleDeps Struct Reference

#include "clang/DependencyScanning/ModuleDepCollector.h"

Public Member Functions

void forEachFileDep (llvm::function_ref< void(StringRef)> Cb) const
 Invokes Cb for all file dependencies of this module.
const std::vector< std::string > & getBuildArguments () const
 Get (or compute) the compiler invocation that can be used to build this module.

Public Attributes

ModuleID ID
 The identifier of the module.
bool IsSystem
 Whether this is a "system" module.
bool IsInStableDirectories
 Whether this module is fully composed of file & module inputs from locations likely to stay the same across the active development and build cycle.
bool IgnoreCWD
 Whether current working directory is ignored.
std::string ClangModuleMapFile
 The path to the modulemap file which defines this module.
std::vector< std::string > ModuleMapFileDeps
 A collection of absolute paths to module map files that this module needs to know about.
std::vector< PrebuiltModuleDepPrebuiltModuleDeps
 A collection of prebuilt modular dependencies this module directly depends on, not including transitive dependencies.
std::vector< ModuleIDClangModuleDeps
 A list of module identifiers this module directly depends on, not including transitive dependencies.
llvm::SmallVector< Module::LinkLibrary, 2 > LinkLibraries
 The set of libraries or frameworks to link against when an entity from this module is used.

Friends

class ModuleDepCollector
class ModuleDepCollectorPP

Detailed Description

Definition at line 151 of file ModuleDepCollector.h.

Member Function Documentation

◆ forEachFileDep()

void ModuleDeps::forEachFileDep ( llvm::function_ref< void(StringRef)> Cb) const

Invokes Cb for all file dependencies of this module.

Each provided StringRef is only valid within the individual callback invocation.

Definition at line 22 of file ModuleDepCollector.cpp.

References clang::ASTReader::ResolveImportedPath().

◆ getBuildArguments()

const std::vector< std::string > & ModuleDeps::getBuildArguments ( ) const

Get (or compute) the compiler invocation that can be used to build this module.

Does not include argv[0].

Definition at line 32 of file ModuleDepCollector.cpp.

◆ ModuleDepCollector

friend class ModuleDepCollector
friend

Definition at line 203 of file ModuleDepCollector.h.

References ModuleDepCollector.

Referenced by ModuleDepCollector.

◆ ModuleDepCollectorPP

friend class ModuleDepCollectorPP
friend

Definition at line 204 of file ModuleDepCollector.h.

References ModuleDepCollectorPP.

Referenced by ModuleDepCollectorPP.

Member Data Documentation

◆ ClangModuleDeps

std::vector<ModuleID> clang::dependencies::ModuleDeps::ClangModuleDeps

A list of module identifiers this module directly depends on, not including transitive dependencies.

This may include modules with a different context hash when it can be determined that the differences are benign for this compilation.

Definition at line 188 of file ModuleDepCollector.h.

Referenced by getModuleContextHash().

◆ ClangModuleMapFile

std::string clang::dependencies::ModuleDeps::ClangModuleMapFile

The path to the modulemap file which defines this module.

This can be used to explicitly build this module. This file will additionally appear in FileDeps as a dependency.

Definition at line 173 of file ModuleDepCollector.h.

◆ ID

ModuleID clang::dependencies::ModuleDeps::ID

The identifier of the module.

Definition at line 153 of file ModuleDepCollector.h.

Referenced by clang::dependencies::FullDependencyConsumer::handleModuleDependency().

◆ IgnoreCWD

bool clang::dependencies::ModuleDeps::IgnoreCWD

Whether current working directory is ignored.

Definition at line 167 of file ModuleDepCollector.h.

Referenced by getModuleContextHash().

◆ IsInStableDirectories

bool clang::dependencies::ModuleDeps::IsInStableDirectories

Whether this module is fully composed of file & module inputs from locations likely to stay the same across the active development and build cycle.

For example, when all those input paths only resolve in Sysroot.

External paths, as opposed to virtual file paths, are always used for computing this value.

Definition at line 164 of file ModuleDepCollector.h.

◆ IsSystem

bool clang::dependencies::ModuleDeps::IsSystem

Whether this is a "system" module.

Definition at line 156 of file ModuleDepCollector.h.

◆ LinkLibraries

llvm::SmallVector<Module::LinkLibrary, 2> clang::dependencies::ModuleDeps::LinkLibraries

The set of libraries or frameworks to link against when an entity from this module is used.

Definition at line 192 of file ModuleDepCollector.h.

◆ ModuleMapFileDeps

std::vector<std::string> clang::dependencies::ModuleDeps::ModuleMapFileDeps

A collection of absolute paths to module map files that this module needs to know about.

The ordering is significant.

Definition at line 177 of file ModuleDepCollector.h.

◆ PrebuiltModuleDeps

std::vector<PrebuiltModuleDep> clang::dependencies::ModuleDeps::PrebuiltModuleDeps

A collection of prebuilt modular dependencies this module directly depends on, not including transitive dependencies.

Definition at line 181 of file ModuleDepCollector.h.


The documentation for this struct was generated from the following files: