2009-03-26 Jonathan Chambers * TaskDatabase.cs (RegisterTask): Search for class by name if task was not found using GetType (which uses namespace). 2009-02-26 Ankit Jain * Target.cs: Handle target with no tasks. Log errors. 2009-02-24 Ankit Jain Lazily load UsingTask tasks. * UsingTask.cs (Evaluate): Register 'this' with task database, but don't load it yet. Register only if condition evaluates to true. Move the load logic to .. (Load): .. here. Register with the specified task database. * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance in a table keyed by task name, but don't load it yet. (GetTypeFromClassName): Try to load UsingTask if task is not already loaded. Move loading logic to .. (GetTypeFromClassNameInternal): .. here. (CopyTasks): Copy the usingTasks table also. 2009-02-23 Ankit Jain * BuildItem.cs (AddMetadata): Allow overwriting older values. 2009-02-22 Ankit Jain * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode instead of XmlElement. Eg. XmlComment 2009-02-21 Ankit Jain * Utilities.cs (FromMSBuildPath): Copy from monodevelop. * Project.cs (Load): Use FromMSBuildPath on the path. (InitializeProperties): Set "MSBuildToolsPath" also. 2009-02-20 Ankit Jain Fix #449683. * ConditionTokenizer.cs: Handle unquoted item references (with or w/o transforms) in conditions. * ConditionParser.cs: Parse unquoted item, property references. eg. Condition = " @(Foo->'%(Extension)') == '.exe' " * Token.cs (Token.ToString): Override. (TokenType.Transform): Uncomment. 2009-02-12 Jonathan Chambers * BuildProperty.cs: Value corresponds to XmlElement.InnerXml no XmlElement.InnerText. This allows properties to be additional xml elements. 2009-02-01 Ankit Jain * BuildEngine.cs (BuildProjectFile): Use BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects. * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already built. Move logging of project start/finish to .. * Project.cs: .. here. Build a target only if hasn't been built already. Keep track of target outputs, and return those even if an already built target has been invoked again. Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets . 2009-01-31 Ankit Jain * BatchingImpl.cs: Split into .. * BatchingImplBase.cs: .. this, * TaskBatchingImpl.cs: .. this .. * TargetBatchingImpl.cs: .. and this. Implement target batching here. * Target.cs (DoBuild): Use TargetBatchingImpl for building. (Log*): Move to TargetBatchingImpl . (BuildTasks): New. (Engine): New. 2009-01-30 Ankit Jain * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for arrays. 2009-01-29 Ankit Jain * BuildItem.cs (child_items): Change type from BuildItemGroup to List. (HasParent): Rename to .. (HasParentItem): .. this. (ParentItemGroup): Add setter. * BuildItemGroup.cs (.ctor): Add overload with @project param. (AddNewItem): (AddItem): Correctly set the ParentItemGroup for new build items. (ParentProject): Add setter. * Project.cs: Set the project for new BuildItemGroup instances. * TaskEngine.cs (PublishItemGroup): Likewise. 2009-01-06 Ankit Jain * Project.cs (Build): Honor InitialTargets list. 2009-01-06 Ankit Jain * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify the property type also. * MSBuild.cs (Execute): Parse 'Properties' task param to set global properties. 2009-01-06 Ankit Jain * Project.cs (Build): Correctly handle null targetNames argument. 2009-01-06 Ankit Jain * Engine.cs (LogProjectStarted): Add a null check. 2009-01-01 Ankit Jain * IReference.cs: New. Interface for Item/Metadata/PropertyReference. * ChangeType (ToBuildItemGroup): Add 'split' param. Track api changes. * Expression.cs (Parse): Add a new overload with a 'split' param. * ExpressionCollection.cs (Add): Add new overload for IReference, remove the ones for Item/Metadata/PropertyReference. (ConvertToArray): Implement correctly. (ConvertToString): Track api changes. (ConvertToITaskItem): Implement with ConvertToITaskItemArray. (ConvertToITaskItemArray): Implement support for concat'ing expressions. (AddItemsToArray): New. (ConvertToITaskItemArrayFromString): Refactor a bit. (ThrowCantConcatError): New. * ItemReference.cs: Update. * MetadataReference.cs: Update. * PropertyReference.cs (ConvertToITaskItemArray): Implement. (GetValue): New. * BuildPropertyGroup.cs: Track api changes. * TaskEngine.cs (PublishOutput): Improve exception message. * Project.cs (DoLoad): Improve exception message. Add a null check. 2008-12-30 Ankit Jain * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique metadata values for unqualified references. (BuildItemGroupToITaskItemArray): Rename to .. (BuildItemGroupToITaskItems): .. this. (HasTaskItem): New. 2008-12-18 Ankit Jain * BuildTask.cs (Execute): PublishOutput only if task runs successfully. 2008-12-17 Ankit Jain * MetadataReference.cs (ConvertToITaskItemArray): In case of batching, only one instance of unique metadata value is required. 2008-11-22 Ankit Jain * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for MetadataReference. * MetadataReference.cs (ConvertToITaskItemArray): New. * Project.cs (GetAllItemGroups): New. 2008-11-21 Ankit Jain * BatchingImpl.cs: Add task batching implementation. * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names. * ExpressionCollection.cs (Count): New. (ConvertToString): Handle MetadataReference. * ItemReference.cs (ConvertToString): (ConvertToITaskItemArray): Use the batching api. (ToString): New. * MetadataReference.cs (ConvertToString): New. (ToString): New. * Project.cs: Add api for accessing batched items and metadata. * TaskEngine.cs (PublishItemGroup): Don't clear existing values from item group. 2008-10-01 Ankit Jain * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'. (BuildProjectFile): If filename is null (project.LoadXml) then use engine.BuildProject * BuildTask.cs (InitializeTask): Track api change. * Expression.cs (Parse): Skip empty entries in the expression. 2008-09-24 Ankit Jain * Engine.cs: Add argument checks. * Project.cs: Likewise. 2007-03-06 Marek Sieradzki * Project.cs (Build): Add outputs to targetOutputs. 2007-03-06 Marek Sieradzki * ExpressionCollection.cs (ConvertToArray): Simplify. 2007-03-05 Marek Sieradzki * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and simplified. It still needs tests and refactoring. 2007-02-22 Marek Sieradzki * BuildEngine.cs (BuildProjectFile): Don't crash on null globalProperties. * Target.cs: Add Outputs property. 2007-02-20 Marek Sieradzki * Target.cs (Build): Split to GetDependencies () and BuildDependencies (). Support condition. * BatchingImpl.cs (BatchBuildTask): Simplify. 2007-02-18 Marek Sieradzki * ExpressionCollection.cs (ConvertToITaskItemArrayFromString): Simplified. * ConditionFunctionExpression.cs: Removed warnings. * BuildTask.cs (Execute): Write exceptions to std err (they should be logged but it's better than swallowing). 2007-02-03 Marek Sieradzki * ConditionTokenizer.cs: Add Putback (). * ConditionParser.cs: Add parsing of functions. * ConditionFunctionExpression.cs: Add. 2007-02-03 Marek Sieradzki * BuildPropertyGroup (SetProperty): Throw an exception when trying to set property in persisted property group. 2007-01-29 Marek Sieradzki * BuildTask.cs (Execute): Log errors that happen when invoking ITask .ctor. * ConsoleLogger.cs (TargetFinishedHandler) (TaskFinishedHandler): Increment error count. 2007-01-28 Marek Sieradzki * BuildItem.cs (RemoveMetadata): Remove from XML. (SetMetadata): Trigger project reevaluation. 2007-01-26 Marek Sieradzki * BuildPropertyGroup.cs (SetProperty): Made it work with persisted properties. 2007-01-23 Marek Sieradzki * BuildTask.cs, ConditionFactorExpression.cs, Target.cs, TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes. * Expression.cs (Parse): Added allowItems parameter and made regexes static. * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It will try to import a.ext when given a.EXT. 2007-01-21 Marek Sieradzki * BuildItemGroup.cs: Store information saying what is the last item group that contains build item name. * Project.cs (Build): Pass empty array (build default targets). 2007-01-19 Marek Sieradzki * Token.cs: Commented Transform and LiteralSubExpression and added FunctionName token. * ConditionParser.cs: Removed redundant casts, rewrote ParseFactorExpression () and added parsing of '!'. * ConditionTokenizer.cs: Always skip whitespaces when getting next token (no IgnoreWhiteSpace property). Don't create a token from '->'. Moved ReadChar () in front of all ifs. 2007-01-16 Marek Sieradzki * BuildItem.cs (SetMetadata): Escape when we get virtual item or item from XML. (not to escape items that have parents twice). 2007-01-16 Marek Sieradzki * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty. (Project): Renamed to ParentProject. * BuildItem.cs (ctor) (CopyCustomMetadata): Add null check. * BuildPropertyGroup.cs (AddNewProperty): Reorganized. (RemoveProperty): Added null check. * TargetCollection.cs (RemoveTarget): Added null check. * Engine.cs (UnloadProject): Added null check. * GroupingCollection.cs (Remove): Check if removed group belongs to current project. * Project.cs (AddNewItem): Implemented. (RemoveItem): Reorganized. (SetProjectExtensions): Added null check. 2007-01-14 Marek Sieradzki * BuildItemGroup.cs (Detach): Added. (RemoveItem) (RemoveItemAt): Used Detach (). * BuildItem.cs: Made FromXml and HasParent internal and added ParentItem and ParentItemGroup properties (internal). (Detach): Added. * GroupingCollection.cs (Remove): Used Detach (). * Project.cs (ctor): Added PreserveWhitespace = false to get formatted text on Save (). (GetEvaluatedItemsByNameIgnoringCondition) (GetEvaluatedItemsByName) (GetEvaluatedProperty): Reevaluate if needed. (RemoveItem) (RemoveAllItemGroups) (RemoveAllPropertyGroups): Implemented. (DoLoad): Added closing of TextReader. 2007-01-12 Marek Sieradzki * BuildPropertyGroup.cs: Don't trigger reevaluation just after a change but just mark that it needs it. * Project.cs: Reevaluate when it needs reevaluation and one of Evaluated* properties is used. 2007-01-12 Marek Sieradzki * Target.cs: Throw an exception when is not last element in target. * BuildPropertyGroup.cs (RemoveProperty): Remove from XML. * TargetCollection.cs: If a target is already there replace it with new target. * BuildProperty.cs: Added XmlElement property. 2007-01-12 Marek Sieradzki * ImportCollection.cs: Don't add imports that are already added. * BuildItemGroup.cs: MonoTODOs. * ConditionParser.cs (ParseAndEvaluate): Throw an exception when condition can't be evaluated to bool. * BuildPropertyGroup.cs (Evaluate): Simplify. 2007-01-10 Marek Sieradzki * BuildWhen.cs: Moved BindToXml () code to ctor. * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal property needed for removing groups. * Engine.cs: Added StartBuild () that logs build start when Build () was first called. * GroupingCollection.cs: Added Remove () for item and property groups. * Project.cs (AddNewImport): Implemented. (AddNewItemGroup): Implemented. (AddNewPropertyGroup): Implemented. (AddNewUsingTaskFromAssemblyFile): Implemented. (AddNewUsingTaskFromAssemblyName): Implemented. (RemoveItemGroup): Implemented. (RemovePropertyGroup): Implemented. 2007-01-10 Marek Sieradzki * BuildItemGroup.cs (Clear): Remove from XML. * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add to Project.EvaluatedProperties. (Clear): Remove from XML. 2007-01-09 Marek Sieradzki * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory) reserved property. 2007-01-08 Marek Sieradzki * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by Add () calls when processing a project from Import and evaluate_iterator for evaluation. 2007-01-08 Marek Sieradzki * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName and prepend relative directory of importing project to full path of imported project. 2007-01-08 Marek Sieradzki * BuildWhen.cs, BuildPropertyGroupCollection.cs, BuildItemGroupCollection.cs, Project.cs: Track API changes. * GroupingCollection.cs: Now it needs Project reference so added it. * BuildTask.cs: Formatting. * InvalidProjectFileException.cs: Use MS' names in GetObjectData (). * ConditionParser.cs (ParseAndEvaluate): Added. * BuildItem.cs: Changed exception message. 2007-01-02 Marek Sieradzki * BuildWhen.cs, BuildPropertyGroupCollection.cs, BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs: GroupingCollection doesn't need Project reference. * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting * BuildItemGroup.cs: Added new readOnly parameter to ctor. (Project.EvaluatedItems is a read only item group.) (ReplaceWith): Added. * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in global property group causes reevaluation of its project. * Project.cs: ProcessXml () is internal and can be "safely" invoked by other classes. * OldExpression.cs: Removed. * BuildProperty.cs (Evaluate): Simplified. * ChangeType.cs (TemporaryTransform): Simplified. * BuildItem.cs: There are now 3 types of build items: from XML, having parent from XML, virtual. Added SplitParentItem (). 2006-12-20 Marek Sieradzki * Utilities.cs: Added Unescape (). * BuildItemGroup.cs, BuildItem.cs: Pass null project to BuildItem.Evaluate () to "evaluate" virtual items added to virtual item groups (at the moment just unescape). * Expression.cs (CopyToExpressionList): Unescape strings. 2006-12-19 Marek Sieradzki * Target.cs (ctor): Added ImportedProject argument and removed set_IsImported. (AddNewTask): Implemented. * TargetCollection.cs (AddNewTarget): Implemented. * Project.cs: Track API changes. 2006-12-19 Marek Sieradzki * Target.cs (Build): Don't throw anything in case of error, just return false. * BuildItemGroup.cs (set_Condition): Throw an exception if group is not from XML. * BuildItem.cs: More meaningfull messages in RemoveMetadata () and SetMetadata (). * BuildProperty.cs (ToString): Throw an exception if property is not from XML. (op_Explicit): Added a null check. * Engine.cs: Better error message. * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to IndexOutOfRangeException. * Project.cs (DoLoad, Load): Move try/catch to DoLoad (). (MarkProjectAsDirty): Set time. 2006-12-18 Marek Sieradzki * BuildItemGroup.cs (Clone): Throw exception. * Project.cs (Load): Throw InvalidProjectFileException if anything goes wrong. 2006-12-16 Marek Sieradzki * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString () and ConvertToITaskItemArray (). 2006-12-16 Marek Sieradzki * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed classes that were public in Beta 2 and aren't used. * Expression.cs: Added replacement for parsing expressions char by char. It uses regexes to find item/property/metadata references in given text. * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs, Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs, BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes. * ConditionRelationalExpression.cs: Formatting. * OldExpression.cs: Commented everything. * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved parsing to Expression. * BuildItem.cs: Check if project is from XML in set_Condition and set_Exclude. * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to Project.ctor. * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we can evaluate expression in CanEvaluateToBool (). 2006-12-12 Marek Sieradzki * BuildItemGroup.cs (ctor): Add reference to ImportedProject from which item group is imported. * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor (). 2006-12-11 Marek Sieradzki * BuildWhen.cs, BuildPropertyGroupCollection.cs, BuildItemGroupCollection.cs: Little changes related to GroupingCollection. * ImportCollection.cs: Use GroupingCollection not an internal list. * Import.cs (Evaluate): Split to functions and check if EvaluatedProjectPath is empty. * GroupingCollection.cs, Project.cs: Move evaluation to GroupingCollection. Change algorithm to use 2 passes: first for property groups and imports and second for item groups. 2006-12-11 Marek Sieradzki * TaskEngine.cs, ItemReference.cs: Use IDictionary not IDictionary. * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was evaluated to false because we want to add every item to Project.EvaluatedItemsByNameIgnoringCondition. * Project.cs (Build): Don't throw an exception just return false. (GetEvaluatedProperty): Avoid NullReferenceException. (SetProjectExtensions): Implemented. 2006-12-08 Marek Sieradzki * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed. * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs, BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs, Engine.cs, GroupingCollection.cs, Project.cs: Reformatted. * ImportCollection.cs: Added a note. 2006-12-07 Marek Sieradzki * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty (). * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo (UsingTask[] array, int index) * TaskEngine.cs: Reformatted PublishOutput () and added copying of items to Project.EvaluatedItems in PublishItemGroup (); * BuildItemGroup.cs: Added [MonoTODO]. * UsingTask.cs: Used expression for AssemblyFile to get around problems with '\' and '/'. * BuildItem.cs (ctor): Added null checks. (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata. (SetMetadata): Don't escape evaluatedMetadata and escape unevaluatedMetadata only when treatPropertyValueAsLiteral. * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use FromXml () instead of null checks. (SetProperty): Escape propertyValue when it is literal. * BuildProperty.cs: Changed exception message. * Project.cs: Added XmlNamespaceManager and XmlNamespace internal properties. (GetProjectExtensions): Implemented. 2006-12-05 Marek Sieradzki * BuildTask.cs: Remove [MonoTODO], add exception throwing in GetParameterValue (), use expressions in ContinueOnError. * ConditionFactorException.cs: Throw InvalidProjectFileException () instead of InvalidOperationException (). * ImportCollection.cs: Implement CopyTo (). * Target.cs: Remove redundant variables (XmlAttributes), return String.Empty in DependsOnTargets, add a null check in RemoveTask (). * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO]. * Import.cs: Throw an exception when file does not exist. * Target.cs: Use StringComparer.InvariantCultureIgnoreCase. * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll need to treat item as a token probably 2006-12-04 Marek Sieradzki * Import.cs: Check for project.FullFileName (Path.DirectoryName would throw an exception). * BuildItemGroupCollection.cs: Changed exception types. 2006-10-14 Marek Sieradzki * Engine.cs: Removed redundant cast. * BuildWhen.cs: * UsingTaskCollection.cs: * ImportCollection: * BuildChoose.cs: * BuildItem.cs: * TargetCollection.cs: Comment unused variable. * ConditionTokenizer.cs: Simplified checking if current token is a keyword. * Target.cs: Removed old code. 2006-10-08 Marek Sieradzki * Target.cs: Changed "" to String.Empty. * TaskEngine.cs: Don't try to convert a parameter to specific type if string was evaluated to String.Empty. * InternalLoggerException.cs: * InvalidProjectFileException.cs: Added LinkDemand before GetObjectData (). * ConsoleLogger.cs: Changed "" to String.Empty. * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced with change to generics). * Project.cs: Made Build () throw more meaningful exception. 2006-10-06 Marek Sieradzki * Target.cs: Reformatted. * TaskEngine.cs: Removed redundant code. * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty (). * Engine.cs: Made BuildProjectFile () load project file if it's not loaded yet. 2006-09-21 Marek Sieradzki * ConditionRelationalExpression.cs: Change comparers to case insensitive. * ImportCollection.cs: Add NotImplementedExceptions. * BuildPropertyGroup.cs: Reformatted a bit. * BuildProperty.cs: The same. * Project.cs: Moved evaluation of imports before evaluation of properties. This may "work" until importing projects is redesigned but probably isn't correct. 2006-09-20 Marek Sieradzki * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements (like comments) * BuildItemGroup.cs: Change return to continue. 2006-09-20 Marek Sieradzki * ConditionParser.cs: Copyright note. * ExpressionCollection.cs: Fixed arrays passing. 2006-08-06 Marek Sieradzki * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs, Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs, BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs, TargetCollection.cs, Engine.cs, Project.cs: Started to use generics. 2006-06-25 Marek Sieradzki * Token.cs: Changed names: removed "than". * ConditionRelationalExpression.cs: Added. * ConditionFactorExpression.cs: Added. * BuildItemGroup.cs: Changed Condition property return value to return String.Empty instead of null. * ConditionParser.cs: Added support for parsing relational expressions and factors. * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate () and CanEvaluateToBool (), CanEvaluateToNumber () and CanEvaluateToString (). * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed appropriately to ConditionExpression base class. * ConditionTokenizer.cs: Added null check and changed names in enums: removed "than". * ConditionNotExpression.cs: Added. * BatchingImpl.cs: Changed to use BoolEvaluate (). * Project.cs: Added checks for condition. 2006-06-22 Marek Sieradzki * ConditionalTokenizer.cs, ConditionalExpression.cs, ConditionalParser.cs: Changed name, removed -al. * ConditionExpression.cs: Added Evaluate (). * ConditionOrExpression.cs, ConditionAndExpression.cs: Added. * BatchingImpl.cs: Added check if task should be executed. 2006-06-14 Marek Sieradzki * UsingTask.cs: Changed properties to return null on empty attribute. * UsingTaskCollection.cs: Added object to SyncRoot. * BuildPropertyGroup.cs: Added NotImplementedException throwing. 2006-06-02 Marek Sieradzki * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs: Fixed to match the tests. 2006-05-27 Marek Sieradzki * Utilities.cs: Implemented Escape (). * BuildItem.cs: Added null checks. * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property. * Project.cs: Commented out redundant Evaluate (). * BuildChoose.cs: Minor changes. 2006-05-22 Marek Sieradzki * Token: Added new few missing tokens. * Target.cs, Project.cs: Patch from Matthew Metnesky. * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs, ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs, ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs, LiteralTokenizer.cs: Removed literal expression parsing based on tokenizer and parser. It needs to be done by regex. Moved tokenizer to ConditionalTokenizer.cs. 2006-05-05 Marek Sieradzki * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs, ItemReference.cs, PropertyReference.cs: Changed name of *Reference methods converting reference to string from ToString () to ConvertToString () to avoid mistakes like using ToString () provided by default. 2006-05-03 Marek Sieradzki * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs, Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs, PropertyReference.cs, BuildProperty.cs: Changed Expression to OldExpression and changed To* functions to one ConvertTo (). * TaskEngine.cs: Fixed PublishOutput (). * OldExpression.cs: Added. It will be temporarily used before LiteralExpression will be written using Tokenizer. * Tokenizer.cs, Token.cs, ExpressionCollection.cs, ExpressionParseException.cs, LiteralExpression.cs: Added. 2006-04-24 Marek Sieradzki * ImportedProject.cs: Removed warning. * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of default tasks. 2006-04-24 Marek Sieradzki * Project.cs: Removed unnecessary variable. * Engine.cs: Added fixme. 2006-04-14 Marek Sieradzki * BuildItem.cs: Moved checking if metadata name is reserved to internal class (Mono.XBuild.Utilities.ReservedNameUtils). 2006-04-14 Marek Sieradzki * BuildTask.cs: Removed unnecessary variable. * Engine.cs: Added logging of the build start. * Project.cs: Removed unnecessary variable. 2006-04-07 Marek Sieradzki * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed. 2006-03-29 Marek Sieradzki * BuildItem.cs, BuildItemGroup.cs: Coding style fixes. 2006-03-29 Crestez Leonard * BuildItem.cs: Fix typo? 2006-03-29 Marek Sieradzki * InternalLoggerException.cs, InvalidProjectFileException.cs, Engine.cs, Project.cs: Coding style fixes. 2006-03-29 Crestez Leonard * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items. 2006-03-29 Crestez Leonard * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed to pass tests. Wrote serialization constructor. * Engine.cs, Project.cs: Global engine and project unloading, test and formatting fixes. 2006-03-28 Marek Sieradzki * UsingTask.cs: Formatting changes. 2006-03-27 Crestez Leonard * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched to lists instead of hashtables. * Import.cs: Cleaned up, moved importing from Project.cs * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes. * Engine.cs: Cleaned up properties. * Project.cs: Moved importing to Import.cs, cleaned up properties, Separated evaluation and loading. 2006-03-21 Crestez Leonard * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs, BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml binding and evaluation, merge xml binding in constructors. * DirectoryScanner.cs: Includes CAN be empty. * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF. * ConsoleLogger.cs: Fix compilation warning. 2006-03-19 Marek Sieradzki * BuildPropertyGroup.cs, Expression.cs: Coding style fixed. 2006-03-18 Marek Sieradzki * Engine.cs: API cleanup. 2006-03-18 Crestez Leonard * Project.cs: Cleaned up add. * Expression.cs: Hacked to transform \ and / to path separators. * BuildPropertyGroup.cs: Small cleanup. * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project reference. 2006-03-11 Marek Sieradzki * BatchingImpl.cs: Updated with BuildTask instead of TaskElement. * BuildItem.cs: Updated for new API and fixed crashing on non-existent files. * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs, BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs, Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new API. * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items. * TaskElement.cs: Temporarily removed. * Xml.cs: Changed to static. 2006-02-26 Marek Sieradzki * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs, IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs, ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs, IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs, ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs, IBuildPropertyGroupCollection.cs: Removed. 2006-02-26 Marek Sieradzki * BuildItem.cs: Removed IBuildItem references. * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and IBuildItemGroup references. Changed Evaluate to internal. * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection reference and hidden constructors. * BuildProperty.cs: Removed IBuildProperty reference. * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and IBuildPropertyGroup references. Changed Evaluate to internal. * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection reference and hidden constructors. * ConsoleLogger.cs: Updated names of event handlers. * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and Escape. Added UnloadAllProjects () and UnloadProject (). * FileLogger.cs: Removed ApplyParameter (). * GroupingCollection.cs: Hidden. * InvalidProjectFileException.cs: Removed HasBeenLogged property. * ItemPropertyGroupingBase.cs: Commented. * ProcessingPass.cs: Hidden. * Project.cs: Removed IProject reference. Changed CurrentEncoding to Encoding. * Target.cs: Removed ITarget reference. * TargetCollection.cs: Removed ITargetCollection reference. * TaskElement.cs: Removed ITaskElement reference. * TaskEngineAssemblyResolver.cs: Hidden. * Utilities.cs: Made static class, removed CheckPath (), ValidateCulture (), GetSupportedCultures () and added Escape (). 2006-02-24 Marek Sieradzki * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new API. 2005-09-22 Marek Sieradzki * Project.cs: Added MonoTODO attributes. * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs, ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs, IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs, BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs, SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs, BuildItemGroup.cs, InvalidProjectFileException.cs, BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs, Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs, PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs, ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs, IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs, IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs, ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs, ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs, IBuildItemGroup.cs, BuildProperty.cs, Engine.cs, IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs, BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs, ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0. 2005-09-21 Marek Sieradzki * TaskDatabase.cs: Change Shared to Framework. * BuildPropertyGroup.cs, Project.cs: Remove obsoleted CaseInsensitiveHashCodeProvider 2005-09-11 Marek Sieradzki * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName. * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved property. 2005-09-09 Marek Sieradzki * InternalLoggerException.cs: Changed protected fields to private. 2005-09-03 Marek Sieradzki * Engine.cs: Added check for globalProperties. * Project.cs: Added using path from importedProject.FullFileName when adding UsingTask elements. 2005-09-01 Marek Sieradzki * TaskElement.cs: Changed ReflectedType to PropertyType. * ChangeType.cs (TransformToString): Changed to pass proper Type to TemporaryTransform. 2005-09-01 Marek Sieradzki * BuildPropertyGroup.cs: Added check for PropertyType when adding a new property. * BuildProperty.cs: Organized PropertyType enum. * Engine.cs: Added setting CommandLine PropertyType of global properties. 2005-08-31 Marek Sieradzki * InvalidProjectFileException.cs: Changed Message property. * ChangeType.cs (TransformToString): Added separator between items. * TaskEngineAssemblyResolver.cs: Formatting. 2005-08-31 Marek Sieradzki * DirectoryScanner.cs: Added. * BuildItem.cs: Moved file scanning code to DirectoryScanner. * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression. * Project.cs: Removed Evalute* (). 2005-08-30 Marek Sieradzki * Target.cs: Formatting. * Expression.cs: Added check if array == null. * BuildItem.cs: Removed 'break' to remove warnings. * ConsoleLogger.cs: Formatting. * Engine.cs: Added handling of default target(s). * Project.cs: Added handling of default target(s). 2005-08-29 Marek Sieradzki * TaskElement.cs: Added check for parameters. * Target.cs: Added logging of target skipping. * Expression.cs: Changed returning object[] to string[], bool[]... in ToArray (). * ItemReference.cs: Fixed for item references without custom separators. * BatchingImpl.cs: Added real inputs/outputs checking. * Engine.cs: Moved global properties setting. * Project.cs: Moved global properties setting. 2005-08-27 Marek Sieradzki * Target.cs: Added checks for target existence. * BuildItemGroup.cs: Changed to use transforms. * MetadataReference.cs: Wrote real implementation. * ItemReference.cs: Rewritten to use transforms. * BuildItem.cs: Changes for transforms and metadata. * ConsoleLogger.cs: Added verbosity checking and fixed error/warning formatting. * Project.cs: Fixed project importing. * ImportedProject.cs: Changed to throw exceptions instead of returning bool. 2005-08-24 Marek Sieradzki * Engine.cs: Removed FIXME. * Project.cs: Splitted ProcessElements and added project importing. * ImportedProject.cs: Rewritten. 2005-08-20 Marek Sieradzki * TaskElement.cs: Added getting of objects of every type. * BuildItemGroup.cs: Added ToITaskItemArray (). * Expression.cs: Implemented part that is not using metadata. * ItemReference.cs: Implemented parsing item references. Need to fix validity checking. * BuildItem.cs: Fixed ToITaskItem (). * PropertyReference.cs: Implemented parsing property references. This also needs validity checking. 2005-08-19 Marek Sieradzki * TaskElement.cs: Added Output element handling. * Target.cs: Cleaned up. * BuildItemGroup.cs: Added creating BuildItem from TaskItem. * Expression.cs, MetadataReference.cs, PropertyReference.cs, ItemReference.cs, ChangeType.cs: Added. * BuildItem.cs: Added creating BuildItem from TaskItem. * BuildPropertyGroup.cs: Small changes. * BatchingImpl.cs: Fixed to return real task execution result. * BuildProperty.cs: Fixed FinalValue property. * Engine.cs: Reformatted logging. * Project.cs: Added check to EvaluateProperty. 2005-08-16 Marek Sieradzki * TaskElement.cs: Added part of execution engine. * BuildEngine.cs: Added handling of TaskStarted and TaskFinished. * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement. * EventSource.cs: Added FireTaskStarted and FireTaskFinished. * BuildItem.cs: Added handling of built-in metadata and referencing Items by name not FullName. * BatchingImpl.cs: Added temporary task "batching". * ConsoleLogger.cs: Added temporary workaround to not show sender. * Project.cs: Added Evaluate. It will be moved to separate class. 2005-08-14 Marek Sieradzki * EventSource.cs, Engine.cs: Added CriticalEvents. * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs, Project.cs: Added some support for items. * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up. 2005-08-12 Marek Sieradzki * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading of properties. 2005-08-12 Marek Sieradzki * BatchingImpl.cs: Added. * BuildWhen.cs, BuildEngine.cs, Target.cs, BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs, BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs, TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs, GroupingCollection.cs: Updated. 2005-08-06 Marek Sieradzki * BuildChoose.cs, BuildEngine.cs, BuildItem.cs, BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs, BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs, BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs, EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs, GroupingCollection.cs, HostLogger.cs, ImportedProject.cs, InternalLoggerException.cs, InvalidProjectFileException.cs, ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs, ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs, TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs, TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs: Initial check-in of implementations. 2005-07-16 Marek Sieradzki * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs, IBuildItemGroupCollection.cs, IBuildProperty.cs, IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs, ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs, IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs, IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs: Initial check-in of interfaces and a syntax file, real classes are changing a lot so I'll wait a moment with checking them in.