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