1 2009-08-26 Ankit Jain <jankit@novell.com>
3 * Expression.cs: Correctly handle a item reference with transform
4 when allowItems is false. If item ref is ignored, then the transform
5 will get incorrectly matched as a metadata ref.
6 * ItemReference.cs (.ctor): Add a @original_string param.
8 2009-08-26 Ankit Jain <jankit@novell.com>
10 * Utilities.cs (UnescapeFromXml): New. From md.
11 * BuildProperty.cs (.ctor): Unescape xml codes from the InnerXml
12 of the property element.
14 2009-08-26 Ankit Jain <jankit@novell.com>
16 * BuildProperty.cs (ConvertToString): New.
17 (ConvertoToITaskItemArray): New. Parse the property value.
18 * PropertyReference.cs (ConvertToString): Use BuildProperty's
20 (ConvertoToITaskItemArray): Likewise.
22 2009-08-21 Ankit Jain <jankit@novell.com>
24 * Engine.cs (EndProjectBuild): Use the @succeeded argument
25 instead of hardcoding 'true'.
26 * Target.cs (Build): Add an overload to return executeOnErrors
27 value for the target executed. If building dependencies fails,
28 and executeOnErrors is true, then execute OnError tasks.
29 Add the new param to ..
30 (BuildDependencies): this, ..
32 (GetDependencies): Improve error message and variable name.
33 (ExecuteOnErrors): Honor OnError tag's Condition also.
34 * TaskBatchingImpl.cs (Run): Correctly set executeOnErrors param.
36 2009-08-20 Ankit Jain <jankit@novell.com>
39 * Project.cs (Load): Add support for loading .sln files.
41 2009-08-20 Ankit Jain <jankit@novell.com>
43 * BuildTask.cs (Execute): Use task_logger only after the task
44 has been initialized. Catch and report task loading errors.
45 * Target.cs (DoBuild): Dont rethrow the exception, and emit
46 the stacktrace as a low importance message.
48 2009-08-18 Ankit Jain <jankit@novell.com>
50 * BatchingImplBase.cs: Make the item name lookups and metadata be case
52 * TaskDatabase.cs: Likewise.
53 * TaskEngine.cs: Make property name looks, case insensitive.
55 2009-08-09 Miguel de Icaza <miguel@novell.com>
57 * ConsoleLogger.cs: Change the format of the error and warnings
58 strings to work when invoked inside Emacs by not rendering the
59 column if available, by using lowercase "error"/"warning" strings
60 instead of camelcased versions and to not have unnecessary padding.
62 2009-07-31 Ankit Jain <jankit@novell.com>
64 * ConsoleLogger.cs: Keep track of all the errors and warnings
65 and show them at the end.
67 2009-07-31 Ankit Jain <jankit@novell.com>
69 * Target.cs (Build): Log a message if a target is skipped.
71 * BuildTask.cs (Execute): Log error if task execution fails.
73 2009-07-30 Ankit Jain <jankit@novell.com>
75 * Engine.cs (.ctor): Set default BinPath. Currently this assumes
76 v2.0, this will change when multi-targeting lands.
78 2009-07-30 Ankit Jain <jankit@novell.com>
80 * Project.cs (InitializeProperties) Set 'MSBuildProjectFile' and
81 'MSBuildProjectName' properties.
83 2009-07-28 Ankit Jain <jankit@novell.com>
85 * TaskEngine.cs (Prepare): Fix formatting mistake.
86 * ConsoleLogger.cs: Emit "-- FAILED" also when project/target building
87 fails. Also, emit result of project at Normal verbosity level.
89 2009-07-23 Ankit Jain <jankit@novell.com>
92 * Project.cs (ExtensionsPath): New.
93 (InitializeProperties): Set "MSBuildExtensionsPath" property.
95 2009-06-12 Ankit Jain <jankit@novell.com>
98 * ExpressionCollection.cs (ConvertToITaskItemArray): Whitespace around a
99 itemref is allowed if the prev/next element is ";".
101 2009-06-12 Ankit Jain <jankit@novell.com>
103 * Utilities.cs (FromMSBuildPath): Return null if the path contains
104 "drive:" only on windows.
106 2009-06-07 Ankit Jain <jankit@novell.com>
108 * Target.cs (Outputs): Use ITaskItem[] for conversion, to retain
111 2009-05-29 Ankit Jain <jankit@novell.com>
113 Correctly handle global properties. Correctly log
114 project/build events.
116 * BuildPropertyGroup.cs (Clone): Implement.
117 * Engine.cs (globalProperties): Rename to ..
118 (global_properties): .. this.
119 (currentlyBuildingProjectsStack): New. Used to correctly
120 log and raise project/build start/finish events.
121 (BuildProjectFile): Override any project global properties
122 with explicitly specified ones, here in the param @globalProperties.
123 Mark project for reevaluation, which will update the engine's
124 global properties also.
125 Reset both engine and project's old global properties at the end.
126 (UnregisterAllLoggers): Log build finished only if we are currently
128 (StartBuild): Rename to ..
129 (StartProjectBuild): .. this. Keeps track of the projects being built
130 in the new stack, and logs project and build events accordingly.
131 (EndProjectBuild): New. Uses the stack to keep track of projects
132 finishing builds, and raises project and build events accordingly.
133 (LogProjectStarted): Move here from Project.cs
134 (LogProjectFinished): Likewise.
136 * Project.cs (Build): Log start of project build.
137 Set current directory to the project file's dir, and reset at end.
138 (BuildInternal): Don't log here, its done in Build.
139 (BuildTarget): Already built targets are keyed by the set of global
140 properties that they were built with.
141 (GlobalPropertiesToString): New.
142 (ResetBuildStatus): 'building' must be true to allow built targets to be reset.
143 (RemoveBuiltTargets): Initialize builtTargetKeys in .ctor
144 (Evaluate): Remove built targets only if we are currently building and
145 build settings are None.
146 Merge project's global properties with those of the parent engine.
147 Add missing properties from engine's global properties.
148 (LogTargetSkipped): Fix format string, add the reqd argument.
150 2009-05-29 Ankit Jain <jankit@novell.com>
152 * ConditionFunctionExpression.cs: Add 'HasTrailingSlash' function.
153 (HasTrailingSlash): New.
155 2009-05-12 Ankit Jain <jankit@novell.com>
157 * Project.cs (.ctor): Init timeOfLastDirty.
159 2009-05-05 Miguel de Icaza <miguel@novell.com>
161 * Contribution from Martin Brenn to fix #498154.
163 2009-04-27 Ankit Jain <jankit@novell.com>
166 * Engine.cs (BuildProjectFile): Set project's GlobalProperties to the
167 one passed as argument.
169 2009-04-27 Ankit Jain <jankit@novell.com>
171 * TaskEngine.cs (Prepare): Emit a useful error message property value
172 can't be converted to required type.
174 2009-04-27 Ankit Jain <jankit@novell.com>
176 * ExpressionCollection.cs (ConvertToObject): Allow true/on/yes
177 as valid true values for bool, and corresponding for false.
179 2009-03-27 Jonathan Chambers <joncham@gmail.com>
181 * BuildWhen.cs: Add basic implementation.
182 * BuildChoose.cs: Add basic implementation.
183 * BuildItem.cs (AddEvaluatedItem): Add BuiltItem to
184 EvaluatedItemsIgnoringCondition.
185 * GroupingCollection.cs: Add evaluation of BuildChoose items.
187 2009-03-26 Jonathan Chambers <joncham@gmail.com>
189 * TaskDatabase.cs (RegisterTask): Search for class by name
190 if task was not found using GetType (which uses namespace).
192 2009-02-26 Ankit Jain <jankit@novell.com>
194 * Target.cs: Handle target with no tasks. Log errors.
196 2009-02-24 Ankit Jain <jankit@novell.com>
198 Lazily load UsingTask tasks.
199 * UsingTask.cs (Evaluate): Register 'this' with task database,
200 but don't load it yet. Register only if condition evaluates to true.
201 Move the load logic to ..
202 (Load): .. here. Register with the specified task database.
203 * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance
204 in a table keyed by task name, but don't load it yet.
205 (GetTypeFromClassName): Try to load UsingTask if task is not already
206 loaded. Move loading logic to ..
207 (GetTypeFromClassNameInternal): .. here.
208 (CopyTasks): Copy the usingTasks table also.
210 2009-02-23 Ankit Jain <jankit@novell.com>
212 * BuildItem.cs (AddMetadata): Allow overwriting older values.
214 2009-02-22 Ankit Jain <jankit@novell.com>
216 * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode
217 instead of XmlElement. Eg. XmlComment
219 2009-02-21 Ankit Jain <jankit@novell.com>
221 * Utilities.cs (FromMSBuildPath): Copy from monodevelop.
222 * Project.cs (Load): Use FromMSBuildPath on the path.
223 (InitializeProperties): Set "MSBuildToolsPath" also.
225 2009-02-20 Ankit Jain <jankit@novell.com>
228 * ConditionTokenizer.cs: Handle unquoted item references (with or w/o
229 transforms) in conditions.
230 * ConditionParser.cs: Parse unquoted item, property references.
231 eg. Condition = " @(Foo->'%(Extension)') == '.exe' "
232 * Token.cs (Token.ToString): Override.
233 (TokenType.Transform): Uncomment.
235 2009-02-12 Jonathan Chambers <joncham@gmail.com>
237 * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
238 no XmlElement.InnerText. This allows properties to be additional
241 2009-02-01 Ankit Jain <jankit@novell.com>
243 * BuildEngine.cs (BuildProjectFile): Use
244 BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
245 * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
246 built. Move logging of project start/finish to ..
247 * Project.cs: .. here. Build a target only if hasn't been built already.
248 Keep track of target outputs, and return those even if an already built
249 target has been invoked again.
250 Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
252 2009-01-31 Ankit Jain <jankit@novell.com>
254 * BatchingImpl.cs: Split into ..
255 * BatchingImplBase.cs: .. this,
256 * TaskBatchingImpl.cs: .. this ..
257 * TargetBatchingImpl.cs: .. and this. Implement target batching here.
259 * Target.cs (DoBuild): Use TargetBatchingImpl for building.
260 (Log*): Move to TargetBatchingImpl .
264 2009-01-30 Ankit Jain <jankit@novell.com>
266 * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
269 2009-01-29 Ankit Jain <jankit@novell.com>
271 * BuildItem.cs (child_items): Change type from BuildItemGroup to
273 (HasParent): Rename to ..
274 (HasParentItem): .. this.
275 (ParentItemGroup): Add setter.
277 * BuildItemGroup.cs (.ctor): Add overload with @project param.
279 (AddItem): Correctly set the ParentItemGroup for new build items.
280 (ParentProject): Add setter.
281 * Project.cs: Set the project for new BuildItemGroup instances.
282 * TaskEngine.cs (PublishItemGroup): Likewise.
284 2009-01-06 Ankit Jain <jankit@novell.com>
286 * Project.cs (Build): Honor InitialTargets list.
288 2009-01-06 Ankit Jain <jankit@novell.com>
290 * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
291 the property type also.
292 * MSBuild.cs (Execute): Parse 'Properties' task param to set global
295 2009-01-06 Ankit Jain <jankit@novell.com>
297 * Project.cs (Build): Correctly handle null targetNames argument.
299 2009-01-06 Ankit Jain <jankit@novell.com>
301 * Engine.cs (LogProjectStarted): Add a null check.
303 2009-01-01 Ankit Jain <jankit@novell.com>
305 * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
306 * ChangeType (ToBuildItemGroup): Add 'split' param.
308 * Expression.cs (Parse): Add a new overload with a 'split' param.
309 * ExpressionCollection.cs (Add): Add new overload for IReference,
310 remove the ones for Item/Metadata/PropertyReference.
311 (ConvertToArray): Implement correctly.
312 (ConvertToString): Track api changes.
313 (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
314 (ConvertToITaskItemArray): Implement support for concat'ing expressions.
315 (AddItemsToArray): New.
316 (ConvertToITaskItemArrayFromString): Refactor a bit.
317 (ThrowCantConcatError): New.
318 * ItemReference.cs: Update.
319 * MetadataReference.cs: Update.
320 * PropertyReference.cs (ConvertToITaskItemArray): Implement.
322 * BuildPropertyGroup.cs: Track api changes.
323 * TaskEngine.cs (PublishOutput): Improve exception message.
324 * Project.cs (DoLoad): Improve exception message. Add a null check.
326 2008-12-30 Ankit Jain <jankit@novell.com>
328 * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
329 metadata values for unqualified references.
330 (BuildItemGroupToITaskItemArray): Rename to ..
331 (BuildItemGroupToITaskItems): .. this.
334 2008-12-18 Ankit Jain <jankit@novell.com>
336 * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
338 2008-12-17 Ankit Jain <jankit@novell.com>
340 * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
341 only one instance of unique metadata value is required.
343 2008-11-22 Ankit Jain <jankit@novell.com>
345 * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
347 * MetadataReference.cs (ConvertToITaskItemArray): New.
348 * Project.cs (GetAllItemGroups): New.
350 2008-11-21 Ankit Jain <jankit@novell.com>
352 * BatchingImpl.cs: Add task batching implementation.
353 * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
354 * ExpressionCollection.cs (Count): New.
355 (ConvertToString): Handle MetadataReference.
356 * ItemReference.cs (ConvertToString):
357 (ConvertToITaskItemArray): Use the batching api.
359 * MetadataReference.cs (ConvertToString): New.
361 * Project.cs: Add api for accessing batched items and metadata.
362 * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
365 2008-10-01 Ankit Jain <jankit@novell.com>
367 * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
368 (BuildProjectFile): If filename is null (project.LoadXml) then use
370 * BuildTask.cs (InitializeTask): Track api change.
371 * Expression.cs (Parse): Skip empty entries in the expression.
373 2008-09-24 Ankit Jain <jankit@novell.com>
375 * Engine.cs: Add argument checks.
376 * Project.cs: Likewise.
378 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
380 * Project.cs (Build): Add outputs to targetOutputs.
382 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
384 * ExpressionCollection.cs (ConvertToArray): Simplify.
386 2007-03-05 Marek Sieradzki <marek.sieradzki@gmail.com>
388 * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
389 simplified. It still needs tests and refactoring.
391 2007-02-22 Marek Sieradzki <marek.sieradzki@gmail.com>
393 * BuildEngine.cs (BuildProjectFile): Don't crash on null
396 * Target.cs: Add Outputs property.
398 2007-02-20 Marek Sieradzki <marek.sieradzki@gmail.com>
400 * Target.cs (Build): Split to GetDependencies () and BuildDependencies
401 (). Support condition.
403 * BatchingImpl.cs (BatchBuildTask): Simplify.
405 2007-02-18 Marek Sieradzki <marek.sieradzki@gmail.com>
407 * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
410 * ConditionFunctionExpression.cs: Removed warnings.
412 * BuildTask.cs (Execute): Write exceptions to std err (they should be
413 logged but it's better than swallowing).
415 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
417 * ConditionTokenizer.cs: Add Putback ().
419 * ConditionParser.cs: Add parsing of functions.
421 * ConditionFunctionExpression.cs: Add.
423 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
425 * BuildPropertyGroup (SetProperty): Throw an exception when trying to
426 set property in persisted property group.
428 2007-01-29 Marek Sieradzki <marek.sieradzki@gmail.com>
430 * BuildTask.cs (Execute): Log errors that happen when invoking ITask
433 * ConsoleLogger.cs (TargetFinishedHandler)
434 (TaskFinishedHandler): Increment error count.
436 2007-01-28 Marek Sieradzki <marek.sieradzki@gmail.com>
438 * BuildItem.cs (RemoveMetadata): Remove from XML.
439 (SetMetadata): Trigger project reevaluation.
441 2007-01-26 Marek Sieradzki <marek.sieradzki@gmail.com>
443 * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
446 2007-01-23 Marek Sieradzki <marek.sieradzki@gmail.com>
448 * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
449 TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
450 BatchingImpl.cs, BuildProperty.cs: Track API changes.
452 * Expression.cs (Parse): Added allowItems parameter and made regexes
455 * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
456 will try to import a.ext when given a.EXT.
458 2007-01-21 Marek Sieradzki <marek.sieradzki@gmail.com>
460 * BuildItemGroup.cs: Store information saying what is the last item
461 group that contains build item name.
463 * Project.cs (Build): Pass empty array (build default targets).
465 2007-01-19 Marek Sieradzki <marek.sieradzki@gmail.com>
467 * Token.cs: Commented Transform and LiteralSubExpression and added
470 * ConditionParser.cs: Removed redundant casts, rewrote
471 ParseFactorExpression () and added parsing of '!'.
473 * ConditionTokenizer.cs: Always skip whitespaces when getting next
474 token (no IgnoreWhiteSpace property). Don't create a token from '->'.
475 Moved ReadChar () in front of all ifs.
477 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
479 * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
480 from XML. (not to escape items that have parents twice).
482 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
484 * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
485 (Project): Renamed to ParentProject.
487 * BuildItem.cs (ctor)
488 (CopyCustomMetadata): Add null check.
490 * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
491 (RemoveProperty): Added null check.
493 * TargetCollection.cs (RemoveTarget): Added null check.
495 * Engine.cs (UnloadProject): Added null check.
497 * GroupingCollection.cs (Remove): Check if removed group belongs to
500 * Project.cs (AddNewItem): Implemented.
501 (RemoveItem): Reorganized.
502 (SetProjectExtensions): Added null check.
504 2007-01-14 Marek Sieradzki <marek.sieradzki@gmail.com>
506 * BuildItemGroup.cs (Detach): Added.
508 (RemoveItemAt): Used Detach ().
510 * BuildItem.cs: Made FromXml and HasParent internal and added
511 ParentItem and ParentItemGroup properties (internal).
514 * GroupingCollection.cs (Remove): Used Detach ().
516 * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
518 (GetEvaluatedItemsByNameIgnoringCondition)
519 (GetEvaluatedItemsByName)
520 (GetEvaluatedProperty): Reevaluate if needed.
522 (RemoveAllItemGroups)
523 (RemoveAllPropertyGroups): Implemented.
524 (DoLoad): Added closing of TextReader.
526 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
528 * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
529 change but just mark that it needs it.
531 * Project.cs: Reevaluate when it needs reevaluation and one of
532 Evaluated* properties is used.
534 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
536 * Target.cs: Throw an exception when <OnError> is not last element in
539 * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
541 * TargetCollection.cs: If a target is already there replace it with
544 * BuildProperty.cs: Added XmlElement property.
546 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
548 * ImportCollection.cs: Don't add imports that are already added.
550 * BuildItemGroup.cs: MonoTODOs.
552 * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
553 condition can't be evaluated to bool.
555 * BuildPropertyGroup.cs (Evaluate): Simplify.
557 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
559 * BuildWhen.cs: Moved BindToXml () code to ctor.
561 * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
562 property needed for removing groups.
564 * Engine.cs: Added StartBuild () that logs build start when Build ()
567 * GroupingCollection.cs: Added Remove () for item and property groups.
569 * Project.cs (AddNewImport): Implemented.
570 (AddNewItemGroup): Implemented.
571 (AddNewPropertyGroup): Implemented.
572 (AddNewUsingTaskFromAssemblyFile): Implemented.
573 (AddNewUsingTaskFromAssemblyName): Implemented.
574 (RemoveItemGroup): Implemented.
575 (RemovePropertyGroup): Implemented.
577 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
579 * BuildItemGroup.cs (Clear): Remove from XML.
581 * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
582 to Project.EvaluatedProperties.
583 (Clear): Remove from XML.
585 2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
587 * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
590 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
592 * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
593 Add () calls when processing a project from Import and
594 evaluate_iterator for evaluation.
596 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
598 * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
599 and prepend relative directory of importing project to full path of
602 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
604 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
605 BuildItemGroupCollection.cs, Project.cs: Track API changes.
607 * GroupingCollection.cs: Now it needs Project reference so added it.
609 * BuildTask.cs: Formatting.
611 * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
613 * ConditionParser.cs (ParseAndEvaluate): Added.
615 * BuildItem.cs: Changed exception message.
617 2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
619 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
620 BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
621 GroupingCollection doesn't need Project reference.
623 * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
625 * BuildItemGroup.cs: Added new readOnly parameter to ctor.
626 (Project.EvaluatedItems is a read only item group.)
627 (ReplaceWith): Added.
629 * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
630 global property group causes reevaluation of its project.
632 * Project.cs: ProcessXml () is internal and can be "safely" invoked by
635 * OldExpression.cs: Removed.
637 * BuildProperty.cs (Evaluate): Simplified.
639 * ChangeType.cs (TemporaryTransform): Simplified.
641 * BuildItem.cs: There are now 3 types of build items: from XML, having
642 parent from XML, virtual. Added SplitParentItem ().
644 2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
646 * Utilities.cs: Added Unescape ().
648 * BuildItemGroup.cs, BuildItem.cs: Pass null project to
649 BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
650 groups (at the moment just unescape).
652 * Expression.cs (CopyToExpressionList): Unescape strings.
654 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
656 * Target.cs (ctor): Added ImportedProject argument and removed
658 (AddNewTask): Implemented.
660 * TargetCollection.cs (AddNewTarget): Implemented.
662 * Project.cs: Track API changes.
664 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
666 * Target.cs (Build): Don't throw anything in case of error, just
669 * BuildItemGroup.cs (set_Condition): Throw an exception if group is
672 * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
675 * BuildProperty.cs (ToString): Throw an exception if property is not
677 (op_Explicit): Added a null check.
679 * Engine.cs: Better error message.
681 * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
682 IndexOutOfRangeException.
684 * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
685 (MarkProjectAsDirty): Set time.
687 2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
689 * BuildItemGroup.cs (Clone): Throw exception.
691 * Project.cs (Load): Throw InvalidProjectFileException if anything
694 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
696 * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
697 and ConvertToITaskItemArray ().
699 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
701 * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
702 classes that were public in Beta 2 and aren't used.
704 * Expression.cs: Added replacement for parsing expressions char by
705 char. It uses regexes to find item/property/metadata references in
708 * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
709 Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
710 BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
712 * ConditionRelationalExpression.cs: Formatting.
714 * OldExpression.cs: Commented everything.
716 * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
717 parsing to Expression.
719 * BuildItem.cs: Check if project is from XML in set_Condition and
722 * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
725 * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
726 can evaluate expression in CanEvaluateToBool ().
728 2006-12-12 Marek Sieradzki <marek.sieradzki@gmail.com>
730 * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
731 which item group is imported.
733 * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
735 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
737 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
738 BuildItemGroupCollection.cs: Little changes related to
741 * ImportCollection.cs: Use GroupingCollection not an internal list.
743 * Import.cs (Evaluate): Split to functions and check if
744 EvaluatedProjectPath is empty.
746 * GroupingCollection.cs, Project.cs: Move evaluation to
747 GroupingCollection. Change algorithm to use 2 passes: first for property
748 groups and imports and second for item groups.
750 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
752 * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
753 BuildItemGroup> not IDictionary.
755 * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
756 evaluated to false because we want to add every item to
757 Project.EvaluatedItemsByNameIgnoringCondition.
759 * Project.cs (Build): Don't throw an exception just return false.
760 (GetEvaluatedProperty): Avoid NullReferenceException.
761 (SetProjectExtensions): Implemented.
763 2006-12-08 Marek Sieradzki <marek.sieradzki@gmail.com>
765 * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
767 * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
768 BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
769 Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
771 * ImportCollection.cs: Added a note.
773 2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
775 * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
777 * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
778 (UsingTask[] array, int index)
780 * TaskEngine.cs: Reformatted PublishOutput () and added copying of
781 items to Project.EvaluatedItems in PublishItemGroup ();
783 * BuildItemGroup.cs: Added [MonoTODO].
785 * UsingTask.cs: Used expression for AssemblyFile to get around
786 problems with '\' and '/'.
788 * BuildItem.cs (ctor): Added null checks.
789 (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
790 (SetMetadata): Don't escape evaluatedMetadata and escape
791 unevaluatedMetadata only when treatPropertyValueAsLiteral.
793 * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
794 FromXml () instead of null checks.
795 (SetProperty): Escape propertyValue when it is literal.
797 * BuildProperty.cs: Changed exception message.
799 * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
801 (GetProjectExtensions): Implemented.
803 2006-12-05 Marek Sieradzki <marek.sieradzki@gmail.com>
805 * BuildTask.cs: Remove [MonoTODO], add exception throwing in
806 GetParameterValue (), use expressions in ContinueOnError.
807 * ConditionFactorException.cs: Throw InvalidProjectFileException ()
808 instead of InvalidOperationException ().
809 * ImportCollection.cs: Implement CopyTo ().
810 * Target.cs: Remove redundant variables (XmlAttributes), return
811 String.Empty in DependsOnTargets, add a null check in RemoveTask ().
812 * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
813 * Import.cs: Throw an exception when file does not exist.
814 * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
815 * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
816 need to treat item as a token probably
818 2006-12-04 Marek Sieradzki <marek.sieradzki@gmail.com>
820 * Import.cs: Check for project.FullFileName (Path.DirectoryName would
822 * BuildItemGroupCollection.cs: Changed exception types.
824 2006-10-14 Marek Sieradzki <marek.sieradzki@gmail.com>
826 * Engine.cs: Removed redundant cast.
828 * UsingTaskCollection.cs:
832 * TargetCollection.cs: Comment unused variable.
833 * ConditionTokenizer.cs: Simplified checking if current token is a
835 * Target.cs: Removed old code.
837 2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
839 * Target.cs: Changed "" to String.Empty.
840 * TaskEngine.cs: Don't try to convert a parameter to specific type if
841 string was evaluated to String.Empty.
842 * InternalLoggerException.cs:
843 * InvalidProjectFileException.cs: Added LinkDemand before
845 * ConsoleLogger.cs: Changed "" to String.Empty.
846 * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
847 with change to generics).
848 * Project.cs: Made Build () throw more meaningful exception.
850 2006-10-06 Marek Sieradzki <marek.sieradzki@gmail.com>
852 * Target.cs: Reformatted.
853 * TaskEngine.cs: Removed redundant code.
854 * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
855 * Engine.cs: Made BuildProjectFile () load project file if it's not
858 2006-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
860 * ConditionRelationalExpression.cs: Change comparers to case
862 * ImportCollection.cs: Add NotImplementedExceptions.
863 * BuildPropertyGroup.cs: Reformatted a bit.
864 * BuildProperty.cs: The same.
865 * Project.cs: Moved evaluation of imports before evaluation of
866 properties. This may "work" until importing projects is redesigned but
867 probably isn't correct.
869 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
871 * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
873 * BuildItemGroup.cs: Change return to continue.
875 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
877 * ConditionParser.cs: Copyright note.
878 * ExpressionCollection.cs: Fixed arrays passing.
880 2006-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
882 * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
883 Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
884 BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
885 TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
887 2006-06-25 Marek Sieradzki <marek.sieradzki@gmail.com>
889 * Token.cs: Changed names: removed "than".
890 * ConditionRelationalExpression.cs: Added.
891 * ConditionFactorExpression.cs: Added.
892 * BuildItemGroup.cs: Changed Condition property return value to return
893 String.Empty instead of null.
894 * ConditionParser.cs: Added support for parsing relational expressions
896 * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
897 abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
898 and CanEvaluateToBool (), CanEvaluateToNumber () and
899 CanEvaluateToString ().
900 * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
901 appropriately to ConditionExpression base class.
902 * ConditionTokenizer.cs: Added null check and changed names in enums:
904 * ConditionNotExpression.cs: Added.
905 * BatchingImpl.cs: Changed to use BoolEvaluate ().
906 * Project.cs: Added checks for condition.
908 2006-06-22 Marek Sieradzki <marek.sieradzki@gmail.com>
910 * ConditionalTokenizer.cs, ConditionalExpression.cs,
911 ConditionalParser.cs: Changed name,
913 * ConditionExpression.cs: Added Evaluate ().
914 * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
915 * BatchingImpl.cs: Added check if task should be executed.
917 2006-06-14 Marek Sieradzki <marek.sieradzki@gmail.com>
919 * UsingTask.cs: Changed properties to return null on empty attribute.
920 * UsingTaskCollection.cs: Added object to SyncRoot.
921 * BuildPropertyGroup.cs: Added NotImplementedException throwing.
923 2006-06-02 Marek Sieradzki <marek.sieradzki@gmail.com>
925 * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
926 BuildPropertyGroupCollection.cs: Fixed to match the tests.
928 2006-05-27 Marek Sieradzki <marek.sieradzki@gmail.com>
930 * Utilities.cs: Implemented Escape ().
931 * BuildItem.cs: Added null checks.
932 * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
933 * Project.cs: Commented out redundant Evaluate ().
934 * BuildChoose.cs: Minor changes.
936 2006-05-22 Marek Sieradzki <marek.sieradzki@gmail.com>
938 * Token: Added new few missing tokens.
939 * Target.cs, Project.cs: Patch from Matthew Metnesky.
940 * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
941 ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
942 ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
944 Removed literal expression parsing based on tokenizer and
945 parser. It needs to be done by regex.
947 Moved tokenizer to ConditionalTokenizer.cs.
949 2006-05-05 Marek Sieradzki <marek.sieradzki@gmail.com>
951 * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
952 ItemReference.cs, PropertyReference.cs: Changed name of *Reference
953 methods converting reference to string from ToString () to
954 ConvertToString () to avoid mistakes like using ToString () provided
957 2006-05-03 Marek Sieradzki <marek.sieradzki@gmail.com>
959 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
960 Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
961 PropertyReference.cs, BuildProperty.cs: Changed Expression to
962 OldExpression and changed To* functions to one ConvertTo ().
963 * TaskEngine.cs: Fixed PublishOutput ().
964 * OldExpression.cs: Added. It will be temporarily used before
965 LiteralExpression will be written using Tokenizer.
966 * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
967 ExpressionParseException.cs, LiteralExpression.cs: Added.
969 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
971 * ImportedProject.cs: Removed warning.
972 * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
975 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
977 * Project.cs: Removed unnecessary variable.
978 * Engine.cs: Added fixme.
980 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
982 * BuildItem.cs: Moved checking if metadata name is reserved to internal
983 class (Mono.XBuild.Utilities.ReservedNameUtils).
985 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
987 * BuildTask.cs: Removed unnecessary variable.
988 * Engine.cs: Added logging of the build start.
989 * Project.cs: Removed unnecessary variable.
991 2006-04-07 Marek Sieradzki <marek.sieradzki@gmail.com>
993 * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
995 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
997 * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
999 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1001 * BuildItem.cs: Fix typo?
1003 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1005 * InternalLoggerException.cs, InvalidProjectFileException.cs,
1006 Engine.cs, Project.cs: Coding style fixes.
1008 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1010 * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
1012 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1014 * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
1015 to pass tests. Wrote serialization constructor.
1016 * Engine.cs, Project.cs: Global engine and project unloading, test and
1019 2006-03-28 Marek Sieradzki <marek.sieradzki@gmail.com>
1021 * UsingTask.cs: Formatting changes.
1023 2006-03-27 Crestez Leonard <cdleonard@gmail.com>
1025 * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
1026 to lists instead of hashtables.
1027 * Import.cs: Cleaned up, moved importing from Project.cs
1028 * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
1029 * Engine.cs: Cleaned up properties.
1030 * Project.cs: Moved importing to Import.cs, cleaned up properties,
1031 Separated evaluation and loading.
1033 2006-03-21 Crestez Leonard <cdleonard@gmail.com>
1035 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
1036 BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
1037 Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
1038 binding and evaluation, merge xml binding in constructors.
1039 * DirectoryScanner.cs: Includes CAN be empty.
1040 * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
1041 * ConsoleLogger.cs: Fix compilation warning.
1043 2006-03-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1045 * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
1047 2006-03-18 Marek Sieradzki <marek.sieradzki@gmail.com>
1049 * Engine.cs: API cleanup.
1051 2006-03-18 Crestez Leonard <cdleonard@gmail.com>
1053 * Project.cs: Cleaned up add.
1054 * Expression.cs: Hacked to transform \ and / to path separators.
1055 * BuildPropertyGroup.cs: Small cleanup.
1056 * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
1059 2006-03-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1061 * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
1062 * BuildItem.cs: Updated for new API and fixed crashing on non-existent
1064 * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
1065 BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
1066 Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
1068 * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
1069 * TaskElement.cs: Temporarily removed.
1070 * Xml.cs: Changed to static.
1072 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1074 * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
1075 IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
1076 ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
1077 IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
1078 ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
1079 IBuildPropertyGroupCollection.cs: Removed.
1081 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1083 * BuildItem.cs: Removed IBuildItem references.
1084 * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
1085 IBuildItemGroup references. Changed Evaluate to internal.
1086 * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
1087 reference and hidden constructors.
1088 * BuildProperty.cs: Removed IBuildProperty reference.
1089 * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
1090 IBuildPropertyGroup references. Changed Evaluate to internal.
1091 * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
1092 reference and hidden constructors.
1093 * ConsoleLogger.cs: Updated names of event handlers.
1094 * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
1095 Escape. Added UnloadAllProjects () and UnloadProject ().
1096 * FileLogger.cs: Removed ApplyParameter ().
1097 * GroupingCollection.cs: Hidden.
1098 * InvalidProjectFileException.cs: Removed HasBeenLogged property.
1099 * ItemPropertyGroupingBase.cs: Commented.
1100 * ProcessingPass.cs: Hidden.
1101 * Project.cs: Removed IProject reference. Changed CurrentEncoding to
1103 * Target.cs: Removed ITarget reference.
1104 * TargetCollection.cs: Removed ITargetCollection reference.
1105 * TaskElement.cs: Removed ITaskElement reference.
1106 * TaskEngineAssemblyResolver.cs: Hidden.
1107 * Utilities.cs: Made static class, removed CheckPath (),
1108 ValidateCulture (), GetSupportedCultures () and added Escape ().
1110 2006-02-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1112 * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
1115 2005-09-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1117 * Project.cs: Added MonoTODO attributes.
1118 * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
1119 ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
1120 IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
1121 BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
1122 SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
1123 BuildItemGroup.cs, InvalidProjectFileException.cs,
1124 BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
1125 Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
1126 PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
1127 ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
1128 IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
1129 IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
1130 ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
1131 ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
1132 IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
1133 IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
1134 BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
1135 ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
1137 2005-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
1139 * TaskDatabase.cs: Change Shared to Framework.
1140 * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
1141 CaseInsensitiveHashCodeProvider
1143 2005-09-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1145 * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
1146 * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
1149 2005-09-09 Marek Sieradzki <marek.sieradzki@gmail.com>
1151 * InternalLoggerException.cs: Changed protected fields to private.
1153 2005-09-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1155 * Engine.cs: Added check for globalProperties.
1156 * Project.cs: Added using path from importedProject.FullFileName when
1157 adding UsingTask elements.
1159 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1161 * TaskElement.cs: Changed ReflectedType to PropertyType.
1162 * ChangeType.cs (TransformToString): Changed to pass proper Type to
1165 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1167 * BuildPropertyGroup.cs: Added check for PropertyType when adding a
1169 * BuildProperty.cs: Organized PropertyType enum.
1170 * Engine.cs: Added setting CommandLine PropertyType of global
1173 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1175 * InvalidProjectFileException.cs: Changed Message property.
1176 * ChangeType.cs (TransformToString): Added separator between items.
1177 * TaskEngineAssemblyResolver.cs: Formatting.
1179 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1181 * DirectoryScanner.cs: Added.
1182 * BuildItem.cs: Moved file scanning code to DirectoryScanner.
1183 * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
1184 * Project.cs: Removed Evalute* ().
1186 2005-08-30 Marek Sieradzki <marek.sieradzki@gmail.com>
1188 * Target.cs: Formatting.
1189 * Expression.cs: Added check if array == null.
1190 * BuildItem.cs: Removed 'break' to remove warnings.
1191 * ConsoleLogger.cs: Formatting.
1192 * Engine.cs: Added handling of default target(s).
1193 * Project.cs: Added handling of default target(s).
1195 2005-08-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1197 * TaskElement.cs: Added check for parameters.
1198 * Target.cs: Added logging of target skipping.
1199 * Expression.cs: Changed returning object[] to string[], bool[]... in
1201 * ItemReference.cs: Fixed for item references without custom
1203 * BatchingImpl.cs: Added real inputs/outputs checking.
1204 * Engine.cs: Moved global properties setting.
1205 * Project.cs: Moved global properties setting.
1207 2005-08-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1209 * Target.cs: Added checks for target existence.
1210 * BuildItemGroup.cs: Changed to use transforms.
1211 * MetadataReference.cs: Wrote real implementation.
1212 * ItemReference.cs: Rewritten to use transforms.
1213 * BuildItem.cs: Changes for transforms and metadata.
1214 * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
1216 * Project.cs: Fixed project importing.
1217 * ImportedProject.cs: Changed to throw exceptions instead of returning
1220 2005-08-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1222 * Engine.cs: Removed FIXME.
1223 * Project.cs: Splitted ProcessElements and added project importing.
1224 * ImportedProject.cs: Rewritten.
1226 2005-08-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1228 * TaskElement.cs: Added getting of objects of every type.
1229 * BuildItemGroup.cs: Added ToITaskItemArray ().
1230 * Expression.cs: Implemented part that is not using metadata.
1231 * ItemReference.cs: Implemented parsing item references. Need to fix
1233 * BuildItem.cs: Fixed ToITaskItem ().
1234 * PropertyReference.cs: Implemented parsing property references. This
1235 also needs validity checking.
1237 2005-08-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1239 * TaskElement.cs: Added Output element handling.
1240 * Target.cs: Cleaned up.
1241 * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1242 * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1243 ItemReference.cs, ChangeType.cs: Added.
1244 * BuildItem.cs: Added creating BuildItem from TaskItem.
1245 * BuildPropertyGroup.cs: Small changes.
1246 * BatchingImpl.cs: Fixed to return real task execution result.
1247 * BuildProperty.cs: Fixed FinalValue property.
1248 * Engine.cs: Reformatted logging.
1249 * Project.cs: Added check to EvaluateProperty.
1251 2005-08-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1253 * TaskElement.cs: Added part of execution engine.
1254 * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1255 * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1256 * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1257 * BuildItem.cs: Added handling of built-in metadata and referencing
1258 Items by name not FullName.
1259 * BatchingImpl.cs: Added temporary task "batching".
1260 * ConsoleLogger.cs: Added temporary workaround to not show sender.
1261 * Project.cs: Added Evaluate. It will be moved to separate class.
1263 2005-08-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1265 * EventSource.cs, Engine.cs: Added CriticalEvents.
1266 * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1267 Project.cs: Added some support for items.
1268 * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1270 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1272 * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1275 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1277 * BatchingImpl.cs: Added.
1278 * BuildWhen.cs, BuildEngine.cs, Target.cs,
1279 BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1280 BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1281 TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1282 GroupingCollection.cs: Updated.
1284 2005-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1286 * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1287 BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1288 BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1289 BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1290 EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1291 GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1292 InternalLoggerException.cs, InvalidProjectFileException.cs,
1293 ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1294 ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1295 TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1296 TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1297 Initial check-in of implementations.
1299 2005-07-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1301 * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1302 IBuildItemGroupCollection.cs, IBuildProperty.cs,
1303 IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1304 ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1305 IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1306 IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1307 Initial check-in of interfaces and a syntax file, real classes are
1308 changing a lot so I'll wait a moment with checking them in.