Author: msierad
Date: 2006-12-11 18:25:43 -0500 (Mon, 11 Dec 2006)
New Revision: 69374
Added:
trunk/mcs/class/Microsoft.Build.Engine/Test/resources/Items.csproj
Modified:
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/BuildItem.cs
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/BuildItemGroup.cs
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Project.cs
trunk/mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/ChangeLog
trunk/mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/ImportTest.cs
Log:
In Microsoft.Build.Engine/Test:
2006-12-12 Marek Sieradzki <[EMAIL PROTECTED]>
* ImportTest.cs: Added test for IsImported on imported BuildItemGroup.
In Microsoft.Build.Engine/Microsoft.Build.BuildEngine:
2006-12-12 Marek Sieradzki <[EMAIL PROTECTED]>
* BuildItemGroup.cs (ctor): Add reference to ImportedProject from
which item group is imported.
* BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
Modified:
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/BuildItem.cs
===================================================================
---
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/BuildItem.cs
2006-12-11 23:24:03 UTC (rev 69373)
+++
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/BuildItem.cs
2006-12-11 23:25:43 UTC (rev 69374)
@@ -232,7 +232,7 @@
project.EvaluatedItems.AddItem (bi);
if (!project.EvaluatedItemsByName.ContainsKey
(bi.name)) {
- big = new BuildItemGroup (null,
project);
+ big = new BuildItemGroup (null,
project, null);
project.EvaluatedItemsByName.Add
(bi.name, big);
} else {
big = project.EvaluatedItemsByName
[bi.name];
@@ -242,7 +242,7 @@
}
if
(!project.EvaluatedItemsByNameIgnoringCondition.ContainsKey (bi.name)) {
- big = new BuildItemGroup (null, project);
+ big = new BuildItemGroup (null, project, null);
project.EvaluatedItemsByNameIgnoringCondition.Add (bi.name, big);
} else {
big =
project.EvaluatedItemsByNameIgnoringCondition [bi.name];
Modified:
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/BuildItemGroup.cs
===================================================================
---
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/BuildItemGroup.cs
2006-12-11 23:24:03 UTC (rev 69373)
+++
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/BuildItemGroup.cs
2006-12-11 23:25:43 UTC (rev 69374)
@@ -42,18 +42,19 @@
List <BuildItem> buildItems;
GroupingCollection parentCollection;
Project parentProject;
+ ImportedProject importedProject;
XmlElement itemGroupElement;
public BuildItemGroup ()
- : this (null, null)
+ : this (null, null, null)
{
}
- internal BuildItemGroup (XmlElement xmlElement, Project project)
+ internal BuildItemGroup (XmlElement xmlElement, Project
project, ImportedProject importedProject)
{
+ this.buildItems = new List <BuildItem> ();
+ this.importedProject = importedProject;
this.itemGroupElement = xmlElement;
- this.buildItems = new List <BuildItem> ();
- this.isImported = false;
this.parentProject = project;
if (!FromXml)
@@ -188,7 +189,7 @@
}
public bool IsImported {
- get { return isImported; }
+ get { return importedProject != null; }
}
Modified:
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog
===================================================================
---
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog
2006-12-11 23:24:03 UTC (rev 69373)
+++
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog
2006-12-11 23:25:43 UTC (rev 69374)
@@ -1,3 +1,10 @@
+2006-12-12 Marek Sieradzki <[EMAIL PROTECTED]>
+
+ * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
+ which item group is imported.
+
+ * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
+
2006-12-11 Marek Sieradzki <[EMAIL PROTECTED]>
* BuildWhen.cs, BuildPropertyGroupCollection.cs,
Modified:
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Project.cs
===================================================================
---
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Project.cs
2006-12-11 23:24:03 UTC (rev 69373)
+++
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Project.cs
2006-12-11 23:25:43 UTC (rev 69374)
@@ -530,9 +530,10 @@
AddImport (xe, ip);
break;
case "ItemGroup":
- AddItemGroup (xe);
+ AddItemGroup (xe, ip);
break;
case "PropertyGroup":
+ // FIXME: pass ip here
AddPropertyGroup (xe);
break;
case "Choose":
@@ -547,8 +548,8 @@
internal void Evaluate ()
{
- evaluatedItems = new BuildItemGroup (null, this);
- evaluatedItemsIgnoringCondition = new BuildItemGroup
(null, this);
+ evaluatedItems = new BuildItemGroup (null, this, null);
+ evaluatedItemsIgnoringCondition = new BuildItemGroup
(null, this, null);
evaluatedItemsByName = new Dictionary <string,
BuildItemGroup> (StringComparer.InvariantCultureIgnoreCase);
evaluatedItemsByNameIgnoringCondition = new Dictionary
<string, BuildItemGroup> (StringComparer.InvariantCultureIgnoreCase);
evaluatedProperties = new BuildPropertyGroup ();
@@ -622,11 +623,11 @@
Imports.Add (import);
}
- private void AddItemGroup (XmlElement xmlElement)
+ private void AddItemGroup (XmlElement xmlElement,
ImportedProject importedProject)
{
if (xmlElement == null)
throw new ArgumentNullException ("xmlElement");
- BuildItemGroup big = new BuildItemGroup (xmlElement,
this);
+ BuildItemGroup big = new BuildItemGroup (xmlElement,
this, importedProject);
ItemGroups.Add (big);
}
Modified:
trunk/mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/ChangeLog
===================================================================
---
trunk/mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/ChangeLog
2006-12-11 23:24:03 UTC (rev 69373)
+++
trunk/mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/ChangeLog
2006-12-11 23:25:43 UTC (rev 69374)
@@ -1,3 +1,7 @@
+2006-12-12 Marek Sieradzki <[EMAIL PROTECTED]>
+
+ * ImportTest.cs: Added test for IsImported on imported BuildItemGroup.
+
2006-12-11 Marek Sieradzki <[EMAIL PROTECTED]>
* ProjectTest.cs: Added more tests.
Modified:
trunk/mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/ImportTest.cs
===================================================================
---
trunk/mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/ImportTest.cs
2006-12-11 23:24:03 UTC (rev 69373)
+++
trunk/mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/ImportTest.cs
2006-12-11 23:25:43 UTC (rev 69374)
@@ -97,5 +97,26 @@
Assert.AreEqual (1, project.Imports.Count, "A1");
}
+
+ [Test]
+ public void TestItems1 ()
+ {
+ string documentString = @"
+ <Project
xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
+ <Import
Project='Test/resources/Items.csproj'/>
+ </Project>
+ ";
+
+ engine = new Engine (Consts.BinPath);
+
+ project = engine.CreateNewProject ();
+ project.LoadXml (documentString);
+
+ BuildItemGroup [] groups = new BuildItemGroup [1];
+ project.ItemGroups.CopyTo (groups, 0);
+
+ Assert.IsTrue (groups [0].IsImported, "A1");
+ Assert.AreEqual (1, groups [0].Count, "A2");
+ }
}
}
Added: trunk/mcs/class/Microsoft.Build.Engine/Test/resources/Items.csproj
===================================================================
--- trunk/mcs/class/Microsoft.Build.Engine/Test/resources/Items.csproj
2006-12-11 23:24:03 UTC (rev 69373)
+++ trunk/mcs/class/Microsoft.Build.Engine/Test/resources/Items.csproj
2006-12-11 23:25:43 UTC (rev 69374)
@@ -0,0 +1,5 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Item Include="a;b;c" />
+ </ItemGroup>
+</Project>
Property changes on:
trunk/mcs/class/Microsoft.Build.Engine/Test/resources/Items.csproj
___________________________________________________________________
Name: svn:eol-style
+ native
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches