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