Revert "Revert "Use autolinking to pull in compatibility libraries.""

This commit is contained in:
Joe Groff
2019-06-03 20:10:51 -07:00
committed by GitHub
parent 547e4e957c
commit 4ed8de10f9
15 changed files with 196 additions and 61 deletions

View File

@@ -14,6 +14,7 @@
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/ADT/Triple.h"
#include "llvm/Support/VersionTuple.h"
using namespace swift;
@@ -313,3 +314,37 @@ llvm::Triple swift::getTargetSpecificModuleTriple(const llvm::Triple &triple) {
return triple;
}
Optional<llvm::VersionTuple>
swift::getSwiftRuntimeCompatibilityVersionForTarget(const llvm::Triple &Triple){
unsigned Major, Minor, Micro;
if (Triple.isMacOSX()) {
Triple.getMacOSXVersion(Major, Minor, Micro);
if (Major == 10) {
if (Minor <= 14) {
return llvm::VersionTuple(5, 0);
} else {
return None;
}
} else {
return None;
}
} else if (Triple.isiOS()) { // includes tvOS
Triple.getiOSVersion(Major, Minor, Micro);
if (Major <= 12) {
return llvm::VersionTuple(5, 0);
} else {
return None;
}
} else if (Triple.isWatchOS()) {
Triple.getWatchOSVersion(Major, Minor, Micro);
if (Major <= 5) {
return llvm::VersionTuple(5, 0);
} else {
return None;
}
} else {
return None;
}
}