36 строки
909 B
C#
36 строки
909 B
C#
using System.Collections.Generic;
|
|
using System.IO;
|
|
using Microsoft.Build.Framework;
|
|
using Microsoft.Build.Utilities;
|
|
using Xamarin.Messaging.Build.Client;
|
|
|
|
namespace Xamarin.MacDev.Tasks {
|
|
public class AOTCompile : AOTCompileTaskBase, ITaskCallback, ICancelableTask {
|
|
public override bool Execute ()
|
|
{
|
|
if (ShouldExecuteRemotely ())
|
|
return new TaskRunner (SessionId, BuildEngine4).RunAsync (this).Result;
|
|
|
|
return base.Execute ();
|
|
}
|
|
|
|
public bool ShouldCopyToBuildServer (ITaskItem item) => false;
|
|
|
|
public bool ShouldCreateOutputFile (ITaskItem item) => true;
|
|
|
|
public IEnumerable<ITaskItem> GetAdditionalItemsToBeCopied ()
|
|
{
|
|
var compiler = new TaskItem (AOTCompilerPath);
|
|
compiler.SetMetadata ("IsUnixExecutable", "true");
|
|
|
|
yield return compiler;
|
|
}
|
|
|
|
public void Cancel ()
|
|
{
|
|
if (ShouldExecuteRemotely ())
|
|
BuildConnection.CancelAsync (BuildEngine4).Wait ();
|
|
}
|
|
}
|
|
}
|