[net9.0] Bump to Xcode 15.4 packages instead of Xcode 15.1 packages as the latest .NET 8 stable. (#20888)
This also required some changes to the generation of the workload manifest files, since the Xcode 15.4 packages support multi-targeting. --------- Co-authored-by: Alex Soto <alex@soto.dev>
This commit is contained in:
Родитель
896b26b76c
Коммит
e1290d2f15
|
@ -146,3 +146,8 @@ SUPPORTED_API_VERSIONS_IOS+=net8.0-17.0
|
|||
SUPPORTED_API_VERSIONS_TVOS+=net8.0-17.0
|
||||
SUPPORTED_API_VERSIONS_MACOS+=net8.0-14.0
|
||||
SUPPORTED_API_VERSIONS_MACCATALYST+=net8.0-17.0
|
||||
|
||||
SUPPORTED_API_VERSIONS_IOS+=net8.0-17.5
|
||||
SUPPORTED_API_VERSIONS_TVOS+=net8.0-17.5
|
||||
SUPPORTED_API_VERSIONS_MACOS+=net8.0-14.5
|
||||
SUPPORTED_API_VERSIONS_MACCATALYST+=net8.0-17.5
|
||||
|
|
|
@ -181,7 +181,7 @@ Workloads/Microsoft.NET.Sdk.$(1)/WorkloadManifest.json: Makefile $(TOP)/Make.con
|
|||
|
||||
Workloads/Microsoft.NET.Sdk.$(1)/WorkloadManifest.targets: Makefile $(TOP)/Make.config.inc $(GIT_DIRECTORY)/HEAD $(GIT_DIRECTORY)/index Makefile generate-workloadmanifest-targets.csharp | Workloads/Microsoft.NET.Sdk.$(1)
|
||||
$$(Q) rm -f $$@.tmp
|
||||
$$(Q_GEN) ./generate-workloadmanifest-targets.csharp "$(1)" "$$@.tmp" "$$(DOTNET_WINDOWS_PLATFORMS)" "$(DOTNET_TFM)_$$($(4)_NUGET_OS_VERSION)" "net8.0" "$(SUPPORTED_API_VERSIONS_$(4))"
|
||||
$$(Q_GEN) ./generate-workloadmanifest-targets.csharp "$(1)" "$$@.tmp" "$$(DOTNET_WINDOWS_PLATFORMS)" "$(DOTNET_TFM)_$$($(4)_NUGET_OS_VERSION)" "$(SUPPORTED_API_VERSIONS_$(4))"
|
||||
$$(Q) mv $$@.tmp $$@
|
||||
|
||||
Workloads/Microsoft.NET.Sdk.$(1)/LICENSE: $(TOP)/LICENSE | Workloads/Microsoft.NET.Sdk.$(1)
|
||||
|
|
|
@ -28,7 +28,6 @@ var versionsPropsPath = args [argumentIndex++];
|
|||
var platformLowerCase = platform.ToLowerInvariant ();
|
||||
|
||||
var allApiVersions = new List<string> (supportedApiVersions);
|
||||
allApiVersions.Add ("net8.0");
|
||||
allApiVersions = allApiVersions.Select (v => v.Replace ('-', '_')).ToList ();
|
||||
|
||||
var versionsPropsTable = File.ReadAllLines (versionsPropsPath).
|
||||
|
|
|
@ -6,7 +6,7 @@ using System.IO;
|
|||
using System.Xml;
|
||||
|
||||
var args = Args;
|
||||
var expectedArgumentCount = 6;
|
||||
var expectedArgumentCount = 5;
|
||||
if (args.Length != expectedArgumentCount) {
|
||||
Console.WriteLine ($"Need {expectedArgumentCount} arguments, got {args.Length}");
|
||||
Environment.Exit (1);
|
||||
|
@ -19,7 +19,6 @@ var outputPath = args [argumentIndex++];
|
|||
var windowsPlatforms = args [argumentIndex++].Split (new char [] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
var hasWindows = Array.IndexOf (windowsPlatforms, platform) >= 0;
|
||||
var currentApiVersion = args [argumentIndex++];
|
||||
var olderApiVersions = args [argumentIndex++];
|
||||
var supportedApiVersions = args [argumentIndex++];
|
||||
|
||||
var platformLowerCase = platform.ToLowerInvariant ();
|
||||
|
@ -28,25 +27,46 @@ var tfm = currentApiVersion;
|
|||
var supportedTFMs = new List<string> ();
|
||||
supportedTFMs.AddRange (supportedApiVersions.Split (' ').Select (v => v.Replace ('-', '_')));
|
||||
supportedTFMs.Sort ();
|
||||
supportedTFMs.AddRange (olderApiVersions.Split (' '));
|
||||
|
||||
var supportedTFVs = new List<string> ();
|
||||
|
||||
var tfmToTpvAndTfv = new Func<string, (string Tfv, string Tpv)> (tfm => {
|
||||
var tfv = tfm.Replace ("net", "");
|
||||
var sep = tfv.IndexOfAny (new char [] { '-', '_' });
|
||||
var tpv = "";
|
||||
if (sep >= 0) {
|
||||
tpv = tfv.Substring (sep + 1);
|
||||
tfv = tfv.Substring (0, sep);
|
||||
}
|
||||
return (tfv, tpv);
|
||||
})
|
||||
|
||||
// Find the latest TFM for each major .NET version.
|
||||
// We import the workload for this TFM if there's no TPV specified in the TargetFramework.
|
||||
var groupedByMajorDotNetVersion = supportedTFMs.
|
||||
Where (v => v.IndexOfAny (new char [] { '-', '_' }) >= 0).
|
||||
GroupBy (v => v.Split (new char [] { '-', '_' }) [0]);
|
||||
var highestTpvPerMajorDotNet = groupedByMajorDotNetVersion.
|
||||
Select (gr => {
|
||||
var max = gr.OrderByDescending (el => {
|
||||
var rv = tfmToTpvAndTfv (el);
|
||||
return float.Parse (rv.Tpv, System.Globalization.CultureInfo.InvariantCulture);
|
||||
}).First ();
|
||||
return max;
|
||||
}).
|
||||
ToHashSet ();
|
||||
|
||||
using (var writer = new StreamWriter (outputPath)) {
|
||||
writer.WriteLine ($"<Project>");
|
||||
foreach (var tfm in supportedTFMs) {
|
||||
var tfv = tfm.Replace ("net", "");
|
||||
var sep = tfv.IndexOfAny (new char [] { '-', '_' });
|
||||
var tpv = "";
|
||||
if (sep >= 0) {
|
||||
tpv = tfv.Substring (sep + 1);
|
||||
tfv = tfv.Substring (0, sep);
|
||||
}
|
||||
var parsed = tfmToTpvAndTfv (tfm);
|
||||
var tfv = parsed.Tfv;
|
||||
var tpv = parsed.Tpv;
|
||||
supportedTFVs.Add (tfv);
|
||||
var workloadVersion = tfm;
|
||||
if (tfv [0] == '7')
|
||||
workloadVersion = tfm.Replace (".0", "");
|
||||
if (tfm == currentApiVersion) {
|
||||
if (highestTpvPerMajorDotNet.Contains (tfm)) {
|
||||
writer.WriteLine ($" <ImportGroup Condition=\" '$(TargetPlatformIdentifier)' == '{platform}' And '$(UsingAppleNETSdk)' != 'true' And $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '{tfv}'))\">");
|
||||
writer.WriteLine ($" <Import Project=\"Sdk.props\" Sdk=\"Microsoft.{platform}.Sdk.{workloadVersion}\" /> <!-- this SDK version will validate the TargetPlatformVersion and show an error (in .NET 9+) or a warning (.NET 8) if it's not valid -->");
|
||||
} else if (tpv.Length > 0) {
|
||||
|
@ -54,11 +74,11 @@ using (var writer = new StreamWriter (outputPath)) {
|
|||
writer.WriteLine ($" <Import Project=\"Sdk.props\" Sdk=\"Microsoft.{platform}.Sdk.{workloadVersion}\" />");
|
||||
} else {
|
||||
writer.WriteLine ($" <ImportGroup Condition=\" '$(TargetPlatformIdentifier)' == '{platform}' And '$(UsingAppleNETSdk)' != 'true' And $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '{tfv}'))\">");
|
||||
writer.WriteLine ($" <Import Project=\"Sdk.props\" Sdk=\"Microsoft.{platform}.Sdk.{(workloadVersion == "net8.0" ? "net8" : tfm)}\" />");
|
||||
writer.WriteLine ($" <Import Project=\"Sdk.props\" Sdk=\"Microsoft.{platform}.Sdk.{tfm}\" />");
|
||||
}
|
||||
|
||||
if (hasWindows) {
|
||||
writer.WriteLine ($" <Import Project=\"Sdk.props\" Sdk=\"Microsoft.{platform}.Windows.Sdk.Aliased.{(workloadVersion == "net8.0" ? "net8" : tfm)}\" Condition=\" $([MSBuild]::IsOSPlatform('windows'))\" />");
|
||||
writer.WriteLine ($" <Import Project=\"Sdk.props\" Sdk=\"Microsoft.{platform}.Windows.Sdk.Aliased.{tfm}\" Condition=\" $([MSBuild]::IsOSPlatform('windows'))\" />");
|
||||
}
|
||||
|
||||
writer.WriteLine ($" </ImportGroup>");
|
||||
|
|
|
@ -30,22 +30,22 @@
|
|||
<Uri>https://github.com/dotnet/cecil</Uri>
|
||||
<Sha>7e4af02521473d89d6144b3da58fef253e498974</Sha>
|
||||
</Dependency>
|
||||
<!-- This is a subscription of the .NET 8 versions of our packages -->
|
||||
<Dependency Name="Microsoft.MacCatalyst.Sdk" Version="17.2.8078">
|
||||
<!-- This is a subscription of the .NET 8/Xcode 15.4 versions of our packages -->
|
||||
<Dependency Name="Microsoft.MacCatalyst.Sdk.net8.0_17.5" Version="17.5.8001">
|
||||
<Uri>https://github.com/xamarin/xamarin-macios</Uri>
|
||||
<Sha>80944cffcc493f49a32645737f515a227c5740e4</Sha>
|
||||
<Sha>64731f8c40752601abebe8eeaf334837344d679b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.macOS.Sdk" Version="14.2.8078">
|
||||
<Dependency Name="Microsoft.macOS.Sdk.net8.0_14.5" Version="14.5.8001">
|
||||
<Uri>https://github.com/xamarin/xamarin-macios</Uri>
|
||||
<Sha>80944cffcc493f49a32645737f515a227c5740e4</Sha>
|
||||
<Sha>64731f8c40752601abebe8eeaf334837344d679b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.iOS.Sdk" Version="17.2.8078">
|
||||
<Dependency Name="Microsoft.iOS.Sdk.net8.0_17.5" Version="17.5.8001">
|
||||
<Uri>https://github.com/xamarin/xamarin-macios</Uri>
|
||||
<Sha>80944cffcc493f49a32645737f515a227c5740e4</Sha>
|
||||
<Sha>64731f8c40752601abebe8eeaf334837344d679b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.tvOS.Sdk" Version="17.2.8078">
|
||||
<Dependency Name="Microsoft.tvOS.Sdk.net8.0_17.5" Version="17.5.8001">
|
||||
<Uri>https://github.com/xamarin/xamarin-macios</Uri>
|
||||
<Sha>80944cffcc493f49a32645737f515a227c5740e4</Sha>
|
||||
<Sha>64731f8c40752601abebe8eeaf334837344d679b</Sha>
|
||||
</Dependency>
|
||||
<!-- This is a subscription of the .NET 8/Xcode 15.0 versions of our packages -->
|
||||
<Dependency Name="Microsoft.MacCatalyst.Sdk.net8.0_17.0" Version="17.0.8523">
|
||||
|
|
|
@ -18,10 +18,10 @@
|
|||
<EmscriptenWorkloadVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest80100Version)</EmscriptenWorkloadVersion>
|
||||
<MicrosoftDotnetSdkInternalPackageVersion>$(VSToolsNetCoreSDKResolverPackageVersion)</MicrosoftDotnetSdkInternalPackageVersion>
|
||||
<!-- This is a subscription of the .NET 8 versions of our packages -->
|
||||
<MicrosoftMacCatalystSdkPackageVersion>17.2.8078</MicrosoftMacCatalystSdkPackageVersion>
|
||||
<MicrosoftmacOSSdkPackageVersion>14.2.8078</MicrosoftmacOSSdkPackageVersion>
|
||||
<MicrosoftiOSSdkPackageVersion>17.2.8078</MicrosoftiOSSdkPackageVersion>
|
||||
<MicrosofttvOSSdkPackageVersion>17.2.8078</MicrosofttvOSSdkPackageVersion>
|
||||
<MicrosoftMacCatalystSdknet80_175PackageVersion>17.5.8001</MicrosoftMacCatalystSdknet80_175PackageVersion>
|
||||
<MicrosoftmacOSSdknet80_145PackageVersion>14.5.8001</MicrosoftmacOSSdknet80_145PackageVersion>
|
||||
<MicrosoftiOSSdknet80_175PackageVersion>17.5.8001</MicrosoftiOSSdknet80_175PackageVersion>
|
||||
<MicrosofttvOSSdknet80_175PackageVersion>17.5.8001</MicrosofttvOSSdknet80_175PackageVersion>
|
||||
<!-- This is a subscription to the .NET 8/Xcode 15.0 versions of our packages -->
|
||||
<MicrosoftMacCatalystSdknet80_170PackageVersion>17.0.8523</MicrosoftMacCatalystSdknet80_170PackageVersion>
|
||||
<MicrosoftmacOSSdknet80_140PackageVersion>14.0.8523</MicrosoftmacOSSdknet80_140PackageVersion>
|
||||
|
|
|
@ -1521,11 +1521,11 @@ namespace Xamarin.Tests {
|
|||
$"/usr/bin/codesign exited with code 1:\n" +
|
||||
$"{appPath}: replacing existing signature\n" +
|
||||
$"{appPath}: code object is not signed at all\n" +
|
||||
$"In subcomponent: {appPath}/System.Diagnostics.DiagnosticSource.dll",
|
||||
$"In subcomponent: {appPath}/System.Collections.NonGeneric.aotdata.arm64",
|
||||
|
||||
$"Failed to codesign '{appPath}': {appPath}: replacing existing signature\n" +
|
||||
$"{appPath}: code object is not signed at all\n" +
|
||||
$"In subcomponent: {appPath}/System.Diagnostics.DiagnosticSource.dll"
|
||||
$"In subcomponent: {appPath}/System.Collections.NonGeneric.aotdata.arm64"
|
||||
);
|
||||
|
||||
// Remove the dir, and now the build should succeed again.
|
||||
|
|
Загрузка…
Ссылка в новой задаче