2009-05-18 Miguel de Icaza <miguel@novell.com>
[mono.git] / mcs / class / Microsoft.Build.Engine / Microsoft.Build.BuildEngine / ChangeLog
1 2009-05-12  Ankit Jain  <jankit@novell.com>
2
3         * Project.cs (.ctor): Init timeOfLastDirty.
4
5 2009-05-05  Miguel de Icaza  <miguel@novell.com>
6
7         * Contribution from Martin Brenn to fix #498154.
8
9 2009-04-27  Ankit Jain  <jankit@novell.com>
10
11         Fix bug #497839.
12         * Engine.cs (BuildProjectFile): Set project's GlobalProperties to the
13         one passed as argument.
14
15 2009-04-27  Ankit Jain  <jankit@novell.com>
16
17         * TaskEngine.cs (Prepare): Emit a useful error message property value
18         can't be converted to required type.
19
20 2009-04-27  Ankit Jain  <jankit@novell.com>
21
22         * ExpressionCollection.cs (ConvertToObject): Allow true/on/yes
23         as valid true values for bool, and corresponding for false.
24
25 2009-03-27  Jonathan Chambers  <joncham@gmail.com>
26
27         * BuildWhen.cs: Add basic implementation.
28         * BuildChoose.cs: Add basic implementation.
29         * BuildItem.cs (AddEvaluatedItem): Add BuiltItem to 
30         EvaluatedItemsIgnoringCondition.
31         * GroupingCollection.cs: Add evaluation of BuildChoose items.
32
33 2009-03-26  Jonathan Chambers  <joncham@gmail.com>
34
35         * TaskDatabase.cs (RegisterTask): Search for class by name
36         if task was not found using GetType (which uses namespace). 
37
38 2009-02-26  Ankit Jain  <jankit@novell.com>
39
40         * Target.cs: Handle target with no tasks. Log errors.
41
42 2009-02-24  Ankit Jain  <jankit@novell.com>
43
44         Lazily load UsingTask tasks.
45         * UsingTask.cs (Evaluate): Register 'this' with task database,
46         but don't load it yet. Register only if condition evaluates to true.
47         Move the load logic to ..
48         (Load): .. here. Register with the specified task database.
49         * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance
50         in a table keyed by task name, but don't load it yet.
51         (GetTypeFromClassName): Try to load UsingTask if task is not already
52         loaded. Move loading logic to ..
53         (GetTypeFromClassNameInternal): .. here.
54         (CopyTasks): Copy the usingTasks table also.
55
56 2009-02-23  Ankit Jain  <jankit@novell.com>
57
58         * BuildItem.cs (AddMetadata): Allow overwriting older values.
59
60 2009-02-22  Ankit Jain  <jankit@novell.com>
61
62         * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode
63         instead of XmlElement. Eg. XmlComment
64
65 2009-02-21  Ankit Jain  <jankit@novell.com>
66
67         * Utilities.cs (FromMSBuildPath): Copy from monodevelop.
68         * Project.cs (Load): Use FromMSBuildPath on the path.
69         (InitializeProperties): Set "MSBuildToolsPath" also.
70
71 2009-02-20  Ankit Jain  <jankit@novell.com>
72
73         Fix #449683.
74         * ConditionTokenizer.cs: Handle unquoted item references (with or w/o
75         transforms) in conditions.
76         * ConditionParser.cs: Parse unquoted item, property references.
77         eg. Condition = " @(Foo->'%(Extension)') == '.exe' "
78         * Token.cs (Token.ToString): Override.
79         (TokenType.Transform): Uncomment.
80
81 2009-02-12  Jonathan Chambers  <joncham@gmail.com>
82
83         * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
84         no XmlElement.InnerText. This allows properties to be additional 
85         xml elements.
86
87 2009-02-01  Ankit Jain  <jankit@novell.com>
88
89         * BuildEngine.cs (BuildProjectFile): Use
90         BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
91         * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
92         built. Move logging of project start/finish to ..
93         * Project.cs: .. here. Build a target only if hasn't been built already.
94         Keep track of target outputs, and return those even if an already built
95         target has been invoked again.
96         Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
97
98 2009-01-31  Ankit Jain  <jankit@novell.com>
99
100         * BatchingImpl.cs: Split into ..
101         * BatchingImplBase.cs: .. this,
102         * TaskBatchingImpl.cs: .. this ..
103         * TargetBatchingImpl.cs: .. and this. Implement target batching here.
104
105         * Target.cs (DoBuild): Use TargetBatchingImpl for building.
106         (Log*): Move to TargetBatchingImpl .
107         (BuildTasks): New.
108         (Engine): New.
109
110 2009-01-30  Ankit Jain  <jankit@novell.com>
111
112         * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
113         arrays.
114
115 2009-01-29  Ankit Jain  <jankit@novell.com>
116
117         * BuildItem.cs (child_items): Change type from BuildItemGroup to
118         List<BuildItem>.
119         (HasParent): Rename to ..
120         (HasParentItem): .. this.
121         (ParentItemGroup): Add setter.
122
123         * BuildItemGroup.cs (.ctor): Add overload with @project param.
124         (AddNewItem):
125         (AddItem): Correctly set the ParentItemGroup for new build items.
126         (ParentProject): Add setter.
127         * Project.cs: Set the project for new BuildItemGroup instances.
128         * TaskEngine.cs (PublishItemGroup): Likewise.
129
130 2009-01-06  Ankit Jain  <jankit@novell.com>
131
132         * Project.cs (Build): Honor InitialTargets list.
133
134 2009-01-06  Ankit Jain  <jankit@novell.com>
135
136         * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
137         the property type also.
138         * MSBuild.cs (Execute): Parse 'Properties' task param to set global
139         properties.
140
141 2009-01-06  Ankit Jain  <jankit@novell.com>
142
143         * Project.cs (Build): Correctly handle null targetNames argument.
144
145 2009-01-06  Ankit Jain  <jankit@novell.com>
146
147         * Engine.cs (LogProjectStarted): Add a null check.
148
149 2009-01-01  Ankit Jain  <jankit@novell.com>
150
151         * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
152         * ChangeType (ToBuildItemGroup): Add 'split' param.
153         Track api changes.
154         * Expression.cs (Parse): Add a new overload with a 'split' param.
155         * ExpressionCollection.cs (Add): Add new overload for IReference,
156         remove the ones for Item/Metadata/PropertyReference.
157         (ConvertToArray): Implement correctly.
158         (ConvertToString): Track api changes.
159         (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
160         (ConvertToITaskItemArray): Implement support for concat'ing expressions.
161         (AddItemsToArray): New.
162         (ConvertToITaskItemArrayFromString): Refactor a bit.
163         (ThrowCantConcatError): New.
164         * ItemReference.cs: Update.
165         * MetadataReference.cs: Update.
166         * PropertyReference.cs (ConvertToITaskItemArray): Implement.
167         (GetValue): New.
168         * BuildPropertyGroup.cs: Track api changes.
169         * TaskEngine.cs (PublishOutput): Improve exception message.
170         * Project.cs (DoLoad): Improve exception message. Add a null check.
171
172 2008-12-30  Ankit Jain  <jankit@novell.com>
173
174         * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
175         metadata values for unqualified references.
176         (BuildItemGroupToITaskItemArray): Rename to ..
177         (BuildItemGroupToITaskItems): .. this.
178         (HasTaskItem): New.
179
180 2008-12-18  Ankit Jain  <jankit@novell.com>
181
182         * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
183
184 2008-12-17  Ankit Jain  <jankit@novell.com>
185
186         * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
187         only one instance of unique metadata value is required.
188
189 2008-11-22  Ankit Jain  <jankit@novell.com>
190
191         * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
192         MetadataReference.
193         * MetadataReference.cs (ConvertToITaskItemArray): New.
194         * Project.cs (GetAllItemGroups): New.
195
196 2008-11-21  Ankit Jain  <jankit@novell.com>
197
198         * BatchingImpl.cs: Add task batching implementation.
199         * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
200         * ExpressionCollection.cs (Count): New.
201         (ConvertToString): Handle MetadataReference.
202         * ItemReference.cs (ConvertToString):
203         (ConvertToITaskItemArray): Use the batching api.
204         (ToString): New.
205         * MetadataReference.cs (ConvertToString): New.
206         (ToString): New.
207         * Project.cs: Add api for accessing batched items and metadata.
208         * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
209         item group.
210
211 2008-10-01  Ankit Jain  <jankit@novell.com>
212
213         * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
214         (BuildProjectFile): If filename is null (project.LoadXml) then use
215         engine.BuildProject
216         * BuildTask.cs (InitializeTask): Track api change.
217         * Expression.cs (Parse): Skip empty entries in the expression.
218
219 2008-09-24  Ankit Jain  <jankit@novell.com>
220
221         * Engine.cs: Add argument checks.
222         * Project.cs: Likewise.
223
224 2007-03-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
225
226         * Project.cs (Build): Add outputs to targetOutputs.
227
228 2007-03-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
229
230         * ExpressionCollection.cs (ConvertToArray): Simplify.
231
232 2007-03-05  Marek Sieradzki  <marek.sieradzki@gmail.com>
233
234         * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
235         simplified. It still needs tests and refactoring.
236
237 2007-02-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
238
239         * BuildEngine.cs (BuildProjectFile): Don't crash on null
240         globalProperties.
241
242         * Target.cs: Add Outputs property.
243
244 2007-02-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
245
246         * Target.cs (Build): Split to GetDependencies () and BuildDependencies
247         (). Support condition.
248         
249         * BatchingImpl.cs (BatchBuildTask): Simplify.
250
251 2007-02-18  Marek Sieradzki  <marek.sieradzki@gmail.com>
252
253         * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
254         Simplified.
255
256         * ConditionFunctionExpression.cs: Removed warnings.
257
258         * BuildTask.cs (Execute): Write exceptions to std err (they should be
259         logged but it's better than swallowing).
260
261 2007-02-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
262
263         * ConditionTokenizer.cs: Add Putback ().
264
265         * ConditionParser.cs: Add parsing of functions.
266
267         * ConditionFunctionExpression.cs: Add.
268
269 2007-02-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
270
271         * BuildPropertyGroup (SetProperty): Throw an exception when trying to
272         set property in persisted property group.
273
274 2007-01-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
275
276         * BuildTask.cs (Execute): Log errors that happen when invoking ITask
277         .ctor.
278
279         * ConsoleLogger.cs (TargetFinishedHandler)
280         (TaskFinishedHandler): Increment error count.
281
282 2007-01-28  Marek Sieradzki  <marek.sieradzki@gmail.com>
283
284         * BuildItem.cs (RemoveMetadata): Remove from XML.
285         (SetMetadata): Trigger project reevaluation.
286
287 2007-01-26  Marek Sieradzki  <marek.sieradzki@gmail.com>
288
289         * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
290         properties.
291
292 2007-01-23  Marek Sieradzki  <marek.sieradzki@gmail.com>
293
294         * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
295         TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
296         BatchingImpl.cs, BuildProperty.cs: Track API changes.
297
298         * Expression.cs (Parse): Added allowItems parameter and made regexes
299         static.
300
301         * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
302         will try to import a.ext when given a.EXT.
303
304 2007-01-21  Marek Sieradzki  <marek.sieradzki@gmail.com>
305
306         * BuildItemGroup.cs: Store information saying what is the last item
307         group that contains build item name.
308
309         * Project.cs (Build): Pass empty array (build default targets).
310
311 2007-01-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
312
313         * Token.cs: Commented Transform and LiteralSubExpression and added
314         FunctionName token.
315
316         * ConditionParser.cs: Removed redundant casts, rewrote
317         ParseFactorExpression () and added parsing of '!'.
318
319         * ConditionTokenizer.cs: Always skip whitespaces when getting next
320         token (no IgnoreWhiteSpace property). Don't create a token from '->'.
321         Moved ReadChar () in front of all ifs.
322
323 2007-01-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
324
325         * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
326         from XML. (not to escape items that have parents twice).
327
328 2007-01-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
329
330         * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
331         (Project): Renamed to ParentProject.
332
333         * BuildItem.cs (ctor)
334         (CopyCustomMetadata): Add null check.
335
336         * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
337         (RemoveProperty): Added null check.
338
339         * TargetCollection.cs (RemoveTarget): Added null check.
340
341         * Engine.cs (UnloadProject): Added null check.
342
343         * GroupingCollection.cs (Remove): Check if removed group belongs to
344         current project.
345
346         * Project.cs (AddNewItem): Implemented.
347         (RemoveItem): Reorganized.
348         (SetProjectExtensions): Added null check.
349
350 2007-01-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
351
352         * BuildItemGroup.cs (Detach): Added.
353         (RemoveItem)
354         (RemoveItemAt): Used Detach ().
355
356         * BuildItem.cs: Made FromXml and HasParent internal and added
357         ParentItem and ParentItemGroup properties (internal).
358         (Detach): Added.
359
360         * GroupingCollection.cs (Remove): Used Detach ().
361
362         * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
363         text on Save ().
364         (GetEvaluatedItemsByNameIgnoringCondition)
365         (GetEvaluatedItemsByName)
366         (GetEvaluatedProperty): Reevaluate if needed.
367         (RemoveItem)
368         (RemoveAllItemGroups)
369         (RemoveAllPropertyGroups): Implemented.
370         (DoLoad): Added closing of TextReader.
371
372 2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
373
374         * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
375         change but just mark that it needs it.
376
377         * Project.cs: Reevaluate when it needs reevaluation and one of
378         Evaluated* properties is used.
379
380 2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
381
382         * Target.cs: Throw an exception when <OnError> is not last element in
383         target.
384
385         * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
386
387         * TargetCollection.cs: If a target is already there replace it with
388         new target.
389
390         * BuildProperty.cs: Added XmlElement property.
391
392 2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
393
394         * ImportCollection.cs: Don't add imports that are already added.
395
396         * BuildItemGroup.cs: MonoTODOs.
397
398         * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
399         condition can't be evaluated to bool.
400
401         * BuildPropertyGroup.cs (Evaluate): Simplify.
402
403 2007-01-10  Marek Sieradzki  <marek.sieradzki@gmail.com>
404
405         * BuildWhen.cs: Moved BindToXml () code to ctor.
406
407         * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
408         property needed for removing groups.
409
410         * Engine.cs: Added StartBuild () that logs build start when Build ()
411         was first called.
412
413         * GroupingCollection.cs: Added Remove () for item and property groups.
414
415         * Project.cs (AddNewImport): Implemented.
416         (AddNewItemGroup): Implemented.
417         (AddNewPropertyGroup): Implemented.
418         (AddNewUsingTaskFromAssemblyFile): Implemented.
419         (AddNewUsingTaskFromAssemblyName): Implemented.
420         (RemoveItemGroup): Implemented.
421         (RemovePropertyGroup): Implemented.
422
423 2007-01-10  Marek Sieradzki  <marek.sieradzki@gmail.com>
424
425         * BuildItemGroup.cs (Clear): Remove from XML.
426
427         * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
428         to Project.EvaluatedProperties.
429         (Clear): Remove from XML.
430
431 2007-01-09  Marek Sieradzki  <marek.sieradzki@gmail.com>
432
433         * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
434         reserved property.
435
436 2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
437
438         * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
439         Add () calls when processing a project from Import and
440         evaluate_iterator for evaluation.
441
442 2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
443
444         * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
445         and prepend relative directory of importing project to full path of
446         imported project.
447
448 2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
449
450         * BuildWhen.cs, BuildPropertyGroupCollection.cs,
451         BuildItemGroupCollection.cs, Project.cs: Track API changes.
452
453         * GroupingCollection.cs: Now it needs Project reference so added it.
454
455         * BuildTask.cs: Formatting.
456
457         * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
458
459         * ConditionParser.cs (ParseAndEvaluate): Added.
460
461         * BuildItem.cs: Changed exception message.
462
463 2007-01-02  Marek Sieradzki  <marek.sieradzki@gmail.com>
464
465         * BuildWhen.cs, BuildPropertyGroupCollection.cs,
466         BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
467         GroupingCollection doesn't need Project reference.
468
469         * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
470
471         * BuildItemGroup.cs: Added new readOnly parameter to ctor.
472         (Project.EvaluatedItems is a read only item group.)
473         (ReplaceWith): Added.
474
475         * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
476         global property group causes reevaluation of its project.
477
478         * Project.cs: ProcessXml () is internal and can be "safely" invoked by
479         other classes.
480
481         * OldExpression.cs: Removed.
482
483         * BuildProperty.cs (Evaluate): Simplified.
484
485         * ChangeType.cs (TemporaryTransform): Simplified.
486
487         * BuildItem.cs: There are now 3 types of build items: from XML, having
488         parent from XML, virtual. Added SplitParentItem ().
489
490 2006-12-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
491
492         * Utilities.cs: Added Unescape ().
493
494         * BuildItemGroup.cs, BuildItem.cs: Pass null project to
495         BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
496         groups (at the moment just unescape).
497
498         * Expression.cs (CopyToExpressionList): Unescape strings.
499
500 2006-12-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
501
502         * Target.cs (ctor): Added ImportedProject argument and removed
503         set_IsImported.
504         (AddNewTask): Implemented.
505
506         * TargetCollection.cs (AddNewTarget): Implemented.
507
508         * Project.cs: Track API changes.
509
510 2006-12-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
511
512         * Target.cs (Build): Don't throw anything in case of error, just
513         return false.
514
515         * BuildItemGroup.cs (set_Condition): Throw an exception if group is
516         not from XML.
517
518         * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
519         SetMetadata ().
520
521         * BuildProperty.cs (ToString): Throw an exception if property is not
522         from XML.
523         (op_Explicit): Added a null check.
524
525         * Engine.cs: Better error message.
526
527         * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
528         IndexOutOfRangeException.
529
530         * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
531         (MarkProjectAsDirty): Set time.
532
533 2006-12-18  Marek Sieradzki  <marek.sieradzki@gmail.com>
534
535         * BuildItemGroup.cs (Clone): Throw exception.
536
537         * Project.cs (Load): Throw InvalidProjectFileException if anything
538         goes wrong.
539
540 2006-12-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
541
542         * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
543         and ConvertToITaskItemArray ().
544
545 2006-12-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
546
547         * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
548         classes that were public in Beta 2 and aren't used.
549
550         * Expression.cs: Added replacement for parsing expressions char by
551         char. It uses regexes to find item/property/metadata references in
552         given text.
553
554         * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
555         Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
556         BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
557
558         * ConditionRelationalExpression.cs: Formatting.
559
560         * OldExpression.cs: Commented everything.
561
562         * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
563         parsing to Expression.
564
565         * BuildItem.cs: Check if project is from XML in set_Condition and
566         set_Exclude.
567
568         * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
569         Project.ctor.
570
571         * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
572         can evaluate expression in CanEvaluateToBool ().
573
574 2006-12-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
575
576         * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
577         which item group is imported.
578
579         * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
580
581 2006-12-11  Marek Sieradzki  <marek.sieradzki@gmail.com>
582
583         * BuildWhen.cs, BuildPropertyGroupCollection.cs,
584         BuildItemGroupCollection.cs: Little changes related to
585         GroupingCollection.
586
587         * ImportCollection.cs: Use GroupingCollection not an internal list.
588
589         * Import.cs (Evaluate): Split to functions and check if
590         EvaluatedProjectPath is empty.
591
592         * GroupingCollection.cs, Project.cs: Move evaluation to
593         GroupingCollection. Change algorithm to use 2 passes: first for property
594         groups and imports and second for item groups.
595
596 2006-12-11  Marek Sieradzki  <marek.sieradzki@gmail.com>
597
598         * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
599         BuildItemGroup> not IDictionary.
600
601         * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
602         evaluated to false because we want to add every item to
603         Project.EvaluatedItemsByNameIgnoringCondition.
604
605         * Project.cs (Build): Don't throw an exception just return false.
606         (GetEvaluatedProperty): Avoid NullReferenceException.
607         (SetProjectExtensions): Implemented.
608
609 2006-12-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
610
611         * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
612
613         * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
614         BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
615         Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
616         
617         * ImportCollection.cs: Added a note.
618
619 2006-12-07  Marek Sieradzki  <marek.sieradzki@gmail.com>
620
621         * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
622
623         * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
624         (UsingTask[] array, int index)
625
626         * TaskEngine.cs: Reformatted PublishOutput () and added copying of
627         items to Project.EvaluatedItems in PublishItemGroup ();
628
629         * BuildItemGroup.cs: Added [MonoTODO].
630
631         * UsingTask.cs: Used expression for AssemblyFile to get around
632         problems with '\' and '/'.
633
634         * BuildItem.cs (ctor): Added null checks.
635         (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
636         (SetMetadata): Don't escape evaluatedMetadata and escape
637         unevaluatedMetadata only when treatPropertyValueAsLiteral.
638
639         * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
640         FromXml () instead of null checks.
641         (SetProperty): Escape propertyValue when it is literal.
642
643         * BuildProperty.cs: Changed exception message.
644
645         * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
646         properties.
647         (GetProjectExtensions): Implemented.
648
649 2006-12-05  Marek Sieradzki  <marek.sieradzki@gmail.com>
650
651         * BuildTask.cs: Remove [MonoTODO], add exception throwing in
652         GetParameterValue (), use expressions in ContinueOnError.
653         * ConditionFactorException.cs: Throw InvalidProjectFileException ()
654         instead of InvalidOperationException ().
655         * ImportCollection.cs: Implement CopyTo ().
656         * Target.cs: Remove redundant variables (XmlAttributes), return
657         String.Empty in DependsOnTargets, add a null check in RemoveTask ().
658         * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
659         * Import.cs: Throw an exception when file does not exist.
660         * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
661         * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
662         need to treat item as a token probably
663
664 2006-12-04  Marek Sieradzki  <marek.sieradzki@gmail.com>
665
666         * Import.cs: Check for project.FullFileName (Path.DirectoryName would
667         throw an exception).
668         * BuildItemGroupCollection.cs: Changed exception types.
669
670 2006-10-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
671
672         * Engine.cs: Removed redundant cast.
673         * BuildWhen.cs:
674         * UsingTaskCollection.cs:
675         * ImportCollection:
676         * BuildChoose.cs:
677         * BuildItem.cs:
678         * TargetCollection.cs: Comment unused variable.
679         * ConditionTokenizer.cs: Simplified checking if current token is a
680         keyword.
681         * Target.cs: Removed old code.
682
683 2006-10-08  Marek Sieradzki  <marek.sieradzki@gmail.com>
684
685         * Target.cs: Changed "" to String.Empty.
686         * TaskEngine.cs: Don't try to convert a parameter to specific type if
687         string was evaluated to String.Empty.
688         * InternalLoggerException.cs:
689         * InvalidProjectFileException.cs: Added LinkDemand before
690         GetObjectData ().
691         * ConsoleLogger.cs: Changed "" to String.Empty.
692         * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
693         with change to generics).
694         * Project.cs: Made Build () throw more meaningful exception.
695
696 2006-10-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
697
698         * Target.cs: Reformatted.
699         * TaskEngine.cs: Removed redundant code.
700         * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
701         * Engine.cs: Made BuildProjectFile () load project file if it's not
702         loaded yet.
703
704 2006-09-21  Marek Sieradzki  <marek.sieradzki@gmail.com>
705
706         * ConditionRelationalExpression.cs: Change comparers to case
707         insensitive.
708         * ImportCollection.cs: Add NotImplementedExceptions.
709         * BuildPropertyGroup.cs: Reformatted a bit.
710         * BuildProperty.cs: The same.
711         * Project.cs: Moved evaluation of imports before evaluation of
712         properties. This may "work" until importing projects is redesigned but
713         probably isn't correct.
714
715 2006-09-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
716
717         * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
718         (like comments)
719         * BuildItemGroup.cs: Change return to continue.
720
721 2006-09-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
722
723         * ConditionParser.cs: Copyright note.
724         * ExpressionCollection.cs: Fixed arrays passing.
725
726 2006-08-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
727
728         * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
729         Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
730         BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
731         TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
732
733 2006-06-25  Marek Sieradzki  <marek.sieradzki@gmail.com>
734
735         * Token.cs: Changed names: removed "than".
736         * ConditionRelationalExpression.cs: Added.
737         * ConditionFactorExpression.cs: Added.
738         * BuildItemGroup.cs: Changed Condition property return value to return
739         String.Empty instead of null.
740         * ConditionParser.cs: Added support for parsing relational expressions
741         and factors.
742         * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
743         abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
744         and CanEvaluateToBool (), CanEvaluateToNumber () and
745         CanEvaluateToString ().
746         * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
747         appropriately to ConditionExpression base class.
748         * ConditionTokenizer.cs: Added null check and changed names in enums:
749         removed "than".
750         * ConditionNotExpression.cs: Added.
751         * BatchingImpl.cs: Changed to use BoolEvaluate ().
752         * Project.cs: Added checks for condition.
753
754 2006-06-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
755
756         * ConditionalTokenizer.cs, ConditionalExpression.cs,
757         ConditionalParser.cs: Changed name,
758         removed -al.
759         * ConditionExpression.cs: Added Evaluate ().
760         * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
761         * BatchingImpl.cs: Added check if task should be executed.
762
763 2006-06-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
764
765         * UsingTask.cs: Changed properties to return null on empty attribute.
766         * UsingTaskCollection.cs: Added object to SyncRoot.
767         * BuildPropertyGroup.cs: Added NotImplementedException throwing.
768
769 2006-06-02  Marek Sieradzki  <marek.sieradzki@gmail.com>
770
771         * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
772         BuildPropertyGroupCollection.cs: Fixed to match the tests.
773
774 2006-05-27  Marek Sieradzki  <marek.sieradzki@gmail.com>
775
776         * Utilities.cs: Implemented Escape ().
777         * BuildItem.cs: Added null checks.
778         * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
779         * Project.cs: Commented out redundant Evaluate ().
780         * BuildChoose.cs: Minor changes.
781
782 2006-05-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
783
784         * Token: Added new few missing tokens.
785         * Target.cs, Project.cs: Patch from Matthew Metnesky.
786         * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
787         ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
788         ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
789         LiteralTokenizer.cs:
790         Removed literal expression parsing based on tokenizer and
791         parser. It needs to be done by regex.
792         
793         Moved tokenizer to ConditionalTokenizer.cs.
794
795 2006-05-05  Marek Sieradzki  <marek.sieradzki@gmail.com>
796
797         * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
798         ItemReference.cs, PropertyReference.cs: Changed name of *Reference
799         methods converting reference to string from ToString () to
800         ConvertToString () to avoid mistakes like using ToString () provided
801         by default.
802
803 2006-05-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
804
805         * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
806         Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
807         PropertyReference.cs, BuildProperty.cs: Changed Expression to
808         OldExpression and changed To* functions to one ConvertTo ().
809         * TaskEngine.cs: Fixed PublishOutput ().
810         * OldExpression.cs: Added. It will be temporarily used before
811         LiteralExpression will be written using Tokenizer.
812         * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
813         ExpressionParseException.cs, LiteralExpression.cs: Added.
814
815 2006-04-24  Marek Sieradzki  <marek.sieradzki@gmail.com>
816
817         * ImportedProject.cs: Removed warning.
818         * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
819         default tasks.
820
821 2006-04-24  Marek Sieradzki  <marek.sieradzki@gmail.com>
822
823         * Project.cs: Removed unnecessary variable.
824         * Engine.cs: Added fixme.
825
826 2006-04-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
827
828         * BuildItem.cs: Moved checking if metadata name is reserved to internal
829         class (Mono.XBuild.Utilities.ReservedNameUtils).
830                 
831 2006-04-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
832
833         * BuildTask.cs: Removed unnecessary variable.
834         * Engine.cs: Added logging of the build start.
835         * Project.cs: Removed unnecessary variable.
836
837 2006-04-07  Marek Sieradzki  <marek.sieradzki@gmail.com>
838
839         * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
840
841 2006-03-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
842
843         * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
844
845 2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
846         
847         * BuildItem.cs: Fix typo?
848
849 2006-03-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
850
851         * InternalLoggerException.cs, InvalidProjectFileException.cs,
852         Engine.cs, Project.cs: Coding style fixes.
853
854 2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
855         
856         * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
857
858 2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
859         
860         * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
861         to pass tests. Wrote serialization constructor.
862         * Engine.cs, Project.cs: Global engine and project unloading, test and
863         formatting fixes.
864
865 2006-03-28  Marek Sieradzki  <marek.sieradzki@gmail.com>
866
867         * UsingTask.cs: Formatting changes.
868
869 2006-03-27  Crestez Leonard  <cdleonard@gmail.com>
870
871         * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
872         to lists instead of hashtables.
873         * Import.cs: Cleaned up, moved importing from Project.cs
874         * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
875         * Engine.cs: Cleaned up properties.
876         * Project.cs: Moved importing to Import.cs, cleaned up properties,
877         Separated evaluation and loading.
878         
879 2006-03-21  Crestez Leonard  <cdleonard@gmail.com>
880
881         * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
882         BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
883         Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
884         binding and evaluation, merge xml binding in constructors.
885         * DirectoryScanner.cs: Includes CAN be empty.
886         * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
887         * ConsoleLogger.cs: Fix compilation warning.
888
889 2006-03-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
890
891         * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
892
893 2006-03-18  Marek Sieradzki  <marek.sieradzki@gmail.com> 
894
895         * Engine.cs: API cleanup.
896
897 2006-03-18  Crestez Leonard  <cdleonard@gmail.com>
898
899         * Project.cs: Cleaned up add.
900         * Expression.cs: Hacked to transform \ and / to path separators.
901         * BuildPropertyGroup.cs: Small cleanup.
902         * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
903         reference.
904         
905 2006-03-11  Marek Sieradzki  <marek.sieradzki@gmail.com> 
906
907         * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
908         * BuildItem.cs: Updated for new API and fixed crashing on non-existent
909         files.
910         * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
911         BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
912         Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
913         API.
914         * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
915         * TaskElement.cs: Temporarily removed.
916         * Xml.cs: Changed to static.
917
918 2006-02-26  Marek Sieradzki  <marek.sieradzki@gmail.com>
919
920         * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
921         IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
922         ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
923         IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
924         ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
925         IBuildPropertyGroupCollection.cs: Removed.
926
927 2006-02-26  Marek Sieradzki  <marek.sieradzki@gmail.com> 
928
929         * BuildItem.cs: Removed IBuildItem references.
930         * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
931         IBuildItemGroup references. Changed Evaluate to internal.
932         * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
933         reference and hidden constructors.
934         * BuildProperty.cs: Removed IBuildProperty reference.
935         * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
936         IBuildPropertyGroup references. Changed Evaluate to internal.
937         * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
938         reference and hidden constructors.
939         * ConsoleLogger.cs: Updated names of event handlers.
940         * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
941         Escape. Added UnloadAllProjects () and UnloadProject ().
942         * FileLogger.cs: Removed ApplyParameter ().
943         * GroupingCollection.cs: Hidden.
944         * InvalidProjectFileException.cs: Removed HasBeenLogged property.
945         * ItemPropertyGroupingBase.cs: Commented.
946         * ProcessingPass.cs: Hidden.
947         * Project.cs: Removed IProject reference. Changed CurrentEncoding to
948         Encoding.
949         * Target.cs: Removed ITarget reference.
950         * TargetCollection.cs: Removed ITargetCollection reference.
951         * TaskElement.cs: Removed ITaskElement reference.
952         * TaskEngineAssemblyResolver.cs: Hidden.
953         * Utilities.cs: Made static class, removed CheckPath (),
954         ValidateCulture (), GetSupportedCultures () and added Escape ().
955
956 2006-02-24  Marek Sieradzki <marek.sieradzki@gmail.com> 
957
958         * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
959         API.
960
961 2005-09-22  Marek Sieradzki  <marek.sieradzki@gmail.com>
962
963         * Project.cs: Added MonoTODO attributes.
964         * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
965         ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
966         IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
967         BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
968         SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
969         BuildItemGroup.cs, InvalidProjectFileException.cs,
970         BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
971         Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
972         PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
973         ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
974         IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
975         IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
976         ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
977         ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
978         IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
979         IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
980         BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
981         ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
982
983 2005-09-21  Marek Sieradzki  <marek.sieradzki@gmail.com>
984
985         * TaskDatabase.cs: Change Shared to Framework.
986         * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
987         CaseInsensitiveHashCodeProvider
988
989 2005-09-11  Marek Sieradzki  <marek.sieradzki@gmail.com>
990
991         * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
992         * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
993         property.
994
995 2005-09-09  Marek Sieradzki  <marek.sieradzki@gmail.com>
996
997         * InternalLoggerException.cs: Changed protected fields to private.
998
999 2005-09-03  Marek Sieradzki  <marek.sieradzki@gmail.com>
1000
1001         * Engine.cs: Added check for globalProperties.
1002         * Project.cs: Added using path from importedProject.FullFileName when
1003         adding UsingTask elements.
1004
1005 2005-09-01  Marek Sieradzki  <marek.sieradzki@gmail.com>
1006
1007         * TaskElement.cs: Changed ReflectedType to PropertyType.
1008         * ChangeType.cs (TransformToString): Changed to pass proper Type to
1009         TemporaryTransform. 
1010
1011 2005-09-01  Marek Sieradzki  <marek.sieradzki@gmail.com>
1012
1013         * BuildPropertyGroup.cs: Added check for PropertyType when adding a
1014         new property.
1015         * BuildProperty.cs: Organized PropertyType enum.
1016         * Engine.cs: Added setting CommandLine PropertyType of global
1017         properties.
1018
1019 2005-08-31  Marek Sieradzki  <marek.sieradzki@gmail.com>
1020
1021         * InvalidProjectFileException.cs: Changed Message property.
1022         * ChangeType.cs (TransformToString): Added separator between items.
1023         * TaskEngineAssemblyResolver.cs: Formatting.
1024
1025 2005-08-31  Marek Sieradzki  <marek.sieradzki@gmail.com>
1026
1027         * DirectoryScanner.cs: Added.
1028         * BuildItem.cs: Moved file scanning code to DirectoryScanner.
1029         * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
1030         * Project.cs: Removed Evalute* ().
1031
1032 2005-08-30  Marek Sieradzki  <marek.sieradzki@gmail.com>
1033
1034         * Target.cs: Formatting.
1035         * Expression.cs: Added check if array == null.
1036         * BuildItem.cs: Removed 'break' to remove warnings.
1037         * ConsoleLogger.cs: Formatting.
1038         * Engine.cs: Added handling of default target(s).
1039         * Project.cs: Added handling of default target(s).
1040
1041 2005-08-29  Marek Sieradzki  <marek.sieradzki@gmail.com>
1042
1043         * TaskElement.cs: Added check for parameters.
1044         * Target.cs: Added logging of target skipping.
1045         * Expression.cs: Changed returning object[] to string[], bool[]... in
1046         ToArray ().
1047         * ItemReference.cs: Fixed for item references without custom
1048         separators.
1049         * BatchingImpl.cs: Added real inputs/outputs checking.
1050         * Engine.cs: Moved global properties setting.
1051         * Project.cs: Moved global properties setting.
1052
1053 2005-08-27  Marek Sieradzki  <marek.sieradzki@gmail.com>
1054
1055         * Target.cs: Added checks for target existence.
1056         * BuildItemGroup.cs: Changed to use transforms.
1057         * MetadataReference.cs: Wrote real implementation.
1058         * ItemReference.cs: Rewritten to use transforms.
1059         * BuildItem.cs: Changes for transforms and metadata.
1060         * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
1061         formatting.
1062         * Project.cs: Fixed project importing.
1063         * ImportedProject.cs: Changed to throw exceptions instead of returning
1064         bool.
1065
1066 2005-08-24  Marek Sieradzki  <marek.sieradzki@gmail.com>
1067
1068         * Engine.cs: Removed FIXME.
1069         * Project.cs: Splitted ProcessElements and added project importing.
1070         * ImportedProject.cs: Rewritten.
1071
1072 2005-08-20  Marek Sieradzki  <marek.sieradzki@gmail.com>
1073
1074         * TaskElement.cs: Added getting of objects of every type.
1075         * BuildItemGroup.cs: Added ToITaskItemArray ().
1076         * Expression.cs: Implemented part that is not using metadata.
1077         * ItemReference.cs: Implemented parsing item references. Need to fix
1078         validity checking.
1079         * BuildItem.cs: Fixed ToITaskItem ().
1080         * PropertyReference.cs: Implemented parsing property references. This
1081         also needs validity checking.
1082
1083 2005-08-19  Marek Sieradzki  <marek.sieradzki@gmail.com>
1084
1085         * TaskElement.cs: Added Output element handling.
1086         * Target.cs: Cleaned up.
1087         * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1088         * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1089         ItemReference.cs, ChangeType.cs: Added.
1090         * BuildItem.cs: Added creating BuildItem from TaskItem.
1091         * BuildPropertyGroup.cs: Small changes.
1092         * BatchingImpl.cs: Fixed to return real task execution result.
1093         * BuildProperty.cs: Fixed FinalValue property.
1094         * Engine.cs: Reformatted logging.
1095         * Project.cs: Added check to EvaluateProperty.
1096
1097 2005-08-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
1098
1099         * TaskElement.cs: Added part of execution engine.
1100         * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1101         * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1102         * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1103         * BuildItem.cs: Added handling of built-in metadata and referencing
1104         Items by name not FullName.
1105         * BatchingImpl.cs: Added temporary task "batching".
1106         * ConsoleLogger.cs: Added temporary workaround to not show sender.
1107         * Project.cs: Added Evaluate. It will be moved to separate class.
1108
1109 2005-08-14  Marek Sieradzki  <marek.sieradzki@gmail.com>
1110
1111         * EventSource.cs, Engine.cs: Added CriticalEvents.
1112         * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1113         Project.cs: Added some support for items.
1114         * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1115
1116 2005-08-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
1117
1118         * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1119         of properties.
1120
1121 2005-08-12  Marek Sieradzki  <marek.sieradzki@gmail.com>
1122
1123         * BatchingImpl.cs: Added.
1124         * BuildWhen.cs, BuildEngine.cs, Target.cs,
1125         BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1126         BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1127         TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1128         GroupingCollection.cs: Updated.
1129
1130 2005-08-06  Marek Sieradzki  <marek.sieradzki@gmail.com>
1131
1132         * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1133         BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1134         BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1135         BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1136         EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1137         GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1138         InternalLoggerException.cs, InvalidProjectFileException.cs,
1139         ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1140         ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1141         TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1142         TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1143         Initial check-in of implementations.
1144
1145 2005-07-16  Marek Sieradzki  <marek.sieradzki@gmail.com>
1146
1147         * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1148         IBuildItemGroupCollection.cs, IBuildProperty.cs,
1149         IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1150         ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1151         IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1152         IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1153         Initial check-in of interfaces and a syntax file, real classes are
1154         changing a lot so I'll wait a moment with checking them in.