You've already forked linux-packaging-mono
Imported Upstream version 3.10.0
Former-commit-id: 172c8e3c300b39d5785c7a3e8dfb08ebdbc1a99b
This commit is contained in:
@ -40,7 +40,7 @@ namespace Microsoft.Build.BuildEngine {
|
||||
{
|
||||
}
|
||||
|
||||
public bool Build (IBuildTask buildTask, out bool executeOnErrors)
|
||||
public bool Build (IBuildTask buildTask, TaskExecutionMode taskExecutionMode, out bool executeOnErrors)
|
||||
{
|
||||
executeOnErrors = false;
|
||||
try {
|
||||
@ -49,15 +49,11 @@ namespace Microsoft.Build.BuildEngine {
|
||||
// populate list of referenced items and metadata
|
||||
ParseTaskAttributes (buildTask);
|
||||
if (consumedMetadataReferences.Count == 0) {
|
||||
// No batching required
|
||||
if (ConditionParser.ParseAndEvaluate (buildTask.Condition, project))
|
||||
return buildTask.Execute ();
|
||||
else // skipped, it should be logged
|
||||
return true;
|
||||
return Execute (buildTask, taskExecutionMode);
|
||||
}
|
||||
|
||||
BatchAndPrepareBuckets ();
|
||||
return Run (buildTask, out executeOnErrors);
|
||||
return Run (buildTask, taskExecutionMode, out executeOnErrors);
|
||||
} finally {
|
||||
consumedItemsByName = null;
|
||||
consumedMetadataReferences = null;
|
||||
@ -68,7 +64,7 @@ namespace Microsoft.Build.BuildEngine {
|
||||
}
|
||||
}
|
||||
|
||||
bool Run (IBuildTask buildTask, out bool executeOnErrors)
|
||||
bool Run (IBuildTask buildTask, TaskExecutionMode taskExecutionMode, out bool executeOnErrors)
|
||||
{
|
||||
executeOnErrors = false;
|
||||
|
||||
@ -76,11 +72,9 @@ namespace Microsoft.Build.BuildEngine {
|
||||
bool retval = true;
|
||||
if (buckets.Count == 0) {
|
||||
// batched mode, but no values in the corresponding items!
|
||||
if (ConditionParser.ParseAndEvaluate (buildTask.Condition, project)) {
|
||||
retval = buildTask.Execute ();
|
||||
if (!retval && !buildTask.ContinueOnError)
|
||||
executeOnErrors = true;
|
||||
}
|
||||
retval = Execute (buildTask, taskExecutionMode);
|
||||
if (!retval && !buildTask.ContinueOnError)
|
||||
executeOnErrors = true;
|
||||
|
||||
return retval;
|
||||
}
|
||||
@ -89,12 +83,10 @@ namespace Microsoft.Build.BuildEngine {
|
||||
foreach (Dictionary<string, BuildItemGroup> bucket in buckets) {
|
||||
project.PushBatch (bucket, commonItemsByName);
|
||||
try {
|
||||
if (ConditionParser.ParseAndEvaluate (buildTask.Condition, project)) {
|
||||
retval = buildTask.Execute ();
|
||||
if (!retval && !buildTask.ContinueOnError) {
|
||||
executeOnErrors = true;
|
||||
break;
|
||||
}
|
||||
retval = Execute (buildTask, taskExecutionMode);
|
||||
if (!retval && !buildTask.ContinueOnError) {
|
||||
executeOnErrors = true;
|
||||
break;
|
||||
}
|
||||
} finally {
|
||||
project.PopBatch ();
|
||||
@ -104,6 +96,22 @@ namespace Microsoft.Build.BuildEngine {
|
||||
return retval;
|
||||
}
|
||||
|
||||
bool Execute (IBuildTask buildTask, TaskExecutionMode taskExecutionMode)
|
||||
{
|
||||
if (ConditionParser.ParseAndEvaluate (buildTask.Condition, project)) {
|
||||
switch (taskExecutionMode) {
|
||||
case TaskExecutionMode.Complete:
|
||||
return buildTask.Execute ();
|
||||
case TaskExecutionMode.SkipAndSetOutput:
|
||||
return buildTask.ResolveOutputItems ();
|
||||
default:
|
||||
throw new NotImplementedException ();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// Parse task attributes to get list of referenced metadata and items
|
||||
// to determine batching
|
||||
|
Reference in New Issue
Block a user