1 2009-02-12 Jonathan Chambers <joncham@gmail.com>
3 * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
4 no XmlElement.InnerText. This allows properties to be additional
7 2009-02-01 Ankit Jain <jankit@novell.com>
9 * BuildEngine.cs (BuildProjectFile): Use
10 BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
11 * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
12 built. Move logging of project start/finish to ..
13 * Project.cs: .. here. Build a target only if hasn't been built already.
14 Keep track of target outputs, and return those even if an already built
15 target has been invoked again.
16 Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
18 2009-01-31 Ankit Jain <jankit@novell.com>
20 * BatchingImpl.cs: Split into ..
21 * BatchingImplBase.cs: .. this,
22 * TaskBatchingImpl.cs: .. this ..
23 * TargetBatchingImpl.cs: .. and this. Implement target batching here.
25 * Target.cs (DoBuild): Use TargetBatchingImpl for building.
26 (Log*): Move to TargetBatchingImpl .
30 2009-01-30 Ankit Jain <jankit@novell.com>
32 * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
35 2009-01-29 Ankit Jain <jankit@novell.com>
37 * BuildItem.cs (child_items): Change type from BuildItemGroup to
39 (HasParent): Rename to ..
40 (HasParentItem): .. this.
41 (ParentItemGroup): Add setter.
43 * BuildItemGroup.cs (.ctor): Add overload with @project param.
45 (AddItem): Correctly set the ParentItemGroup for new build items.
46 (ParentProject): Add setter.
47 * Project.cs: Set the project for new BuildItemGroup instances.
48 * TaskEngine.cs (PublishItemGroup): Likewise.
50 2009-01-06 Ankit Jain <jankit@novell.com>
52 * Project.cs (Build): Honor InitialTargets list.
54 2009-01-06 Ankit Jain <jankit@novell.com>
56 * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
57 the property type also.
58 * MSBuild.cs (Execute): Parse 'Properties' task param to set global
61 2009-01-06 Ankit Jain <jankit@novell.com>
63 * Project.cs (Build): Correctly handle null targetNames argument.
65 2009-01-06 Ankit Jain <jankit@novell.com>
67 * Engine.cs (LogProjectStarted): Add a null check.
69 2009-01-01 Ankit Jain <jankit@novell.com>
71 * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
72 * ChangeType (ToBuildItemGroup): Add 'split' param.
74 * Expression.cs (Parse): Add a new overload with a 'split' param.
75 * ExpressionCollection.cs (Add): Add new overload for IReference,
76 remove the ones for Item/Metadata/PropertyReference.
77 (ConvertToArray): Implement correctly.
78 (ConvertToString): Track api changes.
79 (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
80 (ConvertToITaskItemArray): Implement support for concat'ing expressions.
81 (AddItemsToArray): New.
82 (ConvertToITaskItemArrayFromString): Refactor a bit.
83 (ThrowCantConcatError): New.
84 * ItemReference.cs: Update.
85 * MetadataReference.cs: Update.
86 * PropertyReference.cs (ConvertToITaskItemArray): Implement.
88 * BuildPropertyGroup.cs: Track api changes.
89 * TaskEngine.cs (PublishOutput): Improve exception message.
90 * Project.cs (DoLoad): Improve exception message. Add a null check.
92 2008-12-30 Ankit Jain <jankit@novell.com>
94 * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
95 metadata values for unqualified references.
96 (BuildItemGroupToITaskItemArray): Rename to ..
97 (BuildItemGroupToITaskItems): .. this.
100 2008-12-18 Ankit Jain <jankit@novell.com>
102 * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
104 2008-12-17 Ankit Jain <jankit@novell.com>
106 * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
107 only one instance of unique metadata value is required.
109 2008-11-22 Ankit Jain <jankit@novell.com>
111 * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
113 * MetadataReference.cs (ConvertToITaskItemArray): New.
114 * Project.cs (GetAllItemGroups): New.
116 2008-11-21 Ankit Jain <jankit@novell.com>
118 * BatchingImpl.cs: Add task batching implementation.
119 * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
120 * ExpressionCollection.cs (Count): New.
121 (ConvertToString): Handle MetadataReference.
122 * ItemReference.cs (ConvertToString):
123 (ConvertToITaskItemArray): Use the batching api.
125 * MetadataReference.cs (ConvertToString): New.
127 * Project.cs: Add api for accessing batched items and metadata.
128 * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
131 2008-10-01 Ankit Jain <jankit@novell.com>
133 * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
134 (BuildProjectFile): If filename is null (project.LoadXml) then use
136 * BuildTask.cs (InitializeTask): Track api change.
137 * Expression.cs (Parse): Skip empty entries in the expression.
139 2008-09-24 Ankit Jain <jankit@novell.com>
141 * Engine.cs: Add argument checks.
142 * Project.cs: Likewise.
144 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
146 * Project.cs (Build): Add outputs to targetOutputs.
148 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
150 * ExpressionCollection.cs (ConvertToArray): Simplify.
152 2007-03-05 Marek Sieradzki <marek.sieradzki@gmail.com>
154 * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
155 simplified. It still needs tests and refactoring.
157 2007-02-22 Marek Sieradzki <marek.sieradzki@gmail.com>
159 * BuildEngine.cs (BuildProjectFile): Don't crash on null
162 * Target.cs: Add Outputs property.
164 2007-02-20 Marek Sieradzki <marek.sieradzki@gmail.com>
166 * Target.cs (Build): Split to GetDependencies () and BuildDependencies
167 (). Support condition.
169 * BatchingImpl.cs (BatchBuildTask): Simplify.
171 2007-02-18 Marek Sieradzki <marek.sieradzki@gmail.com>
173 * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
176 * ConditionFunctionExpression.cs: Removed warnings.
178 * BuildTask.cs (Execute): Write exceptions to std err (they should be
179 logged but it's better than swallowing).
181 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
183 * ConditionTokenizer.cs: Add Putback ().
185 * ConditionParser.cs: Add parsing of functions.
187 * ConditionFunctionExpression.cs: Add.
189 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
191 * BuildPropertyGroup (SetProperty): Throw an exception when trying to
192 set property in persisted property group.
194 2007-01-29 Marek Sieradzki <marek.sieradzki@gmail.com>
196 * BuildTask.cs (Execute): Log errors that happen when invoking ITask
199 * ConsoleLogger.cs (TargetFinishedHandler)
200 (TaskFinishedHandler): Increment error count.
202 2007-01-28 Marek Sieradzki <marek.sieradzki@gmail.com>
204 * BuildItem.cs (RemoveMetadata): Remove from XML.
205 (SetMetadata): Trigger project reevaluation.
207 2007-01-26 Marek Sieradzki <marek.sieradzki@gmail.com>
209 * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
212 2007-01-23 Marek Sieradzki <marek.sieradzki@gmail.com>
214 * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
215 TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
216 BatchingImpl.cs, BuildProperty.cs: Track API changes.
218 * Expression.cs (Parse): Added allowItems parameter and made regexes
221 * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
222 will try to import a.ext when given a.EXT.
224 2007-01-21 Marek Sieradzki <marek.sieradzki@gmail.com>
226 * BuildItemGroup.cs: Store information saying what is the last item
227 group that contains build item name.
229 * Project.cs (Build): Pass empty array (build default targets).
231 2007-01-19 Marek Sieradzki <marek.sieradzki@gmail.com>
233 * Token.cs: Commented Transform and LiteralSubExpression and added
236 * ConditionParser.cs: Removed redundant casts, rewrote
237 ParseFactorExpression () and added parsing of '!'.
239 * ConditionTokenizer.cs: Always skip whitespaces when getting next
240 token (no IgnoreWhiteSpace property). Don't create a token from '->'.
241 Moved ReadChar () in front of all ifs.
243 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
245 * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
246 from XML. (not to escape items that have parents twice).
248 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
250 * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
251 (Project): Renamed to ParentProject.
253 * BuildItem.cs (ctor)
254 (CopyCustomMetadata): Add null check.
256 * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
257 (RemoveProperty): Added null check.
259 * TargetCollection.cs (RemoveTarget): Added null check.
261 * Engine.cs (UnloadProject): Added null check.
263 * GroupingCollection.cs (Remove): Check if removed group belongs to
266 * Project.cs (AddNewItem): Implemented.
267 (RemoveItem): Reorganized.
268 (SetProjectExtensions): Added null check.
270 2007-01-14 Marek Sieradzki <marek.sieradzki@gmail.com>
272 * BuildItemGroup.cs (Detach): Added.
274 (RemoveItemAt): Used Detach ().
276 * BuildItem.cs: Made FromXml and HasParent internal and added
277 ParentItem and ParentItemGroup properties (internal).
280 * GroupingCollection.cs (Remove): Used Detach ().
282 * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
284 (GetEvaluatedItemsByNameIgnoringCondition)
285 (GetEvaluatedItemsByName)
286 (GetEvaluatedProperty): Reevaluate if needed.
288 (RemoveAllItemGroups)
289 (RemoveAllPropertyGroups): Implemented.
290 (DoLoad): Added closing of TextReader.
292 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
294 * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
295 change but just mark that it needs it.
297 * Project.cs: Reevaluate when it needs reevaluation and one of
298 Evaluated* properties is used.
300 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
302 * Target.cs: Throw an exception when <OnError> is not last element in
305 * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
307 * TargetCollection.cs: If a target is already there replace it with
310 * BuildProperty.cs: Added XmlElement property.
312 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
314 * ImportCollection.cs: Don't add imports that are already added.
316 * BuildItemGroup.cs: MonoTODOs.
318 * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
319 condition can't be evaluated to bool.
321 * BuildPropertyGroup.cs (Evaluate): Simplify.
323 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
325 * BuildWhen.cs: Moved BindToXml () code to ctor.
327 * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
328 property needed for removing groups.
330 * Engine.cs: Added StartBuild () that logs build start when Build ()
333 * GroupingCollection.cs: Added Remove () for item and property groups.
335 * Project.cs (AddNewImport): Implemented.
336 (AddNewItemGroup): Implemented.
337 (AddNewPropertyGroup): Implemented.
338 (AddNewUsingTaskFromAssemblyFile): Implemented.
339 (AddNewUsingTaskFromAssemblyName): Implemented.
340 (RemoveItemGroup): Implemented.
341 (RemovePropertyGroup): Implemented.
343 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
345 * BuildItemGroup.cs (Clear): Remove from XML.
347 * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
348 to Project.EvaluatedProperties.
349 (Clear): Remove from XML.
351 2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
353 * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
356 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
358 * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
359 Add () calls when processing a project from Import and
360 evaluate_iterator for evaluation.
362 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
364 * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
365 and prepend relative directory of importing project to full path of
368 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
370 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
371 BuildItemGroupCollection.cs, Project.cs: Track API changes.
373 * GroupingCollection.cs: Now it needs Project reference so added it.
375 * BuildTask.cs: Formatting.
377 * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
379 * ConditionParser.cs (ParseAndEvaluate): Added.
381 * BuildItem.cs: Changed exception message.
383 2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
385 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
386 BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
387 GroupingCollection doesn't need Project reference.
389 * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
391 * BuildItemGroup.cs: Added new readOnly parameter to ctor.
392 (Project.EvaluatedItems is a read only item group.)
393 (ReplaceWith): Added.
395 * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
396 global property group causes reevaluation of its project.
398 * Project.cs: ProcessXml () is internal and can be "safely" invoked by
401 * OldExpression.cs: Removed.
403 * BuildProperty.cs (Evaluate): Simplified.
405 * ChangeType.cs (TemporaryTransform): Simplified.
407 * BuildItem.cs: There are now 3 types of build items: from XML, having
408 parent from XML, virtual. Added SplitParentItem ().
410 2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
412 * Utilities.cs: Added Unescape ().
414 * BuildItemGroup.cs, BuildItem.cs: Pass null project to
415 BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
416 groups (at the moment just unescape).
418 * Expression.cs (CopyToExpressionList): Unescape strings.
420 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
422 * Target.cs (ctor): Added ImportedProject argument and removed
424 (AddNewTask): Implemented.
426 * TargetCollection.cs (AddNewTarget): Implemented.
428 * Project.cs: Track API changes.
430 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
432 * Target.cs (Build): Don't throw anything in case of error, just
435 * BuildItemGroup.cs (set_Condition): Throw an exception if group is
438 * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
441 * BuildProperty.cs (ToString): Throw an exception if property is not
443 (op_Explicit): Added a null check.
445 * Engine.cs: Better error message.
447 * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
448 IndexOutOfRangeException.
450 * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
451 (MarkProjectAsDirty): Set time.
453 2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
455 * BuildItemGroup.cs (Clone): Throw exception.
457 * Project.cs (Load): Throw InvalidProjectFileException if anything
460 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
462 * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
463 and ConvertToITaskItemArray ().
465 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
467 * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
468 classes that were public in Beta 2 and aren't used.
470 * Expression.cs: Added replacement for parsing expressions char by
471 char. It uses regexes to find item/property/metadata references in
474 * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
475 Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
476 BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
478 * ConditionRelationalExpression.cs: Formatting.
480 * OldExpression.cs: Commented everything.
482 * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
483 parsing to Expression.
485 * BuildItem.cs: Check if project is from XML in set_Condition and
488 * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
491 * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
492 can evaluate expression in CanEvaluateToBool ().
494 2006-12-12 Marek Sieradzki <marek.sieradzki@gmail.com>
496 * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
497 which item group is imported.
499 * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
501 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
503 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
504 BuildItemGroupCollection.cs: Little changes related to
507 * ImportCollection.cs: Use GroupingCollection not an internal list.
509 * Import.cs (Evaluate): Split to functions and check if
510 EvaluatedProjectPath is empty.
512 * GroupingCollection.cs, Project.cs: Move evaluation to
513 GroupingCollection. Change algorithm to use 2 passes: first for property
514 groups and imports and second for item groups.
516 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
518 * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
519 BuildItemGroup> not IDictionary.
521 * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
522 evaluated to false because we want to add every item to
523 Project.EvaluatedItemsByNameIgnoringCondition.
525 * Project.cs (Build): Don't throw an exception just return false.
526 (GetEvaluatedProperty): Avoid NullReferenceException.
527 (SetProjectExtensions): Implemented.
529 2006-12-08 Marek Sieradzki <marek.sieradzki@gmail.com>
531 * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
533 * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
534 BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
535 Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
537 * ImportCollection.cs: Added a note.
539 2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
541 * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
543 * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
544 (UsingTask[] array, int index)
546 * TaskEngine.cs: Reformatted PublishOutput () and added copying of
547 items to Project.EvaluatedItems in PublishItemGroup ();
549 * BuildItemGroup.cs: Added [MonoTODO].
551 * UsingTask.cs: Used expression for AssemblyFile to get around
552 problems with '\' and '/'.
554 * BuildItem.cs (ctor): Added null checks.
555 (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
556 (SetMetadata): Don't escape evaluatedMetadata and escape
557 unevaluatedMetadata only when treatPropertyValueAsLiteral.
559 * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
560 FromXml () instead of null checks.
561 (SetProperty): Escape propertyValue when it is literal.
563 * BuildProperty.cs: Changed exception message.
565 * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
567 (GetProjectExtensions): Implemented.
569 2006-12-05 Marek Sieradzki <marek.sieradzki@gmail.com>
571 * BuildTask.cs: Remove [MonoTODO], add exception throwing in
572 GetParameterValue (), use expressions in ContinueOnError.
573 * ConditionFactorException.cs: Throw InvalidProjectFileException ()
574 instead of InvalidOperationException ().
575 * ImportCollection.cs: Implement CopyTo ().
576 * Target.cs: Remove redundant variables (XmlAttributes), return
577 String.Empty in DependsOnTargets, add a null check in RemoveTask ().
578 * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
579 * Import.cs: Throw an exception when file does not exist.
580 * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
581 * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
582 need to treat item as a token probably
584 2006-12-04 Marek Sieradzki <marek.sieradzki@gmail.com>
586 * Import.cs: Check for project.FullFileName (Path.DirectoryName would
588 * BuildItemGroupCollection.cs: Changed exception types.
590 2006-10-14 Marek Sieradzki <marek.sieradzki@gmail.com>
592 * Engine.cs: Removed redundant cast.
594 * UsingTaskCollection.cs:
598 * TargetCollection.cs: Comment unused variable.
599 * ConditionTokenizer.cs: Simplified checking if current token is a
601 * Target.cs: Removed old code.
603 2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
605 * Target.cs: Changed "" to String.Empty.
606 * TaskEngine.cs: Don't try to convert a parameter to specific type if
607 string was evaluated to String.Empty.
608 * InternalLoggerException.cs:
609 * InvalidProjectFileException.cs: Added LinkDemand before
611 * ConsoleLogger.cs: Changed "" to String.Empty.
612 * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
613 with change to generics).
614 * Project.cs: Made Build () throw more meaningful exception.
616 2006-10-06 Marek Sieradzki <marek.sieradzki@gmail.com>
618 * Target.cs: Reformatted.
619 * TaskEngine.cs: Removed redundant code.
620 * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
621 * Engine.cs: Made BuildProjectFile () load project file if it's not
624 2006-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
626 * ConditionRelationalExpression.cs: Change comparers to case
628 * ImportCollection.cs: Add NotImplementedExceptions.
629 * BuildPropertyGroup.cs: Reformatted a bit.
630 * BuildProperty.cs: The same.
631 * Project.cs: Moved evaluation of imports before evaluation of
632 properties. This may "work" until importing projects is redesigned but
633 probably isn't correct.
635 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
637 * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
639 * BuildItemGroup.cs: Change return to continue.
641 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
643 * ConditionParser.cs: Copyright note.
644 * ExpressionCollection.cs: Fixed arrays passing.
646 2006-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
648 * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
649 Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
650 BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
651 TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
653 2006-06-25 Marek Sieradzki <marek.sieradzki@gmail.com>
655 * Token.cs: Changed names: removed "than".
656 * ConditionRelationalExpression.cs: Added.
657 * ConditionFactorExpression.cs: Added.
658 * BuildItemGroup.cs: Changed Condition property return value to return
659 String.Empty instead of null.
660 * ConditionParser.cs: Added support for parsing relational expressions
662 * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
663 abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
664 and CanEvaluateToBool (), CanEvaluateToNumber () and
665 CanEvaluateToString ().
666 * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
667 appropriately to ConditionExpression base class.
668 * ConditionTokenizer.cs: Added null check and changed names in enums:
670 * ConditionNotExpression.cs: Added.
671 * BatchingImpl.cs: Changed to use BoolEvaluate ().
672 * Project.cs: Added checks for condition.
674 2006-06-22 Marek Sieradzki <marek.sieradzki@gmail.com>
676 * ConditionalTokenizer.cs, ConditionalExpression.cs,
677 ConditionalParser.cs: Changed name,
679 * ConditionExpression.cs: Added Evaluate ().
680 * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
681 * BatchingImpl.cs: Added check if task should be executed.
683 2006-06-14 Marek Sieradzki <marek.sieradzki@gmail.com>
685 * UsingTask.cs: Changed properties to return null on empty attribute.
686 * UsingTaskCollection.cs: Added object to SyncRoot.
687 * BuildPropertyGroup.cs: Added NotImplementedException throwing.
689 2006-06-02 Marek Sieradzki <marek.sieradzki@gmail.com>
691 * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
692 BuildPropertyGroupCollection.cs: Fixed to match the tests.
694 2006-05-27 Marek Sieradzki <marek.sieradzki@gmail.com>
696 * Utilities.cs: Implemented Escape ().
697 * BuildItem.cs: Added null checks.
698 * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
699 * Project.cs: Commented out redundant Evaluate ().
700 * BuildChoose.cs: Minor changes.
702 2006-05-22 Marek Sieradzki <marek.sieradzki@gmail.com>
704 * Token: Added new few missing tokens.
705 * Target.cs, Project.cs: Patch from Matthew Metnesky.
706 * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
707 ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
708 ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
710 Removed literal expression parsing based on tokenizer and
711 parser. It needs to be done by regex.
713 Moved tokenizer to ConditionalTokenizer.cs.
715 2006-05-05 Marek Sieradzki <marek.sieradzki@gmail.com>
717 * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
718 ItemReference.cs, PropertyReference.cs: Changed name of *Reference
719 methods converting reference to string from ToString () to
720 ConvertToString () to avoid mistakes like using ToString () provided
723 2006-05-03 Marek Sieradzki <marek.sieradzki@gmail.com>
725 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
726 Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
727 PropertyReference.cs, BuildProperty.cs: Changed Expression to
728 OldExpression and changed To* functions to one ConvertTo ().
729 * TaskEngine.cs: Fixed PublishOutput ().
730 * OldExpression.cs: Added. It will be temporarily used before
731 LiteralExpression will be written using Tokenizer.
732 * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
733 ExpressionParseException.cs, LiteralExpression.cs: Added.
735 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
737 * ImportedProject.cs: Removed warning.
738 * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
741 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
743 * Project.cs: Removed unnecessary variable.
744 * Engine.cs: Added fixme.
746 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
748 * BuildItem.cs: Moved checking if metadata name is reserved to internal
749 class (Mono.XBuild.Utilities.ReservedNameUtils).
751 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
753 * BuildTask.cs: Removed unnecessary variable.
754 * Engine.cs: Added logging of the build start.
755 * Project.cs: Removed unnecessary variable.
757 2006-04-07 Marek Sieradzki <marek.sieradzki@gmail.com>
759 * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
761 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
763 * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
765 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
767 * BuildItem.cs: Fix typo?
769 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
771 * InternalLoggerException.cs, InvalidProjectFileException.cs,
772 Engine.cs, Project.cs: Coding style fixes.
774 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
776 * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
778 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
780 * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
781 to pass tests. Wrote serialization constructor.
782 * Engine.cs, Project.cs: Global engine and project unloading, test and
785 2006-03-28 Marek Sieradzki <marek.sieradzki@gmail.com>
787 * UsingTask.cs: Formatting changes.
789 2006-03-27 Crestez Leonard <cdleonard@gmail.com>
791 * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
792 to lists instead of hashtables.
793 * Import.cs: Cleaned up, moved importing from Project.cs
794 * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
795 * Engine.cs: Cleaned up properties.
796 * Project.cs: Moved importing to Import.cs, cleaned up properties,
797 Separated evaluation and loading.
799 2006-03-21 Crestez Leonard <cdleonard@gmail.com>
801 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
802 BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
803 Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
804 binding and evaluation, merge xml binding in constructors.
805 * DirectoryScanner.cs: Includes CAN be empty.
806 * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
807 * ConsoleLogger.cs: Fix compilation warning.
809 2006-03-19 Marek Sieradzki <marek.sieradzki@gmail.com>
811 * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
813 2006-03-18 Marek Sieradzki <marek.sieradzki@gmail.com>
815 * Engine.cs: API cleanup.
817 2006-03-18 Crestez Leonard <cdleonard@gmail.com>
819 * Project.cs: Cleaned up add.
820 * Expression.cs: Hacked to transform \ and / to path separators.
821 * BuildPropertyGroup.cs: Small cleanup.
822 * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
825 2006-03-11 Marek Sieradzki <marek.sieradzki@gmail.com>
827 * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
828 * BuildItem.cs: Updated for new API and fixed crashing on non-existent
830 * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
831 BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
832 Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
834 * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
835 * TaskElement.cs: Temporarily removed.
836 * Xml.cs: Changed to static.
838 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
840 * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
841 IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
842 ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
843 IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
844 ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
845 IBuildPropertyGroupCollection.cs: Removed.
847 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
849 * BuildItem.cs: Removed IBuildItem references.
850 * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
851 IBuildItemGroup references. Changed Evaluate to internal.
852 * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
853 reference and hidden constructors.
854 * BuildProperty.cs: Removed IBuildProperty reference.
855 * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
856 IBuildPropertyGroup references. Changed Evaluate to internal.
857 * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
858 reference and hidden constructors.
859 * ConsoleLogger.cs: Updated names of event handlers.
860 * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
861 Escape. Added UnloadAllProjects () and UnloadProject ().
862 * FileLogger.cs: Removed ApplyParameter ().
863 * GroupingCollection.cs: Hidden.
864 * InvalidProjectFileException.cs: Removed HasBeenLogged property.
865 * ItemPropertyGroupingBase.cs: Commented.
866 * ProcessingPass.cs: Hidden.
867 * Project.cs: Removed IProject reference. Changed CurrentEncoding to
869 * Target.cs: Removed ITarget reference.
870 * TargetCollection.cs: Removed ITargetCollection reference.
871 * TaskElement.cs: Removed ITaskElement reference.
872 * TaskEngineAssemblyResolver.cs: Hidden.
873 * Utilities.cs: Made static class, removed CheckPath (),
874 ValidateCulture (), GetSupportedCultures () and added Escape ().
876 2006-02-24 Marek Sieradzki <marek.sieradzki@gmail.com>
878 * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
881 2005-09-22 Marek Sieradzki <marek.sieradzki@gmail.com>
883 * Project.cs: Added MonoTODO attributes.
884 * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
885 ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
886 IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
887 BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
888 SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
889 BuildItemGroup.cs, InvalidProjectFileException.cs,
890 BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
891 Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
892 PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
893 ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
894 IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
895 IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
896 ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
897 ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
898 IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
899 IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
900 BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
901 ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
903 2005-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
905 * TaskDatabase.cs: Change Shared to Framework.
906 * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
907 CaseInsensitiveHashCodeProvider
909 2005-09-11 Marek Sieradzki <marek.sieradzki@gmail.com>
911 * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
912 * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
915 2005-09-09 Marek Sieradzki <marek.sieradzki@gmail.com>
917 * InternalLoggerException.cs: Changed protected fields to private.
919 2005-09-03 Marek Sieradzki <marek.sieradzki@gmail.com>
921 * Engine.cs: Added check for globalProperties.
922 * Project.cs: Added using path from importedProject.FullFileName when
923 adding UsingTask elements.
925 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
927 * TaskElement.cs: Changed ReflectedType to PropertyType.
928 * ChangeType.cs (TransformToString): Changed to pass proper Type to
931 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
933 * BuildPropertyGroup.cs: Added check for PropertyType when adding a
935 * BuildProperty.cs: Organized PropertyType enum.
936 * Engine.cs: Added setting CommandLine PropertyType of global
939 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
941 * InvalidProjectFileException.cs: Changed Message property.
942 * ChangeType.cs (TransformToString): Added separator between items.
943 * TaskEngineAssemblyResolver.cs: Formatting.
945 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
947 * DirectoryScanner.cs: Added.
948 * BuildItem.cs: Moved file scanning code to DirectoryScanner.
949 * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
950 * Project.cs: Removed Evalute* ().
952 2005-08-30 Marek Sieradzki <marek.sieradzki@gmail.com>
954 * Target.cs: Formatting.
955 * Expression.cs: Added check if array == null.
956 * BuildItem.cs: Removed 'break' to remove warnings.
957 * ConsoleLogger.cs: Formatting.
958 * Engine.cs: Added handling of default target(s).
959 * Project.cs: Added handling of default target(s).
961 2005-08-29 Marek Sieradzki <marek.sieradzki@gmail.com>
963 * TaskElement.cs: Added check for parameters.
964 * Target.cs: Added logging of target skipping.
965 * Expression.cs: Changed returning object[] to string[], bool[]... in
967 * ItemReference.cs: Fixed for item references without custom
969 * BatchingImpl.cs: Added real inputs/outputs checking.
970 * Engine.cs: Moved global properties setting.
971 * Project.cs: Moved global properties setting.
973 2005-08-27 Marek Sieradzki <marek.sieradzki@gmail.com>
975 * Target.cs: Added checks for target existence.
976 * BuildItemGroup.cs: Changed to use transforms.
977 * MetadataReference.cs: Wrote real implementation.
978 * ItemReference.cs: Rewritten to use transforms.
979 * BuildItem.cs: Changes for transforms and metadata.
980 * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
982 * Project.cs: Fixed project importing.
983 * ImportedProject.cs: Changed to throw exceptions instead of returning
986 2005-08-24 Marek Sieradzki <marek.sieradzki@gmail.com>
988 * Engine.cs: Removed FIXME.
989 * Project.cs: Splitted ProcessElements and added project importing.
990 * ImportedProject.cs: Rewritten.
992 2005-08-20 Marek Sieradzki <marek.sieradzki@gmail.com>
994 * TaskElement.cs: Added getting of objects of every type.
995 * BuildItemGroup.cs: Added ToITaskItemArray ().
996 * Expression.cs: Implemented part that is not using metadata.
997 * ItemReference.cs: Implemented parsing item references. Need to fix
999 * BuildItem.cs: Fixed ToITaskItem ().
1000 * PropertyReference.cs: Implemented parsing property references. This
1001 also needs validity checking.
1003 2005-08-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1005 * TaskElement.cs: Added Output element handling.
1006 * Target.cs: Cleaned up.
1007 * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1008 * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1009 ItemReference.cs, ChangeType.cs: Added.
1010 * BuildItem.cs: Added creating BuildItem from TaskItem.
1011 * BuildPropertyGroup.cs: Small changes.
1012 * BatchingImpl.cs: Fixed to return real task execution result.
1013 * BuildProperty.cs: Fixed FinalValue property.
1014 * Engine.cs: Reformatted logging.
1015 * Project.cs: Added check to EvaluateProperty.
1017 2005-08-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1019 * TaskElement.cs: Added part of execution engine.
1020 * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1021 * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1022 * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1023 * BuildItem.cs: Added handling of built-in metadata and referencing
1024 Items by name not FullName.
1025 * BatchingImpl.cs: Added temporary task "batching".
1026 * ConsoleLogger.cs: Added temporary workaround to not show sender.
1027 * Project.cs: Added Evaluate. It will be moved to separate class.
1029 2005-08-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1031 * EventSource.cs, Engine.cs: Added CriticalEvents.
1032 * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1033 Project.cs: Added some support for items.
1034 * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1036 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1038 * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1041 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1043 * BatchingImpl.cs: Added.
1044 * BuildWhen.cs, BuildEngine.cs, Target.cs,
1045 BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1046 BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1047 TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1048 GroupingCollection.cs: Updated.
1050 2005-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1052 * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1053 BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1054 BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1055 BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1056 EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1057 GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1058 InternalLoggerException.cs, InvalidProjectFileException.cs,
1059 ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1060 ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1061 TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1062 TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1063 Initial check-in of implementations.
1065 2005-07-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1067 * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1068 IBuildItemGroupCollection.cs, IBuildProperty.cs,
1069 IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1070 ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1071 IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1072 IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1073 Initial check-in of interfaces and a syntax file, real classes are
1074 changing a lot so I'll wait a moment with checking them in.