41 lines
1.1 KiB
C#
41 lines
1.1 KiB
C#
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
|
||
|
namespace Microsoft.DotNet.Cli.Build.Framework
|
||
|
{
|
||
|
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
|
||
|
public class BuildArchitecturesAttribute : TargetConditionAttribute
|
||
|
{
|
||
|
private IEnumerable<BuildArchitecture> _buildArchitectures;
|
||
|
|
||
|
public BuildArchitecturesAttribute(params BuildArchitecture[] architectures)
|
||
|
{
|
||
|
if (architectures == null)
|
||
|
{
|
||
|
throw new ArgumentNullException("architectures");
|
||
|
}
|
||
|
|
||
|
_buildArchitectures = architectures;
|
||
|
}
|
||
|
|
||
|
public override bool EvaluateCondition()
|
||
|
{
|
||
|
var currentArchitecture = CurrentArchitecture.Current;
|
||
|
|
||
|
if (currentArchitecture == default(BuildArchitecture))
|
||
|
{
|
||
|
throw new Exception("Unrecognized Architecture");
|
||
|
}
|
||
|
|
||
|
foreach (var architecture in _buildArchitectures)
|
||
|
{
|
||
|
if (architecture == currentArchitecture)
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
}
|