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