1 2009-01-29 Ankit Jain <jankit@novell.com>
3 * BuildItem.cs (child_items): Change type from BuildItemGroup to
5 (HasParent): Rename to ..
6 (HasParentItem): .. this.
7 (ParentItemGroup): Add setter.
9 * BuildItemGroup.cs (.ctor): Add overload with @project param.
11 (AddItem): Correctly set the ParentItemGroup for new build items.
12 (ParentProject): Add setter.
13 * Project.cs: Set the project for new BuildItemGroup instances.
14 * TaskEngine.cs (PublishItemGroup): Likewise.
16 2009-01-06 Ankit Jain <jankit@novell.com>
18 * Project.cs (Build): Honor InitialTargets list.
20 2009-01-06 Ankit Jain <jankit@novell.com>
22 * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
23 the property type also.
24 * MSBuild.cs (Execute): Parse 'Properties' task param to set global
27 2009-01-06 Ankit Jain <jankit@novell.com>
29 * Project.cs (Build): Correctly handle null targetNames argument.
31 2009-01-06 Ankit Jain <jankit@novell.com>
33 * Engine.cs (LogProjectStarted): Add a null check.
35 2009-01-01 Ankit Jain <jankit@novell.com>
37 * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
38 * ChangeType (ToBuildItemGroup): Add 'split' param.
40 * Expression.cs (Parse): Add a new overload with a 'split' param.
41 * ExpressionCollection.cs (Add): Add new overload for IReference,
42 remove the ones for Item/Metadata/PropertyReference.
43 (ConvertToArray): Implement correctly.
44 (ConvertToString): Track api changes.
45 (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
46 (ConvertToITaskItemArray): Implement support for concat'ing expressions.
47 (AddItemsToArray): New.
48 (ConvertToITaskItemArrayFromString): Refactor a bit.
49 (ThrowCantConcatError): New.
50 * ItemReference.cs: Update.
51 * MetadataReference.cs: Update.
52 * PropertyReference.cs (ConvertToITaskItemArray): Implement.
54 * BuildPropertyGroup.cs: Track api changes.
55 * TaskEngine.cs (PublishOutput): Improve exception message.
56 * Project.cs (DoLoad): Improve exception message. Add a null check.
58 2008-12-30 Ankit Jain <jankit@novell.com>
60 * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
61 metadata values for unqualified references.
62 (BuildItemGroupToITaskItemArray): Rename to ..
63 (BuildItemGroupToITaskItems): .. this.
66 2008-12-18 Ankit Jain <jankit@novell.com>
68 * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
70 2008-12-17 Ankit Jain <jankit@novell.com>
72 * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
73 only one instance of unique metadata value is required.
75 2008-11-22 Ankit Jain <jankit@novell.com>
77 * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
79 * MetadataReference.cs (ConvertToITaskItemArray): New.
80 * Project.cs (GetAllItemGroups): New.
82 2008-11-21 Ankit Jain <jankit@novell.com>
84 * BatchingImpl.cs: Add task batching implementation.
85 * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
86 * ExpressionCollection.cs (Count): New.
87 (ConvertToString): Handle MetadataReference.
88 * ItemReference.cs (ConvertToString):
89 (ConvertToITaskItemArray): Use the batching api.
91 * MetadataReference.cs (ConvertToString): New.
93 * Project.cs: Add api for accessing batched items and metadata.
94 * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
97 2008-10-01 Ankit Jain <jankit@novell.com>
99 * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
100 (BuildProjectFile): If filename is null (project.LoadXml) then use
102 * BuildTask.cs (InitializeTask): Track api change.
103 * Expression.cs (Parse): Skip empty entries in the expression.
105 2008-09-24 Ankit Jain <jankit@novell.com>
107 * Engine.cs: Add argument checks.
108 * Project.cs: Likewise.
110 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
112 * Project.cs (Build): Add outputs to targetOutputs.
114 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
116 * ExpressionCollection.cs (ConvertToArray): Simplify.
118 2007-03-05 Marek Sieradzki <marek.sieradzki@gmail.com>
120 * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
121 simplified. It still needs tests and refactoring.
123 2007-02-22 Marek Sieradzki <marek.sieradzki@gmail.com>
125 * BuildEngine.cs (BuildProjectFile): Don't crash on null
128 * Target.cs: Add Outputs property.
130 2007-02-20 Marek Sieradzki <marek.sieradzki@gmail.com>
132 * Target.cs (Build): Split to GetDependencies () and BuildDependencies
133 (). Support condition.
135 * BatchingImpl.cs (BatchBuildTask): Simplify.
137 2007-02-18 Marek Sieradzki <marek.sieradzki@gmail.com>
139 * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
142 * ConditionFunctionExpression.cs: Removed warnings.
144 * BuildTask.cs (Execute): Write exceptions to std err (they should be
145 logged but it's better than swallowing).
147 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
149 * ConditionTokenizer.cs: Add Putback ().
151 * ConditionParser.cs: Add parsing of functions.
153 * ConditionFunctionExpression.cs: Add.
155 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
157 * BuildPropertyGroup (SetProperty): Throw an exception when trying to
158 set property in persisted property group.
160 2007-01-29 Marek Sieradzki <marek.sieradzki@gmail.com>
162 * BuildTask.cs (Execute): Log errors that happen when invoking ITask
165 * ConsoleLogger.cs (TargetFinishedHandler)
166 (TaskFinishedHandler): Increment error count.
168 2007-01-28 Marek Sieradzki <marek.sieradzki@gmail.com>
170 * BuildItem.cs (RemoveMetadata): Remove from XML.
171 (SetMetadata): Trigger project reevaluation.
173 2007-01-26 Marek Sieradzki <marek.sieradzki@gmail.com>
175 * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
178 2007-01-23 Marek Sieradzki <marek.sieradzki@gmail.com>
180 * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
181 TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
182 BatchingImpl.cs, BuildProperty.cs: Track API changes.
184 * Expression.cs (Parse): Added allowItems parameter and made regexes
187 * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
188 will try to import a.ext when given a.EXT.
190 2007-01-21 Marek Sieradzki <marek.sieradzki@gmail.com>
192 * BuildItemGroup.cs: Store information saying what is the last item
193 group that contains build item name.
195 * Project.cs (Build): Pass empty array (build default targets).
197 2007-01-19 Marek Sieradzki <marek.sieradzki@gmail.com>
199 * Token.cs: Commented Transform and LiteralSubExpression and added
202 * ConditionParser.cs: Removed redundant casts, rewrote
203 ParseFactorExpression () and added parsing of '!'.
205 * ConditionTokenizer.cs: Always skip whitespaces when getting next
206 token (no IgnoreWhiteSpace property). Don't create a token from '->'.
207 Moved ReadChar () in front of all ifs.
209 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
211 * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
212 from XML. (not to escape items that have parents twice).
214 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
216 * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
217 (Project): Renamed to ParentProject.
219 * BuildItem.cs (ctor)
220 (CopyCustomMetadata): Add null check.
222 * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
223 (RemoveProperty): Added null check.
225 * TargetCollection.cs (RemoveTarget): Added null check.
227 * Engine.cs (UnloadProject): Added null check.
229 * GroupingCollection.cs (Remove): Check if removed group belongs to
232 * Project.cs (AddNewItem): Implemented.
233 (RemoveItem): Reorganized.
234 (SetProjectExtensions): Added null check.
236 2007-01-14 Marek Sieradzki <marek.sieradzki@gmail.com>
238 * BuildItemGroup.cs (Detach): Added.
240 (RemoveItemAt): Used Detach ().
242 * BuildItem.cs: Made FromXml and HasParent internal and added
243 ParentItem and ParentItemGroup properties (internal).
246 * GroupingCollection.cs (Remove): Used Detach ().
248 * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
250 (GetEvaluatedItemsByNameIgnoringCondition)
251 (GetEvaluatedItemsByName)
252 (GetEvaluatedProperty): Reevaluate if needed.
254 (RemoveAllItemGroups)
255 (RemoveAllPropertyGroups): Implemented.
256 (DoLoad): Added closing of TextReader.
258 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
260 * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
261 change but just mark that it needs it.
263 * Project.cs: Reevaluate when it needs reevaluation and one of
264 Evaluated* properties is used.
266 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
268 * Target.cs: Throw an exception when <OnError> is not last element in
271 * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
273 * TargetCollection.cs: If a target is already there replace it with
276 * BuildProperty.cs: Added XmlElement property.
278 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
280 * ImportCollection.cs: Don't add imports that are already added.
282 * BuildItemGroup.cs: MonoTODOs.
284 * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
285 condition can't be evaluated to bool.
287 * BuildPropertyGroup.cs (Evaluate): Simplify.
289 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
291 * BuildWhen.cs: Moved BindToXml () code to ctor.
293 * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
294 property needed for removing groups.
296 * Engine.cs: Added StartBuild () that logs build start when Build ()
299 * GroupingCollection.cs: Added Remove () for item and property groups.
301 * Project.cs (AddNewImport): Implemented.
302 (AddNewItemGroup): Implemented.
303 (AddNewPropertyGroup): Implemented.
304 (AddNewUsingTaskFromAssemblyFile): Implemented.
305 (AddNewUsingTaskFromAssemblyName): Implemented.
306 (RemoveItemGroup): Implemented.
307 (RemovePropertyGroup): Implemented.
309 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
311 * BuildItemGroup.cs (Clear): Remove from XML.
313 * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
314 to Project.EvaluatedProperties.
315 (Clear): Remove from XML.
317 2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
319 * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
322 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
324 * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
325 Add () calls when processing a project from Import and
326 evaluate_iterator for evaluation.
328 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
330 * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
331 and prepend relative directory of importing project to full path of
334 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
336 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
337 BuildItemGroupCollection.cs, Project.cs: Track API changes.
339 * GroupingCollection.cs: Now it needs Project reference so added it.
341 * BuildTask.cs: Formatting.
343 * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
345 * ConditionParser.cs (ParseAndEvaluate): Added.
347 * BuildItem.cs: Changed exception message.
349 2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
351 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
352 BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
353 GroupingCollection doesn't need Project reference.
355 * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
357 * BuildItemGroup.cs: Added new readOnly parameter to ctor.
358 (Project.EvaluatedItems is a read only item group.)
359 (ReplaceWith): Added.
361 * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
362 global property group causes reevaluation of its project.
364 * Project.cs: ProcessXml () is internal and can be "safely" invoked by
367 * OldExpression.cs: Removed.
369 * BuildProperty.cs (Evaluate): Simplified.
371 * ChangeType.cs (TemporaryTransform): Simplified.
373 * BuildItem.cs: There are now 3 types of build items: from XML, having
374 parent from XML, virtual. Added SplitParentItem ().
376 2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
378 * Utilities.cs: Added Unescape ().
380 * BuildItemGroup.cs, BuildItem.cs: Pass null project to
381 BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
382 groups (at the moment just unescape).
384 * Expression.cs (CopyToExpressionList): Unescape strings.
386 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
388 * Target.cs (ctor): Added ImportedProject argument and removed
390 (AddNewTask): Implemented.
392 * TargetCollection.cs (AddNewTarget): Implemented.
394 * Project.cs: Track API changes.
396 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
398 * Target.cs (Build): Don't throw anything in case of error, just
401 * BuildItemGroup.cs (set_Condition): Throw an exception if group is
404 * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
407 * BuildProperty.cs (ToString): Throw an exception if property is not
409 (op_Explicit): Added a null check.
411 * Engine.cs: Better error message.
413 * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
414 IndexOutOfRangeException.
416 * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
417 (MarkProjectAsDirty): Set time.
419 2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
421 * BuildItemGroup.cs (Clone): Throw exception.
423 * Project.cs (Load): Throw InvalidProjectFileException if anything
426 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
428 * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
429 and ConvertToITaskItemArray ().
431 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
433 * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
434 classes that were public in Beta 2 and aren't used.
436 * Expression.cs: Added replacement for parsing expressions char by
437 char. It uses regexes to find item/property/metadata references in
440 * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
441 Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
442 BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
444 * ConditionRelationalExpression.cs: Formatting.
446 * OldExpression.cs: Commented everything.
448 * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
449 parsing to Expression.
451 * BuildItem.cs: Check if project is from XML in set_Condition and
454 * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
457 * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
458 can evaluate expression in CanEvaluateToBool ().
460 2006-12-12 Marek Sieradzki <marek.sieradzki@gmail.com>
462 * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
463 which item group is imported.
465 * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
467 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
469 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
470 BuildItemGroupCollection.cs: Little changes related to
473 * ImportCollection.cs: Use GroupingCollection not an internal list.
475 * Import.cs (Evaluate): Split to functions and check if
476 EvaluatedProjectPath is empty.
478 * GroupingCollection.cs, Project.cs: Move evaluation to
479 GroupingCollection. Change algorithm to use 2 passes: first for property
480 groups and imports and second for item groups.
482 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
484 * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
485 BuildItemGroup> not IDictionary.
487 * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
488 evaluated to false because we want to add every item to
489 Project.EvaluatedItemsByNameIgnoringCondition.
491 * Project.cs (Build): Don't throw an exception just return false.
492 (GetEvaluatedProperty): Avoid NullReferenceException.
493 (SetProjectExtensions): Implemented.
495 2006-12-08 Marek Sieradzki <marek.sieradzki@gmail.com>
497 * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
499 * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
500 BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
501 Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
503 * ImportCollection.cs: Added a note.
505 2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
507 * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
509 * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
510 (UsingTask[] array, int index)
512 * TaskEngine.cs: Reformatted PublishOutput () and added copying of
513 items to Project.EvaluatedItems in PublishItemGroup ();
515 * BuildItemGroup.cs: Added [MonoTODO].
517 * UsingTask.cs: Used expression for AssemblyFile to get around
518 problems with '\' and '/'.
520 * BuildItem.cs (ctor): Added null checks.
521 (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
522 (SetMetadata): Don't escape evaluatedMetadata and escape
523 unevaluatedMetadata only when treatPropertyValueAsLiteral.
525 * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
526 FromXml () instead of null checks.
527 (SetProperty): Escape propertyValue when it is literal.
529 * BuildProperty.cs: Changed exception message.
531 * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
533 (GetProjectExtensions): Implemented.
535 2006-12-05 Marek Sieradzki <marek.sieradzki@gmail.com>
537 * BuildTask.cs: Remove [MonoTODO], add exception throwing in
538 GetParameterValue (), use expressions in ContinueOnError.
539 * ConditionFactorException.cs: Throw InvalidProjectFileException ()
540 instead of InvalidOperationException ().
541 * ImportCollection.cs: Implement CopyTo ().
542 * Target.cs: Remove redundant variables (XmlAttributes), return
543 String.Empty in DependsOnTargets, add a null check in RemoveTask ().
544 * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
545 * Import.cs: Throw an exception when file does not exist.
546 * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
547 * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
548 need to treat item as a token probably
550 2006-12-04 Marek Sieradzki <marek.sieradzki@gmail.com>
552 * Import.cs: Check for project.FullFileName (Path.DirectoryName would
554 * BuildItemGroupCollection.cs: Changed exception types.
556 2006-10-14 Marek Sieradzki <marek.sieradzki@gmail.com>
558 * Engine.cs: Removed redundant cast.
560 * UsingTaskCollection.cs:
564 * TargetCollection.cs: Comment unused variable.
565 * ConditionTokenizer.cs: Simplified checking if current token is a
567 * Target.cs: Removed old code.
569 2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
571 * Target.cs: Changed "" to String.Empty.
572 * TaskEngine.cs: Don't try to convert a parameter to specific type if
573 string was evaluated to String.Empty.
574 * InternalLoggerException.cs:
575 * InvalidProjectFileException.cs: Added LinkDemand before
577 * ConsoleLogger.cs: Changed "" to String.Empty.
578 * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
579 with change to generics).
580 * Project.cs: Made Build () throw more meaningful exception.
582 2006-10-06 Marek Sieradzki <marek.sieradzki@gmail.com>
584 * Target.cs: Reformatted.
585 * TaskEngine.cs: Removed redundant code.
586 * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
587 * Engine.cs: Made BuildProjectFile () load project file if it's not
590 2006-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
592 * ConditionRelationalExpression.cs: Change comparers to case
594 * ImportCollection.cs: Add NotImplementedExceptions.
595 * BuildPropertyGroup.cs: Reformatted a bit.
596 * BuildProperty.cs: The same.
597 * Project.cs: Moved evaluation of imports before evaluation of
598 properties. This may "work" until importing projects is redesigned but
599 probably isn't correct.
601 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
603 * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
605 * BuildItemGroup.cs: Change return to continue.
607 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
609 * ConditionParser.cs: Copyright note.
610 * ExpressionCollection.cs: Fixed arrays passing.
612 2006-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
614 * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
615 Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
616 BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
617 TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
619 2006-06-25 Marek Sieradzki <marek.sieradzki@gmail.com>
621 * Token.cs: Changed names: removed "than".
622 * ConditionRelationalExpression.cs: Added.
623 * ConditionFactorExpression.cs: Added.
624 * BuildItemGroup.cs: Changed Condition property return value to return
625 String.Empty instead of null.
626 * ConditionParser.cs: Added support for parsing relational expressions
628 * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
629 abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
630 and CanEvaluateToBool (), CanEvaluateToNumber () and
631 CanEvaluateToString ().
632 * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
633 appropriately to ConditionExpression base class.
634 * ConditionTokenizer.cs: Added null check and changed names in enums:
636 * ConditionNotExpression.cs: Added.
637 * BatchingImpl.cs: Changed to use BoolEvaluate ().
638 * Project.cs: Added checks for condition.
640 2006-06-22 Marek Sieradzki <marek.sieradzki@gmail.com>
642 * ConditionalTokenizer.cs, ConditionalExpression.cs,
643 ConditionalParser.cs: Changed name,
645 * ConditionExpression.cs: Added Evaluate ().
646 * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
647 * BatchingImpl.cs: Added check if task should be executed.
649 2006-06-14 Marek Sieradzki <marek.sieradzki@gmail.com>
651 * UsingTask.cs: Changed properties to return null on empty attribute.
652 * UsingTaskCollection.cs: Added object to SyncRoot.
653 * BuildPropertyGroup.cs: Added NotImplementedException throwing.
655 2006-06-02 Marek Sieradzki <marek.sieradzki@gmail.com>
657 * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
658 BuildPropertyGroupCollection.cs: Fixed to match the tests.
660 2006-05-27 Marek Sieradzki <marek.sieradzki@gmail.com>
662 * Utilities.cs: Implemented Escape ().
663 * BuildItem.cs: Added null checks.
664 * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
665 * Project.cs: Commented out redundant Evaluate ().
666 * BuildChoose.cs: Minor changes.
668 2006-05-22 Marek Sieradzki <marek.sieradzki@gmail.com>
670 * Token: Added new few missing tokens.
671 * Target.cs, Project.cs: Patch from Matthew Metnesky.
672 * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
673 ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
674 ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
676 Removed literal expression parsing based on tokenizer and
677 parser. It needs to be done by regex.
679 Moved tokenizer to ConditionalTokenizer.cs.
681 2006-05-05 Marek Sieradzki <marek.sieradzki@gmail.com>
683 * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
684 ItemReference.cs, PropertyReference.cs: Changed name of *Reference
685 methods converting reference to string from ToString () to
686 ConvertToString () to avoid mistakes like using ToString () provided
689 2006-05-03 Marek Sieradzki <marek.sieradzki@gmail.com>
691 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
692 Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
693 PropertyReference.cs, BuildProperty.cs: Changed Expression to
694 OldExpression and changed To* functions to one ConvertTo ().
695 * TaskEngine.cs: Fixed PublishOutput ().
696 * OldExpression.cs: Added. It will be temporarily used before
697 LiteralExpression will be written using Tokenizer.
698 * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
699 ExpressionParseException.cs, LiteralExpression.cs: Added.
701 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
703 * ImportedProject.cs: Removed warning.
704 * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
707 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
709 * Project.cs: Removed unnecessary variable.
710 * Engine.cs: Added fixme.
712 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
714 * BuildItem.cs: Moved checking if metadata name is reserved to internal
715 class (Mono.XBuild.Utilities.ReservedNameUtils).
717 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
719 * BuildTask.cs: Removed unnecessary variable.
720 * Engine.cs: Added logging of the build start.
721 * Project.cs: Removed unnecessary variable.
723 2006-04-07 Marek Sieradzki <marek.sieradzki@gmail.com>
725 * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
727 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
729 * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
731 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
733 * BuildItem.cs: Fix typo?
735 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
737 * InternalLoggerException.cs, InvalidProjectFileException.cs,
738 Engine.cs, Project.cs: Coding style fixes.
740 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
742 * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
744 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
746 * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
747 to pass tests. Wrote serialization constructor.
748 * Engine.cs, Project.cs: Global engine and project unloading, test and
751 2006-03-28 Marek Sieradzki <marek.sieradzki@gmail.com>
753 * UsingTask.cs: Formatting changes.
755 2006-03-27 Crestez Leonard <cdleonard@gmail.com>
757 * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
758 to lists instead of hashtables.
759 * Import.cs: Cleaned up, moved importing from Project.cs
760 * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
761 * Engine.cs: Cleaned up properties.
762 * Project.cs: Moved importing to Import.cs, cleaned up properties,
763 Separated evaluation and loading.
765 2006-03-21 Crestez Leonard <cdleonard@gmail.com>
767 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
768 BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
769 Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
770 binding and evaluation, merge xml binding in constructors.
771 * DirectoryScanner.cs: Includes CAN be empty.
772 * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
773 * ConsoleLogger.cs: Fix compilation warning.
775 2006-03-19 Marek Sieradzki <marek.sieradzki@gmail.com>
777 * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
779 2006-03-18 Marek Sieradzki <marek.sieradzki@gmail.com>
781 * Engine.cs: API cleanup.
783 2006-03-18 Crestez Leonard <cdleonard@gmail.com>
785 * Project.cs: Cleaned up add.
786 * Expression.cs: Hacked to transform \ and / to path separators.
787 * BuildPropertyGroup.cs: Small cleanup.
788 * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
791 2006-03-11 Marek Sieradzki <marek.sieradzki@gmail.com>
793 * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
794 * BuildItem.cs: Updated for new API and fixed crashing on non-existent
796 * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
797 BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
798 Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
800 * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
801 * TaskElement.cs: Temporarily removed.
802 * Xml.cs: Changed to static.
804 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
806 * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
807 IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
808 ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
809 IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
810 ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
811 IBuildPropertyGroupCollection.cs: Removed.
813 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
815 * BuildItem.cs: Removed IBuildItem references.
816 * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
817 IBuildItemGroup references. Changed Evaluate to internal.
818 * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
819 reference and hidden constructors.
820 * BuildProperty.cs: Removed IBuildProperty reference.
821 * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
822 IBuildPropertyGroup references. Changed Evaluate to internal.
823 * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
824 reference and hidden constructors.
825 * ConsoleLogger.cs: Updated names of event handlers.
826 * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
827 Escape. Added UnloadAllProjects () and UnloadProject ().
828 * FileLogger.cs: Removed ApplyParameter ().
829 * GroupingCollection.cs: Hidden.
830 * InvalidProjectFileException.cs: Removed HasBeenLogged property.
831 * ItemPropertyGroupingBase.cs: Commented.
832 * ProcessingPass.cs: Hidden.
833 * Project.cs: Removed IProject reference. Changed CurrentEncoding to
835 * Target.cs: Removed ITarget reference.
836 * TargetCollection.cs: Removed ITargetCollection reference.
837 * TaskElement.cs: Removed ITaskElement reference.
838 * TaskEngineAssemblyResolver.cs: Hidden.
839 * Utilities.cs: Made static class, removed CheckPath (),
840 ValidateCulture (), GetSupportedCultures () and added Escape ().
842 2006-02-24 Marek Sieradzki <marek.sieradzki@gmail.com>
844 * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
847 2005-09-22 Marek Sieradzki <marek.sieradzki@gmail.com>
849 * Project.cs: Added MonoTODO attributes.
850 * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
851 ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
852 IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
853 BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
854 SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
855 BuildItemGroup.cs, InvalidProjectFileException.cs,
856 BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
857 Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
858 PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
859 ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
860 IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
861 IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
862 ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
863 ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
864 IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
865 IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
866 BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
867 ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
869 2005-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
871 * TaskDatabase.cs: Change Shared to Framework.
872 * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
873 CaseInsensitiveHashCodeProvider
875 2005-09-11 Marek Sieradzki <marek.sieradzki@gmail.com>
877 * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
878 * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
881 2005-09-09 Marek Sieradzki <marek.sieradzki@gmail.com>
883 * InternalLoggerException.cs: Changed protected fields to private.
885 2005-09-03 Marek Sieradzki <marek.sieradzki@gmail.com>
887 * Engine.cs: Added check for globalProperties.
888 * Project.cs: Added using path from importedProject.FullFileName when
889 adding UsingTask elements.
891 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
893 * TaskElement.cs: Changed ReflectedType to PropertyType.
894 * ChangeType.cs (TransformToString): Changed to pass proper Type to
897 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
899 * BuildPropertyGroup.cs: Added check for PropertyType when adding a
901 * BuildProperty.cs: Organized PropertyType enum.
902 * Engine.cs: Added setting CommandLine PropertyType of global
905 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
907 * InvalidProjectFileException.cs: Changed Message property.
908 * ChangeType.cs (TransformToString): Added separator between items.
909 * TaskEngineAssemblyResolver.cs: Formatting.
911 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
913 * DirectoryScanner.cs: Added.
914 * BuildItem.cs: Moved file scanning code to DirectoryScanner.
915 * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
916 * Project.cs: Removed Evalute* ().
918 2005-08-30 Marek Sieradzki <marek.sieradzki@gmail.com>
920 * Target.cs: Formatting.
921 * Expression.cs: Added check if array == null.
922 * BuildItem.cs: Removed 'break' to remove warnings.
923 * ConsoleLogger.cs: Formatting.
924 * Engine.cs: Added handling of default target(s).
925 * Project.cs: Added handling of default target(s).
927 2005-08-29 Marek Sieradzki <marek.sieradzki@gmail.com>
929 * TaskElement.cs: Added check for parameters.
930 * Target.cs: Added logging of target skipping.
931 * Expression.cs: Changed returning object[] to string[], bool[]... in
933 * ItemReference.cs: Fixed for item references without custom
935 * BatchingImpl.cs: Added real inputs/outputs checking.
936 * Engine.cs: Moved global properties setting.
937 * Project.cs: Moved global properties setting.
939 2005-08-27 Marek Sieradzki <marek.sieradzki@gmail.com>
941 * Target.cs: Added checks for target existence.
942 * BuildItemGroup.cs: Changed to use transforms.
943 * MetadataReference.cs: Wrote real implementation.
944 * ItemReference.cs: Rewritten to use transforms.
945 * BuildItem.cs: Changes for transforms and metadata.
946 * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
948 * Project.cs: Fixed project importing.
949 * ImportedProject.cs: Changed to throw exceptions instead of returning
952 2005-08-24 Marek Sieradzki <marek.sieradzki@gmail.com>
954 * Engine.cs: Removed FIXME.
955 * Project.cs: Splitted ProcessElements and added project importing.
956 * ImportedProject.cs: Rewritten.
958 2005-08-20 Marek Sieradzki <marek.sieradzki@gmail.com>
960 * TaskElement.cs: Added getting of objects of every type.
961 * BuildItemGroup.cs: Added ToITaskItemArray ().
962 * Expression.cs: Implemented part that is not using metadata.
963 * ItemReference.cs: Implemented parsing item references. Need to fix
965 * BuildItem.cs: Fixed ToITaskItem ().
966 * PropertyReference.cs: Implemented parsing property references. This
967 also needs validity checking.
969 2005-08-19 Marek Sieradzki <marek.sieradzki@gmail.com>
971 * TaskElement.cs: Added Output element handling.
972 * Target.cs: Cleaned up.
973 * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
974 * Expression.cs, MetadataReference.cs, PropertyReference.cs,
975 ItemReference.cs, ChangeType.cs: Added.
976 * BuildItem.cs: Added creating BuildItem from TaskItem.
977 * BuildPropertyGroup.cs: Small changes.
978 * BatchingImpl.cs: Fixed to return real task execution result.
979 * BuildProperty.cs: Fixed FinalValue property.
980 * Engine.cs: Reformatted logging.
981 * Project.cs: Added check to EvaluateProperty.
983 2005-08-16 Marek Sieradzki <marek.sieradzki@gmail.com>
985 * TaskElement.cs: Added part of execution engine.
986 * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
987 * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
988 * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
989 * BuildItem.cs: Added handling of built-in metadata and referencing
990 Items by name not FullName.
991 * BatchingImpl.cs: Added temporary task "batching".
992 * ConsoleLogger.cs: Added temporary workaround to not show sender.
993 * Project.cs: Added Evaluate. It will be moved to separate class.
995 2005-08-14 Marek Sieradzki <marek.sieradzki@gmail.com>
997 * EventSource.cs, Engine.cs: Added CriticalEvents.
998 * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
999 Project.cs: Added some support for items.
1000 * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1002 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1004 * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1007 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1009 * BatchingImpl.cs: Added.
1010 * BuildWhen.cs, BuildEngine.cs, Target.cs,
1011 BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1012 BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1013 TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1014 GroupingCollection.cs: Updated.
1016 2005-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1018 * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1019 BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1020 BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1021 BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1022 EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1023 GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1024 InternalLoggerException.cs, InvalidProjectFileException.cs,
1025 ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1026 ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1027 TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1028 TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1029 Initial check-in of implementations.
1031 2005-07-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1033 * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1034 IBuildItemGroupCollection.cs, IBuildProperty.cs,
1035 IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1036 ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1037 IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1038 IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1039 Initial check-in of interfaces and a syntax file, real classes are
1040 changing a lot so I'll wait a moment with checking them in.