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