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