[xbuild] Set ProjectFile and TargetName metadata on target outputs.
authorAnkit Jain <radical@corewars.org>
Fri, 11 Mar 2011 09:00:20 +0000 (14:30 +0530)
committerAnkit Jain <radical@corewars.org>
Fri, 11 Mar 2011 13:16:19 +0000 (18:46 +0530)
Set "MSBuildProjectFile" and "MSBuildTargetName" metadata on target outputs.

mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Target.cs

index 43affc109ccacffbb3edaf0250f22de635d88a9c..92e369b888b5ba56542aaa6c14f89511f044f252 100644 (file)
@@ -30,6 +30,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using System.Linq;
 using System.Xml;
 using Microsoft.Build.Framework;
 using Microsoft.Build.Utilities;
@@ -175,7 +176,12 @@ namespace Microsoft.Build.BuildEngine {
                                project.PopBatch ();
                        }
 
-                       project.ParentEngine.BuiltTargetsOutputByName [built_targets_key] = (ITaskItem[]) OutputsAsITaskItems.Clone ();
+                       ITaskItem[] outputs = (ITaskItem[]) OutputsAsITaskItems.Clone ();
+                       foreach (ITaskItem item in outputs) {
+                               item.SetMetadata ("MSBuildProjectFile", TargetFile);
+                               item.SetMetadata ("MSBuildTargetName", Name);
+                       }
+                       project.ParentEngine.BuiltTargetsOutputByName [built_targets_key] = outputs;
 
                        return result;
                }