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

Reply via email to