9 #ifndef LLVM_CLANG_BASIC_DARWINSDKINFO_H
10 #define LLVM_CLANG_BASIC_DARWINSDKINFO_H
13 #include "llvm/ADT/DenseMap.h"
14 #include "llvm/ADT/Triple.h"
15 #include "llvm/Support/Error.h"
16 #include "llvm/Support/VersionTuple.h"
17 #include "llvm/Support/VirtualFileSystem.h"
37 llvm::Triple::EnvironmentType FromEnv,
38 llvm::Triple::OSType ToOS,
39 llvm::Triple::EnvironmentType ToEnv)
49 return OSEnvPair(llvm::Triple::MacOSX, llvm::Triple::UnknownEnvironment,
50 llvm::Triple::IOS, llvm::Triple::MacABI);
56 return OSEnvPair(llvm::Triple::IOS, llvm::Triple::MacABI,
57 llvm::Triple::MacOSX, llvm::Triple::UnknownEnvironment);
63 return OSEnvPair(llvm::Triple::IOS, llvm::Triple::UnknownEnvironment,
64 llvm::Triple::WatchOS, llvm::Triple::UnknownEnvironment);
70 return OSEnvPair(llvm::Triple::IOS, llvm::Triple::UnknownEnvironment,
71 llvm::Triple::TvOS, llvm::Triple::UnknownEnvironment);
88 VersionTuple MinimumKeyVersion, VersionTuple MaximumKeyVersion,
89 VersionTuple MinimumValue, VersionTuple MaximumValue,
90 llvm::DenseMap<VersionTuple, VersionTuple> Mapping)
91 : MinimumKeyVersion(MinimumKeyVersion),
92 MaximumKeyVersion(MaximumKeyVersion), MinimumValue(MinimumValue),
93 MaximumValue(MaximumValue), Mapping(Mapping) {
94 assert(!this->Mapping.empty() &&
"unexpected empty mapping");
104 const VersionTuple &MinimumValue,
109 VersionTuple MaximumDeploymentTarget);
112 VersionTuple MinimumKeyVersion;
113 VersionTuple MaximumKeyVersion;
114 VersionTuple MinimumValue;
115 VersionTuple MaximumValue;
116 llvm::DenseMap<VersionTuple, VersionTuple> Mapping;
125 : Version(Version), MaximumDeploymentTarget(MaximumDeploymentTarget),
126 VersionMappings(
std::move(VersionMappings)) {}
128 const llvm::VersionTuple &
getVersion()
const {
return Version; }
142 auto Mapping = VersionMappings.find(
Kind.Value);
143 if (Mapping == VersionMappings.end())
145 return Mapping->getSecond().hasValue() ? Mapping->getSecond().getPointer()
153 VersionTuple Version;
154 VersionTuple MaximumDeploymentTarget;
158 llvm::DenseMap<OSEnvPair::StorageType, Optional<RelatedTargetVersionMapping>>
167 StringRef SDKRootPath);
171 #endif // LLVM_CLANG_BASIC_DARWINSDKINFO_H