[msbuild] Merge the OptimizeImage[TaskBase] classes. (#19774)

This commit is contained in:
Rolf Bjarne Kvinge 2024-01-11 09:03:00 +01:00 коммит произвёл GitHub
Родитель b7044bc46d
Коммит ef03fa8bca
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 22 добавлений и 31 удалений

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

@ -1,30 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using Microsoft.Build.Framework;
using Xamarin.Messaging.Build.Client;
namespace Xamarin.MacDev.Tasks {
public class OptimizeImage : OptimizeImageTaskBase, ITaskCallback {
public override bool Execute ()
{
if (ShouldExecuteRemotely ())
return new TaskRunner (SessionId, BuildEngine4).RunAsync (this).Result;
return base.Execute ();
}
public bool ShouldCopyToBuildServer (ITaskItem item) => !OutputImages.Contains (item);
public bool ShouldCreateOutputFile (ITaskItem item) => true;
public IEnumerable<ITaskItem> GetAdditionalItemsToBeCopied () => Enumerable.Empty<ITaskItem> ();
public override void Cancel ()
{
base.Cancel ();
if (!string.IsNullOrEmpty (SessionId))
BuildConnection.CancelAsync (BuildEngine4).Wait ();
}
}
}

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

@ -1,14 +1,18 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Microsoft.Build.Utilities;
using Microsoft.Build.Framework;
using Xamarin.Messaging.Build.Client;
// Disable until we get around to enable + fix any issues.
#nullable disable
namespace Xamarin.MacDev.Tasks {
public abstract class OptimizeImageTaskBase : XamarinToolTask {
public class OptimizeImage : XamarinToolTask, ITaskCallback {
ITaskItem inputImage;
ITaskItem outputImage;
@ -83,6 +87,9 @@ namespace Xamarin.MacDev.Tasks {
public override bool Execute ()
{
if (ShouldExecuteRemotely ())
return new TaskRunner (SessionId, BuildEngine4).RunAsync (this).Result;
var result = true;
for (var index = 0; index < this.InputImages.Length && index < this.OutputImages.Length; index++) {
@ -101,5 +108,19 @@ namespace Xamarin.MacDev.Tasks {
return result;
}
public bool ShouldCopyToBuildServer (ITaskItem item) => !OutputImages.Contains (item);
public bool ShouldCreateOutputFile (ITaskItem item) => true;
public IEnumerable<ITaskItem> GetAdditionalItemsToBeCopied () => Enumerable.Empty<ITaskItem> ();
public override void Cancel ()
{
base.Cancel ();
if (!string.IsNullOrEmpty (SessionId))
BuildConnection.CancelAsync (BuildEngine4).Wait ();
}
}
}