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