|
clang 22.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.
References false, isFramework(), LT_Framework, and LT_NormalDir.
|
inline |
This ctor does not take ownership of 'Map'.
Definition at line 75 of file DirectoryLookup.h.
References false, and LT_HeaderMap.
|
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 435 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 DirectoryLookup(), 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 476 of file HeaderSearch.cpp.
References clang::File, getDir(), getDirRef(), clang::HeaderSearch::getFileMgr(), getHeaderMap(), clang::DirectoryEntryRef::getName(), getName(), clang::FileManager::getOptionalFileRef(), isFramework(), isHeaderMap(), isNormalDir(), isSystemHeaderDirectory(), clang::HeaderMap::lookupFilename(), 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.