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