clang 20.0.0git
Public Types | Public Member Functions | List of all members
clang::driver::Multilib Class Reference

This corresponds to a single GCC Multilib, or a segment of one controlled by a command line flag. More...

#include "clang/Driver/Multilib.h"

Public Types

using flags_list = std::vector< std::string >
 

Public Member Functions

 Multilib (StringRef GCCSuffix={}, StringRef OSSuffix={}, StringRef IncludeSuffix={}, const flags_list &Flags=flags_list(), StringRef ExclusiveGroup={})
 GCCSuffix, OSSuffix & IncludeSuffix will be appended directly to the sysroot string so they must either be empty or begin with a '/' character.
 
const std::string & gccSuffix () const
 Get the detected GCC installation path suffix for the multi-arch target variant.
 
const std::string & osSuffix () const
 Get the detected os path suffix for the multi-arch target variant.
 
const std::string & includeSuffix () const
 Get the include directory suffix.
 
const flags_listflags () const
 Get the flags that indicate or contraindicate this multilib's use All elements begin with either '-' or '!'.
 
const std::string & exclusiveGroup () const
 Get the exclusive group label.
 
LLVM_DUMP_METHOD void dump () const
 
void print (raw_ostream &OS) const
 print summary of the Multilib
 
bool isDefault () const
 Check whether the default is selected.
 
bool operator== (const Multilib &Other) const
 

Detailed Description

This corresponds to a single GCC Multilib, or a segment of one controlled by a command line flag.

See also MultilibBuilder for building a multilib by mutating it incrementally.

Definition at line 32 of file Multilib.h.

Member Typedef Documentation

◆ flags_list

using clang::driver::Multilib::flags_list = std::vector<std::string>

Definition at line 34 of file Multilib.h.

Constructor & Destructor Documentation

◆ Multilib()

Multilib::Multilib ( StringRef  GCCSuffix = {},
StringRef  OSSuffix = {},
StringRef  IncludeSuffix = {},
const flags_list Flags = flags_list(),
StringRef  ExclusiveGroup = {} 
)

GCCSuffix, OSSuffix & IncludeSuffix will be appended directly to the sysroot string so they must either be empty or begin with a '/' character.

This is enforced with an assert in the constructor.

Definition at line 32 of file Multilib.cpp.

Member Function Documentation

◆ dump()

LLVM_DUMP_METHOD void Multilib::dump ( ) const

Definition at line 45 of file Multilib.cpp.

References print().

◆ exclusiveGroup()

const std::string & clang::driver::Multilib::exclusiveGroup ( ) const
inline

Get the exclusive group label.

Definition at line 76 of file Multilib.h.

◆ flags()

const flags_list & clang::driver::Multilib::flags ( ) const
inline

Get the flags that indicate or contraindicate this multilib's use All elements begin with either '-' or '!'.

Definition at line 73 of file Multilib.h.

Referenced by findMultilibsFromYAML().

◆ gccSuffix()

const std::string & clang::driver::Multilib::gccSuffix ( ) const
inline

◆ includeSuffix()

const std::string & clang::driver::Multilib::includeSuffix ( ) const
inline

◆ isDefault()

bool clang::driver::Multilib::isDefault ( ) const
inline

Check whether the default is selected.

Definition at line 83 of file Multilib.h.

Referenced by clang::driver::toolchains::Generic_GCC::GCCInstallationDetector::print().

◆ operator==()

bool Multilib::operator== ( const Multilib Other) const

Definition at line 62 of file Multilib.cpp.

References gccSuffix(), includeSuffix(), osSuffix(), and clang::Other.

◆ osSuffix()

const std::string & clang::driver::Multilib::osSuffix ( ) const
inline

Get the detected os path suffix for the multi-arch target variant.

Always starts with a '/', unless empty

Definition at line 65 of file Multilib.h.

Referenced by clang::driver::toolchains::Generic_GCC::AddMultiarchPaths(), clang::driver::toolchains::Linux::computeSysRoot(), findMipsMuslMultilibs(), and operator==().

◆ print()

void Multilib::print ( raw_ostream &  OS) const

print summary of the Multilib

Definition at line 49 of file Multilib.cpp.

Referenced by dump(), and clang::driver::operator<<().


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