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