class HeaderSearchOptions

Declaration

class HeaderSearchOptions { /* full declaration omitted */ };

Description

HeaderSearchOptions - Helper class for storing options related to the initialization of the HeaderSearch object.

Declared at: clang/include/clang/Lex/HeaderSearchOptions.h:68

Member Variables

public std::string Sysroot
If non-empty, the directory to use as a "virtual system root" for include paths.
public std::vector<Entry> UserEntries
User specified include entries.
public std::vector<SystemHeaderPrefix> SystemHeaderPrefixes
User-specified system header prefixes.
public std::string ResourceDir
The directory which holds the compiler resource files (builtin includes, etc.).
public std::string ModuleCachePath
The directory used for the module cache.
public std::string ModuleUserBuildPath
The directory used for a user build.
public std::map<std::string, std::string, std::less<>> PrebuiltModuleFiles
The mapping of module names to prebuilt module files.
public std::vector<std::string> PrebuiltModulePaths
The directories used to load prebuilt module files.
public std::string ModuleFormat
The module/pch container format.
public unsigned int DisableModuleHash
Note: Only used for testing!
public unsigned int ImplicitModuleMaps
Implicit module maps. This option is enabld by default when modules is enabled.
public unsigned int ModuleMapFileHomeIsCwd
The home directory is where we look for files named in the module map file.
public unsigned int ModuleFileHomeIsCwd
Set the base path of a built module file to be the current working directory. This is useful for sharing module files across machines that build with different paths without having to rewrite all modulemap files to have working directory relative paths.
public unsigned int EnablePrebuiltImplicitModules
Also search for prebuilt implicit modules in the prebuilt module cache path.
public unsigned int ModuleCachePruneInterval = 7 * 24 * 60 * 60
The default value is large, e.g., the operation runs once a week.
public unsigned int ModuleCachePruneAfter = 31 * 24 * 60 * 60
When the module cache is pruned, any module file that has not been accessed in this many seconds will be removed. The default value is large, e.g., a month, to avoid forcing infrequently-used modules to be regenerated often.
public uint64_t BuildSessionTimestamp = 0
This time is used by other optimizations in header search and module loading.
public llvm::SmallSetVector<llvm::CachedHashString, 16> ModulesIgnoreMacros
The set of macro names that should be ignored for the purposes of computing the module hash.
public std::vector<std::string> VFSOverlayFiles
The set of user-provided virtual filesystem overlay files.
public unsigned int UseBuiltinIncludes
Include the compiler builtin includes.
public unsigned int UseStandardSystemIncludes
Include the system standard include search directories.
public unsigned int UseStandardCXXIncludes
Include the system standard C++ library include search directories.
public unsigned int UseLibcxx
Use libc++ instead of the default libstdc++.
public unsigned int Verbose
Whether header search information should be output as for -v.
public unsigned int ModulesValidateOncePerBuildSession
If true, skip verifying input files used by modules if the module was already verified during this build session (see\c BuildSessionTimestamp).
public unsigned int ModulesValidateSystemHeaders
Whether to validate system input files when a module is loaded.
public unsigned int ValidateASTInputFilesContent
public unsigned int UseDebugInfo
Whether the module includes debug information (-gmodules).
public unsigned int ModulesValidateDiagnosticOptions
public unsigned int ModulesHashContent
public unsigned int ModulesStrictContextHash
This includes things like the full header search path, and enabled diagnostics.

Method Overview

Methods

void AddPath(llvm::StringRef Path,
             frontend::IncludeDirGroup Group,
             bool IsFramework,
             bool IgnoreSysRoot)

Description

AddPath - Add the \p Path path to the specified \p Group list.

Declared at: clang/include/clang/Lex/HeaderSearchOptions.h:241

Parameters

llvm::StringRef Path
frontend::IncludeDirGroup Group
bool IsFramework
bool IgnoreSysRoot

void AddPrebuiltModulePath(llvm::StringRef Name)

Declared at: clang/include/clang/Lex/HeaderSearchOptions.h:257

Parameters

llvm::StringRef Name

void AddSystemHeaderPrefix(llvm::StringRef Prefix,
                           bool IsSystemHeader)

Description

AddSystemHeaderPrefix - Override whether # include directives naming a path starting with \p Prefix should be considered as naming a system header.

Declared at: clang/include/clang/Lex/HeaderSearchOptions.h:249

Parameters

llvm::StringRef Prefix
bool IsSystemHeader

void AddVFSOverlayFile(llvm::StringRef Name)

Declared at: clang/include/clang/Lex/HeaderSearchOptions.h:253

Parameters

llvm::StringRef Name

HeaderSearchOptions(
    llvm::StringRef _Sysroot = "/")

Declared at: clang/include/clang/Lex/HeaderSearchOptions.h:228

Parameters

llvm::StringRef _Sysroot = "/"