clang
3.7.0
|
#include "clang/Lex/ModuleMap.h"
#include "clang/Basic/CharInfo.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/DiagnosticOptions.h"
#include "clang/Basic/FileManager.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/TargetOptions.h"
#include "clang/Lex/HeaderSearch.h"
#include "clang/Lex/HeaderSearchOptions.h"
#include "clang/Lex/LexDiagnostic.h"
#include "clang/Lex/Lexer.h"
#include "clang/Lex/LiteralSupport.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Host.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/raw_ostream.h"
#include <stdlib.h>
#include "clang/Basic/TokenKinds.def"
Go to the source code of this file.
Classes | |
struct | clang::MMToken |
A token in a module map file. More... | |
class | clang::ModuleMapParser |
Namespaces | |
clang | |
Macros | |
#define | KEYWORD(Keyword, Conditions) .Case(#Keyword, true) |
#define | ALIAS(Keyword, AliasOf, Conditions) .Case(Keyword, true) |
Enumerations | |
enum | AttributeKind |
Enumerates the known attributes. More... | |
Functions | |
static StringRef | sanitizeFilenameAsIdentifier (StringRef Name, SmallVectorImpl< char > &Buffer) |
"Sanitize" a filename so that it can be used as an identifier. More... | |
static bool | isBuiltinHeader (StringRef FileName) |
Determine whether the given file name is the name of a builtin header, supplied by Clang to replace, override, or augment existing system headers. More... | |
static bool | violatesPrivateInclude (Module *RequestingModule, const FileEntry *IncFileEnt, ModuleMap::ModuleHeaderRole Role, Module *RequestedModule) |
static Module * | getTopLevelOrNull (Module *M) |
static bool | isBetterKnownHeader (const ModuleMap::KnownHeader &New, const ModuleMap::KnownHeader &Old) |
static void | inferFrameworkLink (Module *Mod, const DirectoryEntry *FrameworkDir, FileManager &FileMgr) |
For a framework module, infer the framework against which we should link. More... | |
static Module::HeaderKind | headerRoleToKind (ModuleMap::ModuleHeaderRole Role) |
static void | appendSubframeworkPaths (Module *Mod, SmallVectorImpl< char > &Path) |
Append to Paths the set of paths needed to get to the subframework in which the given module lives. More... | |
static std::string | formatModuleId (const ModuleId &Id) |
Format a module-id into a string. More... | |
#define ALIAS | ( | Keyword, | |
AliasOf, | |||
Conditions | |||
) | .Case(Keyword, true) |
#define KEYWORD | ( | Keyword, | |
Conditions | |||
) | .Case(#Keyword, true) |
enum AttributeKind |
Enumerates the known attributes.
Definition at line 1248 of file ModuleMap.cpp.
|
static |
Append to Paths
the set of paths needed to get to the subframework in which the given module lives.
Definition at line 1622 of file ModuleMap.cpp.
References clang::Module::IsFramework, clang::Module::Name, and clang::Module::Parent.
|
static |
Format a module-id into a string.
Definition at line 2003 of file ModuleMap.cpp.
Definition at line 241 of file ModuleMap.cpp.
References clang::Module::getTopLevelModule().
Referenced by clang::ModuleMap::diagnoseHeaderInclusion().
|
static |
Definition at line 773 of file ModuleMap.cpp.
References clang::Module::HK_Normal, clang::Module::HK_Private, clang::Module::HK_PrivateTextual, clang::Module::HK_Textual, clang::ModuleMap::NormalHeader, clang::ModuleMap::PrivateHeader, and clang::ModuleMap::TextualHeader.
Referenced by clang::ModuleMap::addHeader().
|
static |
For a framework module, infer the framework against which we should link.
Definition at line 571 of file ModuleMap.cpp.
References clang::FileManager::getFile(), clang::DirectoryEntry::getName(), clang::Module::IsFramework, clang::Module::isSubFramework(), clang::Module::LinkLibraries, and clang::Module::Name.
|
static |
Definition at line 321 of file ModuleMap.cpp.
References clang::ModuleMap::KnownHeader::getRole(), clang::ModuleMap::PrivateHeader, and clang::ModuleMap::TextualHeader.
Referenced by clang::ModuleMap::findModuleForHeader().
|
static |
Determine whether the given file name is the name of a builtin header, supplied by Clang to replace, override, or augment existing system headers.
Definition at line 150 of file ModuleMap.cpp.
|
static |
"Sanitize" a filename so that it can be used as an identifier.
Definition at line 111 of file ModuleMap.cpp.
References clang::isDigit(), clang::isIdentifierBody(), and clang::isValidIdentifier().
Referenced by clang::ModuleMap::findModuleForHeader(), and clang::ModuleMap::isHeaderUnavailableInModule().
|
static |
Definition at line 212 of file ModuleMap.cpp.
References clang::Module::getTopLevelModule(), clang::Module::Headers, clang::Module::HK_Private, clang::Module::HK_PrivateTextual, and clang::ModuleMap::PrivateHeader.
Referenced by clang::ModuleMap::diagnoseHeaderInclusion().