[msbuild] Merge the CollectITunesSourceFiles and CollectITunesSourceFilesTaskBase classes. (#17912)

We no longer need two have overridable logic for remote builds, so the
non-abstract task class and the abstract base class can be merged.

Also enable nullability and fix any issues.
This commit is contained in:
Rolf Bjarne Kvinge 2023-03-29 10:34:10 +02:00 коммит произвёл GitHub
Родитель e148c3e3d6
Коммит cb9fc5021a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 15 добавлений и 23 удалений

Просмотреть файл

@ -1,20 +0,0 @@
using Microsoft.Build.Framework;
using Xamarin.Messaging.Build.Client;
namespace Xamarin.iOS.Tasks {
public class CollectITunesSourceFiles : CollectITunesSourceFilesTaskBase, ICancelableTask {
public override bool Execute ()
{
if (ShouldExecuteRemotely ())
return new TaskRunner (SessionId, BuildEngine4).RunAsync (this).Result;
return base.Execute ();
}
public void Cancel ()
{
if (ShouldExecuteRemotely ())
BuildConnection.CancelAsync (BuildEngine4).Wait ();
}
}
}

Просмотреть файл

@ -6,27 +6,33 @@ using Microsoft.Build.Utilities;
using Microsoft.Build.Framework;
using Xamarin.MacDev.Tasks;
using Xamarin.Messaging.Build.Client;
#nullable enable
namespace Xamarin.iOS.Tasks {
public abstract class CollectITunesSourceFilesTaskBase : XamarinTask {
public class CollectITunesSourceFiles : XamarinTask, ICancelableTask {
static readonly string [] iTunesFileNames = { "iTunesMetadata.plist", "iTunesArtwork@2x", "iTunesArtwork" };
#region Inputs
[Required]
public string OutputPath { get; set; }
public string OutputPath { get; set; } = string.Empty;
#endregion
#region Outputs
[Output]
public ITaskItem [] ITunesSourceFiles { get; set; }
public ITaskItem [] ITunesSourceFiles { get; set; } = Array.Empty<ITaskItem> ();
#endregion
public override bool Execute ()
{
if (ShouldExecuteRemotely ())
return new TaskRunner (SessionId, BuildEngine4).RunAsync (this).Result;
var files = new List<ITaskItem> ();
foreach (var fileName in iTunesFileNames) {
@ -42,5 +48,11 @@ namespace Xamarin.iOS.Tasks {
return !Log.HasLoggedErrors;
}
public void Cancel ()
{
if (ShouldExecuteRemotely ())
BuildConnection.CancelAsync (BuildEngine4).Wait ();
}
}
}