clang API Documentation
#include <DirectoryLookup.h>
Public Types | |
enum | LookupType_t { LT_NormalDir, LT_Framework, LT_HeaderMap } |
Public Member Functions | |
DirectoryLookup (const DirectoryEntry *dir, SrcMgr::CharacteristicKind DT, bool isFramework) | |
DirectoryLookup (const HeaderMap *map, SrcMgr::CharacteristicKind DT, bool isIndexHeaderMap) | |
LookupType_t | getLookupType () const |
const char * | getName () const |
const DirectoryEntry * | getDir () const |
const DirectoryEntry * | getFrameworkDir () const |
const HeaderMap * | getHeaderMap () const |
bool | isNormalDir () const |
isNormalDir - Return true if this is a normal directory, not a header map. | |
bool | isFramework () const |
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 |
bool | isSystemHeaderDirectory () const |
Whether this describes a system header directory. | |
bool | isIndexHeaderMap () const |
Whether this header map is building a framework or not. | |
const FileEntry * | LookupFile (StringRef &Filename, HeaderSearch &HS, SmallVectorImpl< char > *SearchPath, SmallVectorImpl< char > *RelativePath, ModuleMap::KnownHeader *SuggestedModule, bool &InUserSpecifiedSystemFramework, bool &HasBeenMapped, SmallVectorImpl< char > &MappedName) const |
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 32 of file DirectoryLookup.h.
Definition at line 34 of file DirectoryLookup.h.
clang::DirectoryLookup::DirectoryLookup | ( | const DirectoryEntry * | dir, |
SrcMgr::CharacteristicKind | DT, | ||
bool | isFramework | ||
) | [inline] |
DirectoryLookup ctor - Note that this ctor *does not take ownership* of 'dir'.
Definition at line 68 of file DirectoryLookup.h.
clang::DirectoryLookup::DirectoryLookup | ( | const HeaderMap * | map, |
SrcMgr::CharacteristicKind | DT, | ||
bool | isIndexHeaderMap | ||
) | [inline] |
DirectoryLookup ctor - Note that this ctor *does not take ownership* of 'map'.
Definition at line 78 of file DirectoryLookup.h.
const DirectoryEntry* clang::DirectoryLookup::getDir | ( | ) | const [inline] |
getDir - Return the directory that this entry refers to.
Definition at line 95 of file DirectoryLookup.h.
References isNormalDir().
Referenced by getName(), LookupFile(), and RemoveDuplicates().
SrcMgr::CharacteristicKind clang::DirectoryLookup::getDirCharacteristic | ( | ) | const [inline] |
DirCharacteristic - The type of directory this is, one of the DirType enum values.
Definition at line 133 of file DirectoryLookup.h.
Referenced by isSystemHeaderDirectory(), clang::HeaderSearch::LookupFile(), and RemoveDuplicates().
const DirectoryEntry* clang::DirectoryLookup::getFrameworkDir | ( | ) | const [inline] |
getFrameworkDir - Return the directory that this framework refers to.
Definition at line 101 of file DirectoryLookup.h.
References isFramework().
Referenced by getName(), and RemoveDuplicates().
const HeaderMap* clang::DirectoryLookup::getHeaderMap | ( | ) | const [inline] |
getHeaderMap - Return the directory that this entry refers to.
Definition at line 107 of file DirectoryLookup.h.
References isHeaderMap().
Referenced by getName(), LookupFile(), and RemoveDuplicates().
LookupType_t clang::DirectoryLookup::getLookupType | ( | ) | const [inline] |
getLookupType - Return the kind of directory lookup that this is: either a normal directory, a framework path, or a HeaderMap.
Definition at line 87 of file DirectoryLookup.h.
Referenced by isFramework(), isHeaderMap(), isNormalDir(), and RemoveDuplicates().
const char * DirectoryLookup::getName | ( | ) | const |
getName - Return the directory or filename corresponding to this lookup object.
Definition at line 227 of file HeaderSearch.cpp.
References getDir(), clang::HeaderMap::getFileName(), getFrameworkDir(), getHeaderMap(), clang::DirectoryEntry::getName(), isFramework(), isHeaderMap(), and isNormalDir().
Referenced by LookupFile(), and RemoveDuplicates().
bool clang::DirectoryLookup::haveSearchedAllModuleMaps | ( | ) | const [inline] |
Determine whether we have already searched this entire directory for module maps.
Definition at line 123 of file DirectoryLookup.h.
bool clang::DirectoryLookup::isFramework | ( | ) | const [inline] |
isFramework - True if this is a framework directory.
Definition at line 116 of file DirectoryLookup.h.
References getLookupType(), and LT_Framework.
Referenced by getFrameworkDir(), getName(), LookupFile(), and RemoveDuplicates().
bool clang::DirectoryLookup::isHeaderMap | ( | ) | const [inline] |
isHeaderMap - Return true if this is a header map, not a normal directory.
Definition at line 119 of file DirectoryLookup.h.
References getLookupType(), and LT_HeaderMap.
Referenced by getHeaderMap(), getName(), isIndexHeaderMap(), LookupFile(), and RemoveDuplicates().
bool clang::DirectoryLookup::isIndexHeaderMap | ( | ) | const [inline] |
Whether this header map is building a framework or not.
Definition at line 143 of file DirectoryLookup.h.
References isHeaderMap().
Referenced by clang::HeaderSearch::LookupFile().
bool clang::DirectoryLookup::isNormalDir | ( | ) | const [inline] |
isNormalDir - Return true if this is a normal directory, not a header map.
Definition at line 112 of file DirectoryLookup.h.
References getLookupType(), and LT_NormalDir.
Referenced by getDir(), getName(), LookupFile(), and RemoveDuplicates().
bool clang::DirectoryLookup::isSystemHeaderDirectory | ( | ) | const [inline] |
Whether this describes a system header directory.
Definition at line 138 of file DirectoryLookup.h.
References clang::SrcMgr::C_User, and getDirCharacteristic().
Referenced by LookupFile().
const FileEntry * DirectoryLookup::LookupFile | ( | StringRef & | Filename, |
HeaderSearch & | HS, | ||
SmallVectorImpl< char > * | SearchPath, | ||
SmallVectorImpl< char > * | RelativePath, | ||
ModuleMap::KnownHeader * | SuggestedModule, | ||
bool & | InUserSpecifiedSystemFramework, | ||
bool & | HasBeenMapped, | ||
SmallVectorImpl< char > & | MappedName | ||
) | 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. | |
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. | |
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] | 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. |
LookupFile - Lookup the specified file in this search path, returning it if it exists or returning null if not.
Definition at line 265 of file HeaderSearch.cpp.
References getDir(), clang::FileManager::getFile(), getFileAndSuggestModule(), clang::HeaderSearch::getFileMgr(), getHeaderMap(), clang::DirectoryEntry::getName(), getName(), isFramework(), isHeaderMap(), isNormalDir(), isSystemHeaderDirectory(), clang::HeaderMap::LookupFile(), and clang::HeaderMap::lookupFilename().
void clang::DirectoryLookup::setSearchedAllModuleMaps | ( | bool | SAMM | ) | [inline] |
Specify whether we have already searched all of the subdirectories for module maps.
Definition at line 127 of file DirectoryLookup.h.
Dir - This is the actual directory that we're referring to for a normal directory or a framework.
Definition at line 43 of file DirectoryLookup.h.
Map - This is the HeaderMap if this is a headermap lookup.
Definition at line 47 of file DirectoryLookup.h.