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