LLVM  10.0.0svn
Classes | Public Types | Public Member Functions | List of all members
llvm::MachO::InterfaceFile Class Reference

Defines the interface file. More...

#include "llvm/TextAPI/MachO/InterfaceFile.h"

Classes

struct  const_symbol_iterator
 

Public Types

using const_target_iterator = TargetList::const_iterator
 
using const_target_range = llvm::iterator_range< const_target_iterator >
 
using const_filtered_target_iterator = llvm::filter_iterator< const_target_iterator, std::function< bool(const Target &)> >
 
using const_filtered_target_range = llvm::iterator_range< const_filtered_target_iterator >
 
using SymbolMapType = DenseMap< SymbolsMapKey, Symbol * >
 
using const_symbol_range = iterator_range< const_symbol_iterator >
 
using const_filtered_symbol_iterator = filter_iterator< const_symbol_iterator, std::function< bool(const Symbol *)> >
 
using const_filtered_symbol_range = iterator_range< const_filtered_symbol_iterator >
 

Public Member Functions

void setPath (StringRef Path_)
 Set the path from which this file was generated (if applicable). More...
 
StringRef getPath () const
 Get the path from which this file was generated (if applicable). More...
 
void setFileType (FileType Kind)
 Set the file type. More...
 
FileType getFileType () const
 Get the file type. More...
 
ArchitectureSet getArchitectures () const
 Get the architectures. More...
 
PlatformSet getPlatforms () const
 Get the platforms. More...
 
void addTarget (const Target &Target)
 Set and add target. More...
 
template<typename RangeT >
void addTargets (RangeT &&Targets)
 Set and add targets. More...
 
const_target_range targets () const
 
const_filtered_target_range targets (ArchitectureSet Archs) const
 
void setInstallName (StringRef InstallName_)
 Set the install name of the library. More...
 
StringRef getInstallName () const
 Get the install name of the library. More...
 
void setCurrentVersion (PackedVersion Version)
 Set the current version of the library. More...
 
PackedVersion getCurrentVersion () const
 Get the current version of the library. More...
 
void setCompatibilityVersion (PackedVersion Version)
 Set the compatibility version of the library. More...
 
PackedVersion getCompatibilityVersion () const
 Get the compatibility version of the library. More...
 
void setSwiftABIVersion (uint8_t Version)
 Set the Swift ABI version of the library. More...
 
uint8_t getSwiftABIVersion () const
 Get the Swift ABI version of the library. More...
 
void setTwoLevelNamespace (bool V=true)
 Specify if the library uses two-level namespace (or flat namespace). More...
 
bool isTwoLevelNamespace () const
 Check if the library uses two-level namespace. More...
 
void setApplicationExtensionSafe (bool V=true)
 Specify if the library is application extension safe (or not). More...
 
bool isApplicationExtensionSafe () const
 Check if the library is application extension safe. More...
 
void setObjCConstraint (ObjCConstraintType Constraint)
 Set the Objective-C constraint. More...
 
ObjCConstraintType getObjCConstraint () const
 Get the Objective-C constraint. More...
 
void setInstallAPI (bool V=true)
 Specify if this file was generated during InstallAPI (or not). More...
 
bool isInstallAPI () const
 Check if this file was generated during InstallAPI. More...
 
void addParentUmbrella (const Target &Target_, StringRef Parent)
 Set the parent umbrella frameworks. More...
 
const std::vector< std::pair< Target, std::string > > & umbrellas () const
 
const std::vector< std::pair< Target, std::string > > getParentUmbrellas () const
 Get the parent umbrella framework. More...
 
void addAllowableClient (StringRef InstallName, const Target &Target)
 Add an allowable client. More...
 
const std::vector< InterfaceFileRef > & allowableClients () const
 Get the list of allowable clients. More...
 
void addReexportedLibrary (StringRef InstallName, const Target &Target)
 Add a re-exported library. More...
 
const std::vector< InterfaceFileRef > & reexportedLibraries () const
 Get the list of re-exported libraries. More...
 
void addUUID (const Target &Target, StringRef UUID)
 Add an Target/UUID pair. More...
 
void addUUID (const Target &Target, uint8_t UUID[16])
 Add an Target/UUID pair. More...
 
const std::vector< std::pair< Target, std::string > > & uuids () const
 Get the list of Target/UUID pairs. More...
 
void addSymbol (SymbolKind Kind, StringRef Name, const TargetList &Targets, SymbolFlags Flags=SymbolFlags::None)
 Add a symbol to the symbols list or extend an existing one. More...
 
const_symbol_range symbols () const
 
const_filtered_symbol_range exports () const
 
const_filtered_symbol_range undefineds () const
 

Detailed Description

Defines the interface file.

Definition at line 156 of file InterfaceFile.h.

Member Typedef Documentation

◆ const_filtered_symbol_iterator

Definition at line 358 of file InterfaceFile.h.

◆ const_filtered_symbol_range

Definition at line 360 of file InterfaceFile.h.

◆ const_filtered_target_iterator

Definition at line 214 of file InterfaceFile.h.

◆ const_filtered_target_range

Definition at line 216 of file InterfaceFile.h.

◆ const_symbol_range

Definition at line 354 of file InterfaceFile.h.

◆ const_target_iterator

Definition at line 208 of file InterfaceFile.h.

◆ const_target_range

Definition at line 209 of file InterfaceFile.h.

◆ SymbolMapType

Definition at line 338 of file InterfaceFile.h.

Member Function Documentation

◆ addAllowableClient()

void llvm::MachO::InterfaceFile::addAllowableClient ( StringRef  InstallName,
const Target Target 
)

Add an allowable client.

Mach-O Dynamic libraries have the concept of allowable clients that are checked during static link time. The name of the application or library that is being generated needs to match one of the allowable clients or the linker refuses to link this library.

Parameters
InstallNameThe name of the client that is allowed to link this library.
TargetThe target triple for which this applies.

Definition at line 48 of file InterfaceFile.cpp.

References llvm::MachO::detail::addEntry().

◆ addParentUmbrella()

void llvm::MachO::InterfaceFile::addParentUmbrella ( const Target Target_,
StringRef  Parent 
)

Set the parent umbrella frameworks.

Parameters
Target_The target applicable to Parent
ParentThe name of Parent

Definition at line 60 of file InterfaceFile.cpp.

References first, and llvm::lower_bound().

◆ addReexportedLibrary()

void llvm::MachO::InterfaceFile::addReexportedLibrary ( StringRef  InstallName,
const Target Target 
)

Add a re-exported library.

Parameters
InstallNameThe name of the library to re-export.
TargetThe target triple for which this applies.

Definition at line 54 of file InterfaceFile.cpp.

References llvm::MachO::detail::addEntry().

◆ addSymbol()

void llvm::MachO::InterfaceFile::addSymbol ( SymbolKind  Kind,
StringRef  Name,
const TargetList Targets,
SymbolFlags  Flags = SymbolFlags::None 
)

Add a symbol to the symbols list or extend an existing one.

Definition at line 111 of file InterfaceFile.cpp.

References Allocator, and Name.

◆ addTarget()

void llvm::MachO::InterfaceFile::addTarget ( const Target Target)

Set and add target.

Parameters
Targetthe target to add into.

Definition at line 99 of file InterfaceFile.cpp.

References llvm::MachO::detail::addEntry().

◆ addTargets()

template<typename RangeT >
void llvm::MachO::InterfaceFile::addTargets ( RangeT &&  Targets)
inline

Set and add targets.

Add the subset of llvm::triples that is supported by Tapi

Parameters
Targetsthe collection of targets.

Definition at line 203 of file InterfaceFile.h.

◆ addUUID() [1/2]

void llvm::MachO::InterfaceFile::addUUID ( const Target Target,
StringRef  UUID 
)

Add an Target/UUID pair.

Parameters
TargetThe target triple for which this applies.
UUIDThe UUID of the library for the specified architecture.

Definition at line 74 of file InterfaceFile.cpp.

References first, and llvm::lower_bound().

◆ addUUID() [2/2]

void llvm::MachO::InterfaceFile::addUUID ( const Target Target,
uint8_t  UUID[16] 
)

Add an Target/UUID pair.

Parameters
TargetThe target triple for which this applies.
UUIDThe UUID of the library for the specified architecture.

Definition at line 88 of file InterfaceFile.cpp.

◆ allowableClients()

const std::vector<InterfaceFileRef>& llvm::MachO::InterfaceFile::allowableClients ( ) const
inline

Get the list of allowable clients.

Returns
Returns a list of allowable clients.

Definition at line 298 of file InterfaceFile.h.

Referenced by llvm::yaml::MappingTraits< T >::NormalizedTBD_V4::NormalizedTBD_V4().

◆ exports()

const_filtered_symbol_range llvm::MachO::InterfaceFile::exports ( ) const
inline

◆ getArchitectures()

ArchitectureSet llvm::MachO::InterfaceFile::getArchitectures ( ) const
inline

Get the architectures.

Returns
The applicable architectures.

Definition at line 184 of file InterfaceFile.h.

References llvm::MachO::mapToArchitectureSet().

Referenced by llvm::yaml::MappingTraits< T >::NormalizedTBD::NormalizedTBD().

◆ getCompatibilityVersion()

PackedVersion llvm::MachO::InterfaceFile::getCompatibilityVersion ( ) const
inline

Get the compatibility version of the library.

Definition at line 237 of file InterfaceFile.h.

Referenced by llvm::yaml::MappingTraits< T >::NormalizedTBD::NormalizedTBD(), and llvm::yaml::MappingTraits< T >::NormalizedTBD_V4::NormalizedTBD_V4().

◆ getCurrentVersion()

PackedVersion llvm::MachO::InterfaceFile::getCurrentVersion ( ) const
inline

◆ getFileType()

FileType llvm::MachO::InterfaceFile::getFileType ( ) const
inline

Get the file type.

Returns
The file type.

Definition at line 179 of file InterfaceFile.h.

Referenced by llvm::MachO::TextAPIWriter::writeToStream().

◆ getInstallName()

StringRef llvm::MachO::InterfaceFile::getInstallName ( ) const
inline

◆ getObjCConstraint()

ObjCConstraintType llvm::MachO::InterfaceFile::getObjCConstraint ( ) const
inline

Get the Objective-C constraint.

Definition at line 263 of file InterfaceFile.h.

Referenced by llvm::yaml::MappingTraits< T >::NormalizedTBD::NormalizedTBD().

◆ getParentUmbrellas()

const std::vector<std::pair<Target, std::string> > llvm::MachO::InterfaceFile::getParentUmbrellas ( ) const
inline

Get the parent umbrella framework.

Definition at line 280 of file InterfaceFile.h.

◆ getPath()

StringRef llvm::MachO::InterfaceFile::getPath ( ) const
inline

Get the path from which this file was generated (if applicable).

Returns
The path to the source file or empty.

Definition at line 166 of file InterfaceFile.h.

Referenced by llvm::MachO::TextAPIWriter::writeToStream().

◆ getPlatforms()

PlatformSet llvm::MachO::InterfaceFile::getPlatforms ( ) const
inline

Get the platforms.

Returns
The applicable platforms.

Definition at line 191 of file InterfaceFile.h.

References llvm::MachO::mapToPlatformSet().

Referenced by llvm::yaml::MappingTraits< T >::NormalizedTBD::NormalizedTBD(), and llvm::object::TapiFile::TapiFile().

◆ getSwiftABIVersion()

uint8_t llvm::MachO::InterfaceFile::getSwiftABIVersion ( ) const
inline

◆ isApplicationExtensionSafe()

bool llvm::MachO::InterfaceFile::isApplicationExtensionSafe ( ) const
inline

◆ isInstallAPI()

bool llvm::MachO::InterfaceFile::isInstallAPI ( ) const
inline

◆ isTwoLevelNamespace()

bool llvm::MachO::InterfaceFile::isTwoLevelNamespace ( ) const
inline

◆ reexportedLibraries()

const std::vector<InterfaceFileRef>& llvm::MachO::InterfaceFile::reexportedLibraries ( ) const
inline

Get the list of re-exported libraries.

Returns
Returns a list of re-exported libraries.

Definition at line 311 of file InterfaceFile.h.

Referenced by llvm::yaml::MappingTraits< T >::NormalizedTBD_V4::NormalizedTBD_V4().

◆ setApplicationExtensionSafe()

void llvm::MachO::InterfaceFile::setApplicationExtensionSafe ( bool  V = true)
inline

Specify if the library is application extension safe (or not).

Definition at line 252 of file InterfaceFile.h.

◆ setCompatibilityVersion()

void llvm::MachO::InterfaceFile::setCompatibilityVersion ( PackedVersion  Version)
inline

Set the compatibility version of the library.

Definition at line 232 of file InterfaceFile.h.

References llvm::IndexedInstrProf::Version.

◆ setCurrentVersion()

void llvm::MachO::InterfaceFile::setCurrentVersion ( PackedVersion  Version)
inline

Set the current version of the library.

Definition at line 226 of file InterfaceFile.h.

References llvm::coverage::CurrentVersion, and llvm::IndexedInstrProf::Version.

◆ setFileType()

void llvm::MachO::InterfaceFile::setFileType ( FileType  Kind)
inline

Set the file type.

This is used by the YAML writer to identify the specification it should use for writing the file.

Parameters
KindThe file type.

Definition at line 174 of file InterfaceFile.h.

◆ setInstallAPI()

void llvm::MachO::InterfaceFile::setInstallAPI ( bool  V = true)
inline

Specify if this file was generated during InstallAPI (or not).

Definition at line 266 of file InterfaceFile.h.

◆ setInstallName()

void llvm::MachO::InterfaceFile::setInstallName ( StringRef  InstallName_)
inline

Set the install name of the library.

Definition at line 220 of file InterfaceFile.h.

◆ setObjCConstraint()

void llvm::MachO::InterfaceFile::setObjCConstraint ( ObjCConstraintType  Constraint)
inline

Set the Objective-C constraint.

Definition at line 258 of file InterfaceFile.h.

◆ setPath()

void llvm::MachO::InterfaceFile::setPath ( StringRef  Path_)
inline

Set the path from which this file was generated (if applicable).

Parameters
Path_The path to the source file.

Definition at line 161 of file InterfaceFile.h.

◆ setSwiftABIVersion()

void llvm::MachO::InterfaceFile::setSwiftABIVersion ( uint8_t  Version)
inline

Set the Swift ABI version of the library.

Definition at line 240 of file InterfaceFile.h.

References llvm::IndexedInstrProf::Version.

◆ setTwoLevelNamespace()

void llvm::MachO::InterfaceFile::setTwoLevelNamespace ( bool  V = true)
inline

Specify if the library uses two-level namespace (or flat namespace).

Definition at line 246 of file InterfaceFile.h.

◆ symbols()

const_symbol_range llvm::MachO::InterfaceFile::symbols ( ) const
inline

Definition at line 362 of file InterfaceFile.h.

Referenced by llvm::object::TapiFile::TapiFile().

◆ targets() [1/2]

const_target_range llvm::MachO::InterfaceFile::targets ( ) const
inline

◆ targets() [2/2]

InterfaceFile::const_filtered_target_range llvm::MachO::InterfaceFile::targets ( ArchitectureSet  Archs) const

◆ umbrellas()

const std::vector<std::pair<Target, std::string> >& llvm::MachO::InterfaceFile::umbrellas ( ) const
inline

◆ undefineds()

const_filtered_symbol_range llvm::MachO::InterfaceFile::undefineds ( ) const
inline

◆ uuids()

const std::vector<std::pair<Target, std::string> >& llvm::MachO::InterfaceFile::uuids ( ) const
inline

Get the list of Target/UUID pairs.

Returns
Returns a list of Target/UUID pairs.

Definition at line 330 of file InterfaceFile.h.

References Name, and llvm::MachO::None.

Referenced by llvm::yaml::MappingTraits< T >::NormalizedTBD::NormalizedTBD(), and llvm::yaml::MappingTraits< T >::NormalizedTBD_V4::NormalizedTBD_V4().


The documentation for this class was generated from the following files: