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