xamarin-macios/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/CollectFrameworksBase.cs

57 строки
1.2 KiB
C#
Исходник Обычный вид История

2016-08-15 22:07:34 +03:00
using System.IO;
2016-04-21 16:40:25 +03:00
using System.Collections.Generic;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
2020-03-14 00:46:28 +03:00
using Xamarin.Localization.MSBuild;
2016-04-21 16:40:25 +03:00
namespace Xamarin.MacDev.Tasks
2016-04-21 16:40:25 +03:00
{
public abstract class CollectFrameworksBase : XamarinTask
2016-04-21 16:40:25 +03:00
{
#region Inputs
[Required]
public string FrameworksDirectory { get; set; }
2016-04-21 16:40:25 +03:00
#endregion
#region Outputs
[Output]
public ITaskItem[] Frameworks { get; set; }
#endregion
public override bool Execute ()
{
var frameworks = new List<ITaskItem> ();
if (Directory.Exists (FrameworksDirectory)) {
foreach (var fw in Directory.GetDirectories (FrameworksDirectory)) {
2016-08-15 22:07:34 +03:00
if (Path.GetExtension (fw) != ".framework") {
2020-03-14 00:46:28 +03:00
Log.LogWarning (MSBStrings.W0103, fw);
2016-04-21 16:40:25 +03:00
continue;
}
var stem = Path.GetFileNameWithoutExtension (fw);
2016-04-21 16:40:25 +03:00
var fwBinary = Path.Combine (fw, stem);
if (!File.Exists (fwBinary)) {
Log.LogWarning (MSBStrings.W0104, fw, stem);
2016-04-21 16:40:25 +03:00
continue;
}
var framework = new TaskItem (fwBinary);
frameworks.Add (framework);
}
} else {
2020-03-14 00:46:28 +03:00
Log.LogMessage (MSBStrings.M0105);
2016-04-21 16:40:25 +03:00
}
Frameworks = frameworks.ToArray ();
return !Log.HasLoggedErrors;
}
}
}