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