9#ifndef LLDB_UTILITY_SDK_H
10#define LLDB_UTILITY_SDK_H
13#include "llvm/ADT/StringRef.h"
14#include "llvm/Support/VersionTuple.h"
100 llvm::VersionTuple sdk_version);
An abstraction for Xcode-style SDKs that works like ArchSpec.
static constexpr int numSDKTypes
bool SupportsSwift() const
Whether this Xcode SDK supports Swift.
Type
Different types of Xcode SDKs.
static std::string FindXcodeContentsDirectoryInPath(llvm::StringRef path)
XcodeSDK(const XcodeSDK &)=default
void Merge(const XcodeSDK &other)
The merge function follows a strict order to maintain monotonicity:
XcodeSDK & operator=(const XcodeSDK &other)
XcodeSDK()=default
Default constructor, constructs an empty string.
static XcodeSDK GetAnyMacOS()
static bool SDKSupportsBuiltinModules(const llvm::Triple &target_triple, llvm::VersionTuple sdk_version)
Returns true if the SDK for the specified triple supports builtin modules in system headers.
llvm::VersionTuple GetVersion() const
llvm::StringRef GetString() const
static std::string GetCanonicalName(Info info)
Return the canonical SDK name, such as "macosx" for the macOS SDK.
static XcodeSDK::Type GetSDKTypeForTriple(const llvm::Triple &triple)
Return the best-matching SDK type for a specific triple.
XcodeSDK(std::string &&name)
Initialize an XcodeSDK object with an SDK name.
Info Parse() const
Return parsed SDK type and version number.
bool operator==(const XcodeSDK &other) const
bool IsAppleInternalSDK() const
static bool SDKSupportsModules(Type type, llvm::VersionTuple version)
Whether LLDB feels confident importing Clang modules from this SDK.
A class that represents a running process on the host machine.
A parsed SDK directory name.
llvm::VersionTuple version
bool operator<(const Info &other) const
bool operator==(const Info &other) const