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