clang 20.0.0git
|
DirectoryLookup - This class represents one entry in the search list that specifies the search order for directories in #include directives. More...
#include "clang/Lex/DirectoryLookup.h"
Public Types | |
enum | LookupType_t { LT_NormalDir , LT_Framework , LT_HeaderMap } |
Public Member Functions | |
DirectoryLookup (DirectoryEntryRef Dir, SrcMgr::CharacteristicKind DT, bool isFramework) | |
This ctor does not take ownership of 'Dir'. | |
DirectoryLookup (const HeaderMap *Map, SrcMgr::CharacteristicKind DT) | |
This ctor does not take ownership of 'Map'. | |
LookupType_t | getLookupType () const |
getLookupType - Return the kind of directory lookup that this is: either a normal directory, a framework path, or a HeaderMap. | |
StringRef | getName () const |
getName - Return the directory or filename corresponding to this lookup object. | |
const DirectoryEntry * | getDir () const |
getDir - Return the directory that this entry refers to. | |
OptionalDirectoryEntryRef | getDirRef () const |
const DirectoryEntry * | getFrameworkDir () const |
getFrameworkDir - Return the directory that this framework refers to. | |
OptionalDirectoryEntryRef | getFrameworkDirRef () const |
const HeaderMap * | getHeaderMap () const |
getHeaderMap - Return the directory that this entry refers to. | |
bool | isNormalDir () const |
isNormalDir - Return true if this is a normal directory, not a header map. | |
bool | isFramework () const |
isFramework - True if this is a framework directory. | |
bool | isHeaderMap () const |
isHeaderMap - Return true if this is a header map, not a normal directory. | |
bool | haveSearchedAllModuleMaps () const |
Determine whether we have already searched this entire directory for module maps. | |
void | setSearchedAllModuleMaps (bool SAMM) |
Specify whether we have already searched all of the subdirectories for module maps. | |
SrcMgr::CharacteristicKind | getDirCharacteristic () const |
DirCharacteristic - The type of directory this is, one of the DirType enum values. | |
bool | isSystemHeaderDirectory () const |
Whether this describes a system header directory. | |
OptionalFileEntryRef | LookupFile (StringRef &Filename, HeaderSearch &HS, SourceLocation IncludeLoc, SmallVectorImpl< char > *SearchPath, SmallVectorImpl< char > *RelativePath, Module *RequestingModule, ModuleMap::KnownHeader *SuggestedModule, bool &InUserSpecifiedSystemFramework, bool &IsFrameworkFound, bool &IsInHeaderMap, SmallVectorImpl< char > &MappedName, bool OpenFile=true) const |
LookupFile - Lookup the specified file in this search path, returning it if it exists or returning null if not. | |
DirectoryLookup - This class represents one entry in the search list that specifies the search order for directories in #include directives.
It represents either a directory, a framework, or a headermap.
Definition at line 30 of file DirectoryLookup.h.
Enumerator | |
---|---|
LT_NormalDir | |
LT_Framework | |
LT_HeaderMap |
Definition at line 32 of file DirectoryLookup.h.
|
inline |
This ctor does not take ownership of 'Dir'.
Definition at line 68 of file DirectoryLookup.h.
|
inline |
This ctor does not take ownership of 'Map'.
Definition at line 75 of file DirectoryLookup.h.
|
inline |
getDir - Return the directory that this entry refers to.
Definition at line 89 of file DirectoryLookup.h.
References isNormalDir().
Referenced by LookupFile(), and RemoveDuplicates().
|
inline |
DirCharacteristic - The type of directory this is, one of the DirType enum values.
Definition at line 135 of file DirectoryLookup.h.
Referenced by isSystemHeaderDirectory(), and RemoveDuplicates().
|
inline |
Definition at line 93 of file DirectoryLookup.h.
References isNormalDir().
Referenced by getName(), and LookupFile().
|
inline |
getFrameworkDir - Return the directory that this framework refers to.
Definition at line 99 of file DirectoryLookup.h.
References isFramework().
Referenced by RemoveDuplicates().
|
inline |
Definition at line 103 of file DirectoryLookup.h.
References isFramework().
Referenced by getName().
|
inline |
getHeaderMap - Return the directory that this entry refers to.
Definition at line 109 of file DirectoryLookup.h.
References isHeaderMap().
Referenced by getName(), LookupFile(), and RemoveDuplicates().
|
inline |
getLookupType - Return the kind of directory lookup that this is: either a normal directory, a framework path, or a HeaderMap.
Definition at line 81 of file DirectoryLookup.h.
Referenced by isFramework(), isHeaderMap(), isNormalDir(), and RemoveDuplicates().
StringRef DirectoryLookup::getName | ( | ) | const |
getName - Return the directory or filename corresponding to this lookup object.
Definition at line 430 of file HeaderSearch.cpp.
References getDirRef(), clang::HeaderMap::getFileName(), getFrameworkDirRef(), getHeaderMap(), clang::DirectoryEntryRef::getName(), isFramework(), isHeaderMap(), and isNormalDir().
Referenced by LookupFile(), and RemoveDuplicates().
|
inline |
Determine whether we have already searched this entire directory for module maps.
Definition at line 125 of file DirectoryLookup.h.
|
inline |
isFramework - True if this is a framework directory.
Definition at line 118 of file DirectoryLookup.h.
References getLookupType(), and LT_Framework.
Referenced by getFrameworkDir(), getFrameworkDirRef(), getName(), LookupFile(), and RemoveDuplicates().
|
inline |
isHeaderMap - Return true if this is a header map, not a normal directory.
Definition at line 121 of file DirectoryLookup.h.
References getLookupType(), and LT_HeaderMap.
Referenced by getHeaderMap(), getName(), LookupFile(), and RemoveDuplicates().
|
inline |
isNormalDir - Return true if this is a normal directory, not a header map.
Definition at line 114 of file DirectoryLookup.h.
References getLookupType(), and LT_NormalDir.
Referenced by getDir(), getDirRef(), getName(), LookupFile(), and RemoveDuplicates().
|
inline |
Whether this describes a system header directory.
Definition at line 140 of file DirectoryLookup.h.
References clang::SrcMgr::C_User, and getDirCharacteristic().
Referenced by LookupFile().
OptionalFileEntryRef DirectoryLookup::LookupFile | ( | StringRef & | Filename, |
HeaderSearch & | HS, | ||
SourceLocation | IncludeLoc, | ||
SmallVectorImpl< char > * | SearchPath, | ||
SmallVectorImpl< char > * | RelativePath, | ||
Module * | RequestingModule, | ||
ModuleMap::KnownHeader * | SuggestedModule, | ||
bool & | InUserSpecifiedSystemFramework, | ||
bool & | IsFrameworkFound, | ||
bool & | IsInHeaderMap, | ||
SmallVectorImpl< char > & | MappedName, | ||
bool | OpenFile = true |
||
) | const |
LookupFile - Lookup the specified file in this search path, returning it if it exists or returning null if not.
Filename | The file to look up relative to the search paths. | |
HS | The header search instance to search with. | |
IncludeLoc | the source location of the #include or #import directive. | |
SearchPath | If not NULL, will be set to the search path relative to which the file was found. | |
RelativePath | If not NULL, will be set to the path relative to SearchPath at which the file was found. This only differs from the Filename for framework includes. | |
RequestingModule | The module in which the lookup was performed. | |
SuggestedModule | If non-null, and the file found is semantically part of a known module, this will be set to the module that should be imported instead of preprocessing/parsing the file found. | |
[out] | InUserSpecifiedSystemFramework | If the file is found, set to true if the file is located in a framework that has been user-specified to be treated as a system framework. |
[out] | IsFrameworkFound | For a framework directory set to true if specified '.framework' directory is found. |
[out] | MappedName | if this is a headermap which maps the filename to a framework include ("Foo.h" -> "Foo/Foo.h"), set the new name to this vector and point Filename to it. |
Definition at line 471 of file HeaderSearch.cpp.
References clang::File, Filename, getDir(), getDirRef(), clang::HeaderSearch::getFileMgr(), getHeaderMap(), clang::DirectoryEntryRef::getName(), getName(), clang::FileManager::getOptionalFileRef(), isFramework(), isHeaderMap(), isNormalDir(), isSystemHeaderDirectory(), clang::HeaderMap::lookupFilename(), Path, and clang::HeaderSearch::searchDirIdx().
|
inline |
Specify whether we have already searched all of the subdirectories for module maps.
Definition at line 129 of file DirectoryLookup.h.