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