clang: clang::installapi Namespace Reference (original ) (raw )The DirectoryScanner for collecting library files on the file system. More...
Functions
std::string
findLibrary (StringRef InstallName, FileManager &FM, ArrayRef < std::string > FrameworkSearchPaths, ArrayRef < std::string > LibrarySearchPaths, ArrayRef < std::string > SearchPaths)
Lookup the dylib or TextAPI file location for a system library or framework.
std::unique_ptr< llvm::MemoryBuffer >
createInputBuffer (InstallAPIContext &Ctx)
Create a buffer that contains all headers to scan for global symbols with.
StringRef
getName (const HeaderType T )
std::optional< std::string >
createIncludeHeaderName (const StringRef FullPath)
Assemble expected way header will be included by clients.
bool
isHeaderFile (StringRef Path )
Determine if Path is a header file.
llvm::Expected < PathSeq >
enumerateFiles (clang::FileManager &FM, StringRef Directory)
Given input directory, collect all header files.
static bool
isFramework (StringRef Path )
static bool
isCppMangled (StringRef Name)
static std::string
demangle (StringRef Name)
static DylibVerifier::Result
updateResult (const DylibVerifier::Result Prev, const DylibVerifier::Result Curr)
static bool
shouldIgnorePrivateExternAttr (const Decl *D )
Record *
findRecordFromSlice (const RecordsSlice *Slice, StringRef Name, EncodeKind Kind )
static ObjCIFSymbolKind
assignObjCIFSymbolKind (const ObjCInterfaceRecord *R)
static bool
shouldIgnoreCpp (StringRef Name, bool IsWeakDef)
static StringRef
getFileExtension (clang::Language Lang)
const Regex
Rule ("(.+)/(.+)\\.framework/")
static bool
isExported (const NamedDecl *D )
static bool
isInlined (const FunctionDecl *D )
static SymbolFlags
getFlags (bool WeakDef, bool ThreadLocal=false )
static bool
hasObjCExceptionAttribute (const ObjCInterfaceDecl *D )
Check if the interface itself or any of its super classes have an exception attribute.
static bool
hasVTable (const CXXRecordDecl *D )
static CXXLinkage
getVTableLinkage (const CXXRecordDecl *D )
static bool
isRTTIWeakDef (const CXXRecordDecl *D )
static bool
hasRTTI (const CXXRecordDecl *D )
The DirectoryScanner for collecting library files on the file system.
Defines the content of a library, such as public and private header files, and whether it is a framework.
Representations of a library's headers for InstallAPI.
◆ LibAttrs◆ ReexportedInterfaces◆ ZipperedDeclSources
Enumerator
Public
Represents declarations accessible to all clients.
Private
Represents declarations accessible to a disclosed set of clients.
Project
Represents declarations only accessible as implementation details to the input library.
Unknown
Unset or unknown type.
Definition at line 26 of file HeaderFile.h .
◆ ScanMode
Enumerator
ScanFrameworks
Scanning Framework directory.
ScanDylibs
Scanning Dylib directory.
Definition at line 20 of file DirectoryScanner.h .
◆ VerificationModeA list of InstallAPI verification modes.
Enumerator
Invalid
ErrorsOnly
ErrorsAndWarnings
Pedantic
Definition at line 21 of file DylibVerifier.h .
◆ assignObjCIFSymbolKind()
std::optional< std::string > clang::installapi::createIncludeHeaderName
(
const StringRef
FullPath
)
Assemble expected way header will be included by clients.
As in what maps inside the brackets of #include <IncludeName.h>
For example, "/System/Library/Frameworks/Foo.framework/Headers/Foo.h" returns "Foo/Foo.h"
Parameters
FullPath
Path to the header file which includes the library structure.
Definition at line 19 of file HeaderFile.cpp .
References clang::installapi::HeaderFile::getFrameworkIncludeRule() .
std::unique_ptr< MemoryBuffer > clang::installapi::createInputBuffer
(
InstallAPIContext &
Ctx
)
◆ demangle()
static std::string clang::installapi::demangle ( StringRef Name )
static
◆ enumerateFiles()◆ findLibrary()
std::string clang::installapi::findLibrary
(
StringRef
InstallName ,
FileManager &
FM ,
ArrayRef < std::string >
FrameworkSearchPaths ,
ArrayRef < std::string >
LibrarySearchPaths ,
ArrayRef < std::string >
SearchPaths
)
Lookup the dylib or TextAPI file location for a system library or framework.
The search paths provided are searched in order. @rpath based libraries are not supported.
Parameters
InstallName
The install name for the library.
FrameworkSearchPaths
Search paths to look up frameworks with.
LibrarySearchPaths
Search paths to look up dylibs with.
SearchPaths
Fallback search paths if library was not found in earlier paths.
Returns
The full path of the library.
Definition at line 166 of file Frontend.cpp .
References Filename , clang::FileManager::getOptionalFileRef() , and Path .
◆ findRecordFromSlice()◆ getFileExtension()
static StringRef clang::installapi::getFileExtension ( clang::Language Lang )
static
◆ getFlags()◆ getName()
StringRef clang::installapi::getName ( const HeaderType T )
inline
◆ getVTableLinkage()
static CXXLinkage clang::installapi::getVTableLinkage ( const CXXRecordDecl * D )
static
◆ hasObjCExceptionAttribute()◆ hasRTTI()◆ hasVTable()◆ isCppMangled()
static bool clang::installapi::isCppMangled ( StringRef Name )
static
◆ isExported()
static bool clang::installapi::isExported ( const NamedDecl * D )
static
◆ isFramework()
static bool clang::installapi::isFramework ( StringRef Path )
static
bool clang::installapi::isHeaderFile
(
StringRef
Path
)
◆ isInlined()◆ isRTTIWeakDef()◆ Rule()
const Regex clang::installapi::Rule
(
"(.+)/(.+)\\.framework/"
)
◆ shouldIgnoreCpp()
static bool clang::installapi::shouldIgnoreCpp ( StringRef Name , bool IsWeakDef )
static
◆ shouldIgnorePrivateExternAttr()
static bool clang::installapi::shouldIgnorePrivateExternAttr ( const Decl * D )
static
◆ updateResult()