33 строки
960 B
C#
33 строки
960 B
C#
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using Microsoft.Build.Framework;
|
|
using Xamarin.Messaging.Build.Client;
|
|
|
|
namespace Xamarin.MacDev.Tasks
|
|
{
|
|
public class LinkNativeCode : LinkNativeCodeTaskBase, ITaskCallback
|
|
{
|
|
string outputPath;
|
|
|
|
public override bool Execute ()
|
|
{
|
|
if (ShouldExecuteRemotely ()) {
|
|
outputPath = Path.GetDirectoryName (OutputFile).Replace ("\\", "/");
|
|
|
|
return new TaskRunner (SessionId, BuildEngine4).RunAsync (this).Result;
|
|
}
|
|
|
|
return base.Execute ();
|
|
}
|
|
|
|
// We should avoid copying files from the output path because those already exist on the Mac
|
|
// and the ones on Windows are empty, so we will break the build
|
|
public bool ShouldCopyToBuildServer (ITaskItem item) => !item.ItemSpec.StartsWith (outputPath);
|
|
|
|
public bool ShouldCreateOutputFile (ITaskItem item) => false;
|
|
|
|
public IEnumerable<ITaskItem> GetAdditionalItemsToBeCopied () => Enumerable.Empty<ITaskItem> ();
|
|
}
|
|
}
|