[dotnet] Use a different min OS version when building with NativeAOT.
This is because NativeAOT contains swift code, and we'd have to add code to embed the Swift libraries in any apps that target early OS versions. We could eventually implement this, but let's wait and see if there's a demand first.
This commit is contained in:
Родитель
d601e51698
Коммит
183c76af40
|
@ -273,6 +273,12 @@ DOTNET_MIN_TVOS_SDK_VERSION=11.0
|
||||||
DOTNET_MIN_MACCATALYST_SDK_VERSION=13.1
|
DOTNET_MIN_MACCATALYST_SDK_VERSION=13.1
|
||||||
DOTNET_MIN_MACOS_SDK_VERSION=10.15
|
DOTNET_MIN_MACOS_SDK_VERSION=10.15
|
||||||
|
|
||||||
|
# Minimum OS versions when using NativeOAT - these are at least the general min versions above (but may be higher).
|
||||||
|
DOTNET_MIN_NATIVEAOT_IOS_SDK_VERSION=12.2
|
||||||
|
DOTNET_MIN_NATIVEAOT_TVOS_SDK_VERSION=12.2
|
||||||
|
DOTNET_MIN_NATIVEAOT_MACCATALYST_SDK_VERSION=13.1
|
||||||
|
DOTNET_MIN_NATIVEAOT_MACOS_SDK_VERSION=10.15
|
||||||
|
|
||||||
# The min simulator version available in the Xcode we're using
|
# The min simulator version available in the Xcode we're using
|
||||||
MIN_IOS_SIMULATOR_VERSION=13.7
|
MIN_IOS_SIMULATOR_VERSION=13.7
|
||||||
MIN_WATCHOS_SIMULATOR_VERSION=7.0
|
MIN_WATCHOS_SIMULATOR_VERSION=7.0
|
||||||
|
|
|
@ -24,10 +24,16 @@ var doc = new XmlDocument ();
|
||||||
doc.Load (plistPath);
|
doc.Load (plistPath);
|
||||||
var nodes = doc.SelectNodes ($"/plist/dict/key[text()='KnownVersions']/following-sibling::dict[1]/key[text()='{platform}']/following-sibling::array[1]/string");
|
var nodes = doc.SelectNodes ($"/plist/dict/key[text()='KnownVersions']/following-sibling::dict[1]/key[text()='{platform}']/following-sibling::array[1]/string");
|
||||||
|
|
||||||
|
var allLines = File.ReadAllLines ("../Make.config");
|
||||||
|
|
||||||
var minSdkVersionName = $"DOTNET_MIN_{platform.ToUpper ()}_SDK_VERSION";
|
var minSdkVersionName = $"DOTNET_MIN_{platform.ToUpper ()}_SDK_VERSION";
|
||||||
var minSdkVersionString = File.ReadAllLines ("../Make.config").Single (v => v.StartsWith (minSdkVersionName + "=", StringComparison.Ordinal)).Substring (minSdkVersionName.Length + 1);
|
var minSdkVersionString = allLines.Single (v => v.StartsWith (minSdkVersionName + "=", StringComparison.Ordinal)).Substring (minSdkVersionName.Length + 1);
|
||||||
var minSdkVersion = Version.Parse (minSdkVersionString);
|
var minSdkVersion = Version.Parse (minSdkVersionString);
|
||||||
|
|
||||||
|
var minNativeAotSdkVersionName = $"DOTNET_MIN_NATIVEAOT_{platform.ToUpper ()}_SDK_VERSION";
|
||||||
|
var minNativeAotSdkVersionString = allLines.Single (v => v.StartsWith (minNativeAotSdkVersionName + "=", StringComparison.Ordinal)).Substring (minNativeAotSdkVersionName.Length + 1);
|
||||||
|
var minNativeAotSdkVersion = Version.Parse (minNativeAotSdkVersionString);
|
||||||
|
|
||||||
using (TextWriter writer = new StreamWriter (outputPath)) {
|
using (TextWriter writer = new StreamWriter (outputPath)) {
|
||||||
writer.WriteLine ($"<!-- This file contains a generated list of the {platform} platform versions that are supported for this SDK -->");
|
writer.WriteLine ($"<!-- This file contains a generated list of the {platform} platform versions that are supported for this SDK -->");
|
||||||
writer.WriteLine ($"<!-- Generation script: https://github.com/xamarin/xamarin-macios/blob/main/dotnet/generate-target-platforms.csharp -->");
|
writer.WriteLine ($"<!-- Generation script: https://github.com/xamarin/xamarin-macios/blob/main/dotnet/generate-target-platforms.csharp -->");
|
||||||
|
@ -36,9 +42,14 @@ using (TextWriter writer = new StreamWriter (outputPath)) {
|
||||||
|
|
||||||
foreach (XmlNode n in nodes) {
|
foreach (XmlNode n in nodes) {
|
||||||
var version = n.InnerText;
|
var version = n.InnerText;
|
||||||
if (Version.Parse (version) < minSdkVersion)
|
var parsedVersion = Version.Parse (version);
|
||||||
|
if (parsedVersion < minSdkVersion)
|
||||||
continue;
|
continue;
|
||||||
writer.WriteLine ($"\t\t<{platform}SdkSupportedTargetPlatformVersion Include=\"{n.InnerText}\" />");
|
if (parsedVersion < minNativeAotSdkVersion) {
|
||||||
|
writer.WriteLine ($"\t\t<{platform}SdkSupportedTargetPlatformVersion Include=\"{n.InnerText}\" Condition=\"'$(PublishAot)' != 'true'\" />");
|
||||||
|
} else {
|
||||||
|
writer.WriteLine ($"\t\t<{platform}SdkSupportedTargetPlatformVersion Include=\"{n.InnerText}\" />");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
writer.WriteLine ("\t</ItemGroup>");
|
writer.WriteLine ("\t</ItemGroup>");
|
||||||
|
@ -46,7 +57,8 @@ using (TextWriter writer = new StreamWriter (outputPath)) {
|
||||||
writer.WriteLine ($"\t\t<SdkSupportedTargetPlatformVersion Condition=\"'$(TargetPlatformIdentifier)' == '{platform}'\" Include=\"@({platform}SdkSupportedTargetPlatformVersion)\" />");
|
writer.WriteLine ($"\t\t<SdkSupportedTargetPlatformVersion Condition=\"'$(TargetPlatformIdentifier)' == '{platform}'\" Include=\"@({platform}SdkSupportedTargetPlatformVersion)\" />");
|
||||||
writer.WriteLine ("\t</ItemGroup>");
|
writer.WriteLine ("\t</ItemGroup>");
|
||||||
writer.WriteLine ("\t<PropertyGroup>");
|
writer.WriteLine ("\t<PropertyGroup>");
|
||||||
writer.WriteLine ($"\t\t<{platform}MinSupportedOSPlatformVersion>{minSdkVersionString}</{platform}MinSupportedOSPlatformVersion>");
|
writer.WriteLine ($"\t\t<{platform}MinSupportedOSPlatformVersion Condition=\"'$(PublishAot)' != 'true'\">{minSdkVersionString}</{platform}MinSupportedOSPlatformVersion>");
|
||||||
|
writer.WriteLine ($"\t\t<{platform}MinSupportedOSPlatformVersion Condition=\"'$(PublishAot)' == 'true'\">{minNativeAotSdkVersionString}</{platform}MinSupportedOSPlatformVersion>");
|
||||||
writer.WriteLine ("\t</PropertyGroup>");
|
writer.WriteLine ("\t</PropertyGroup>");
|
||||||
writer.WriteLine ("</Project>");
|
writer.WriteLine ("</Project>");
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче