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