1 2009-10-02 Ankit Jain <jankit@novell.com>
3 * Expression.cs (Parse): Don't change '/' to '\\', not required.
5 2009-10-01 Ankit Jain <jankit@novell.com>
7 * Project.cs (AddImport): Show the correct source file name, when
8 the import is in the main project file.
10 2009-10-01 Ankit Jain <jankit@novell.com>
13 * Import.cs (.ctor): Evaluate and set EvaluatedProjectPath to
14 the full path of the imported project here itself, instead of ..
16 * ImportCollection.cs (Add): Use import.EvaluatedProjectPath .
18 * Project.cs (AddImport): Don't process if condition is false.
19 Warn if a circular reference is detected, and ignore the import.
21 2009-09-29 Ankit Jain <jankit@novell.com>
23 * GroupingCollection.cs (Evaluate): Mark internal.
24 * Project.cs (AddImport): Only evaluate the properties,
25 till before the import.
27 2009-09-29 Ankit Jain <jankit@novell.com>
29 * Project.cs (DoLoad): Don't use XmlReader.Create, for loading
30 the project xml, as returned Xml*Reader normalizes the newlines.
31 Instead directly use the TextReader with XmlDocument.Load ().
33 2009-09-27 Ankit Jain <jankit@novell.com>
35 * ConditionParser.cs: Show the condition being parsed in the
38 2009-09-26 Ankit Jain <jankit@novell.com>
40 * Expression.cs: Allow '-' in item, property and metadata names.
42 2009-09-26 Ankit Jain <jankit@novell.com>
44 * Project.cs (Evaluate): Split into this and ..
45 (PrepareForEvaluate): .. this.
46 (AddImport): Evaluate the current set of properties/items etc,
47 before processing the imported project. Honor the Condition
49 (ProcessProjectAttributes): Update MSBuildProjectDefaultTargets
51 * GroupingCollection.cs (Evaluate): Don't evaluate Imports here.
52 * BuildItemGroup.cs (Evaluate): Evaluate only once.
53 * BuildPropertyGroup.cs (Evaluate): Evaluate only once.
55 2009-09-26 Ankit Jain <jankit@novell.com>
57 * Project.cs: Get InitialTargets from the imported projects also.
58 The combined list of targets are executed, in the order they were
60 DefaultTargets are also read in from imported projects, and the first
61 non-empty DefaultTargets found is used.
63 2009-09-25 Ankit Jain <jankit@novell.com>
65 * Project.cs (BuildTarget): Handle skipped targets.
67 2009-09-25 Ankit Jain <jankit@novell.com>
69 * Project.cs (DoLoad): If a VS2003 project is detected, then throw
70 InvalidProjectFileException with useful error.
72 2009-09-24 Ankit Jain <jankit@novell.com>
74 * Project.cs (Load): Emit the .sln.proj file only if env var
75 XBUILD_EMIT_SOLUTION is set.
77 2009-09-24 Ankit Jain <jankit@novell.com>
79 * Project.cs (GetKeyForTarget): Make target name, case insensitive.
81 2009-09-24 Ankit Jain <jankit@novell.com>
83 * Project.cs (InitializeProperties): Set 'MSBuildProjectDefaultTargets'
86 2009-09-10 Ankit Jain <jankit@novell.com>
88 * BuildItem.cs (Evaluate): Metadata from "Include" should be,
89 preserved, so use ConvertTo ITaskItem, rather than string.
90 Ensure that the new items have the metadata from references _in_
91 Include, and the metadata of _this_ builditem.
92 * DirectoryScanner.cs (Includes): Change to a array of ITaskItem.
93 (MatchedFilenames): Rename to ..
94 (MatchedItems): .. this, and change type of array of ITaskItem.
95 Ensure that metadata of items in Includes are retained in the
98 * BuildItemGroup.cs (ConvertoToITaskItemArray): Add 'separator'
99 param. If separator is present, then just return a "Join'ed"
100 string as the single task item.
101 * ItemReference.cs: Track api changes.
103 * BuildProperty.cs (ConvertToITaskItemArray): Split the value,
104 as we need separate task items.
106 2009-09-01 Ankit Jain <jankit@novell.com>
109 * Project.cs (BuildTarget): Move caching of target outputs to ..
110 * Target.cs: .. here. Move LogTargetSkipped also here.
111 Ensure that caching happens for target dependencies also.
113 2009-09-01 Ankit Jain <jankit@novell.com>
115 * DirectoryScanner.cs (Scan): Ignore empty entries in includes and
118 2009-09-01 Ankit Jain <jankit@novell.com>
120 * Expression.cs (ParseOptions): New enum. Replace the bool params
121 of exression.Parse with this. Add option to control expansion of
123 (CopyToExpressionCollection): Track api changes.
125 Update all expr.Parse calls to use the new enum.
126 * BuildItem.cs, BuildProperty.cs, BuildTask.cs, Import.cs,
127 Target.cs, TargetBatchingImpl.cs, UsingTask.cs: Track api changes.
129 * BatchingImplBase.cs: Track api changes. Allow metadata refs
131 * ConditionFactorExpression.cs: Allow metadata refs in conditions.
132 * ItemReference.cs: Allow metadata in transforms.
133 * TaskEngine.cs: Allow metadata refs.
135 * MetadataReference.cs (.ctor): Add a 'original string' param.
137 2009-08-29 Ankit Jain <jankit@novell.com>
139 * Expression.cs (ExpressionOptions): New.
141 Introduce a ExpressionOptions argument to all ConvertTo*
142 methods. Implement the rule: in evaluation phase, expand
143 all items completely, but dont expand item refs in properties.
144 At other times, expand the item refs in the properties.
145 See comments in Expression.cs, for a full explanation.
146 * BuildItem.cs: Track api changes.
147 * BuildItemGroup.cs: Likewise.
148 * BuildProperty.cs: Track api changes. Handle self-references.
149 * BuildTask.cs: Track api changes.
150 * IReference.cs: Add ExpressionOptions param.
151 * ItemReference.cs: Track api changes.
152 * PropertyReference.cs: Likewise.
153 * MetadataReference.cs: Likewise.
154 * ExpressionCollection.cs: Track api changes. Add support for
155 converting all primitive types and DateTime, instead of a fixed
157 * Project.cs (GetMetadataBatched): Use the evaluated metadata.
158 * TaskBatchingImpl.cs: Handle the case when batching is required,
159 but no items are available.
161 * TaskEngine.cs: Throw on unsupported types. Correctly handle
162 properties in case of empty values.
164 2009-08-26 Ankit Jain <jankit@novell.com>
166 * Expression.cs: Correctly handle a item reference with transform
167 when allowItems is false. If item ref is ignored, then the transform
168 will get incorrectly matched as a metadata ref.
169 * ItemReference.cs (.ctor): Add a @original_string param.
171 2009-08-26 Ankit Jain <jankit@novell.com>
173 * Utilities.cs (UnescapeFromXml): New. From md.
174 * BuildProperty.cs (.ctor): Unescape xml codes from the InnerXml
175 of the property element.
177 2009-08-26 Ankit Jain <jankit@novell.com>
179 * BuildProperty.cs (ConvertToString): New.
180 (ConvertoToITaskItemArray): New. Parse the property value.
181 * PropertyReference.cs (ConvertToString): Use BuildProperty's
183 (ConvertoToITaskItemArray): Likewise.
185 2009-08-21 Ankit Jain <jankit@novell.com>
187 * Engine.cs (EndProjectBuild): Use the @succeeded argument
188 instead of hardcoding 'true'.
189 * Target.cs (Build): Add an overload to return executeOnErrors
190 value for the target executed. If building dependencies fails,
191 and executeOnErrors is true, then execute OnError tasks.
192 Add the new param to ..
193 (BuildDependencies): this, ..
195 (GetDependencies): Improve error message and variable name.
196 (ExecuteOnErrors): Honor OnError tag's Condition also.
197 * TaskBatchingImpl.cs (Run): Correctly set executeOnErrors param.
199 2009-08-20 Ankit Jain <jankit@novell.com>
202 * Project.cs (Load): Add support for loading .sln files.
204 2009-08-20 Ankit Jain <jankit@novell.com>
206 * BuildTask.cs (Execute): Use task_logger only after the task
207 has been initialized. Catch and report task loading errors.
208 * Target.cs (DoBuild): Dont rethrow the exception, and emit
209 the stacktrace as a low importance message.
211 2009-08-18 Ankit Jain <jankit@novell.com>
213 * BatchingImplBase.cs: Make the item name lookups and metadata be case
215 * TaskDatabase.cs: Likewise.
216 * TaskEngine.cs: Make property name looks, case insensitive.
218 2009-08-09 Miguel de Icaza <miguel@novell.com>
220 * ConsoleLogger.cs: Change the format of the error and warnings
221 strings to work when invoked inside Emacs by not rendering the
222 column if available, by using lowercase "error"/"warning" strings
223 instead of camelcased versions and to not have unnecessary padding.
225 2009-07-31 Ankit Jain <jankit@novell.com>
227 * ConsoleLogger.cs: Keep track of all the errors and warnings
228 and show them at the end.
230 2009-07-31 Ankit Jain <jankit@novell.com>
232 * Target.cs (Build): Log a message if a target is skipped.
234 * BuildTask.cs (Execute): Log error if task execution fails.
236 2009-07-30 Ankit Jain <jankit@novell.com>
238 * Engine.cs (.ctor): Set default BinPath. Currently this assumes
239 v2.0, this will change when multi-targeting lands.
241 2009-07-30 Ankit Jain <jankit@novell.com>
243 * Project.cs (InitializeProperties) Set 'MSBuildProjectFile' and
244 'MSBuildProjectName' properties.
246 2009-07-28 Ankit Jain <jankit@novell.com>
248 * TaskEngine.cs (Prepare): Fix formatting mistake.
249 * ConsoleLogger.cs: Emit "-- FAILED" also when project/target building
250 fails. Also, emit result of project at Normal verbosity level.
252 2009-07-23 Ankit Jain <jankit@novell.com>
255 * Project.cs (ExtensionsPath): New.
256 (InitializeProperties): Set "MSBuildExtensionsPath" property.
258 2009-06-12 Ankit Jain <jankit@novell.com>
261 * ExpressionCollection.cs (ConvertToITaskItemArray): Whitespace around a
262 itemref is allowed if the prev/next element is ";".
264 2009-06-12 Ankit Jain <jankit@novell.com>
266 * Utilities.cs (FromMSBuildPath): Return null if the path contains
267 "drive:" only on windows.
269 2009-06-07 Ankit Jain <jankit@novell.com>
271 * Target.cs (Outputs): Use ITaskItem[] for conversion, to retain
274 2009-05-29 Ankit Jain <jankit@novell.com>
276 Correctly handle global properties. Correctly log
277 project/build events.
279 * BuildPropertyGroup.cs (Clone): Implement.
280 * Engine.cs (globalProperties): Rename to ..
281 (global_properties): .. this.
282 (currentlyBuildingProjectsStack): New. Used to correctly
283 log and raise project/build start/finish events.
284 (BuildProjectFile): Override any project global properties
285 with explicitly specified ones, here in the param @globalProperties.
286 Mark project for reevaluation, which will update the engine's
287 global properties also.
288 Reset both engine and project's old global properties at the end.
289 (UnregisterAllLoggers): Log build finished only if we are currently
291 (StartBuild): Rename to ..
292 (StartProjectBuild): .. this. Keeps track of the projects being built
293 in the new stack, and logs project and build events accordingly.
294 (EndProjectBuild): New. Uses the stack to keep track of projects
295 finishing builds, and raises project and build events accordingly.
296 (LogProjectStarted): Move here from Project.cs
297 (LogProjectFinished): Likewise.
299 * Project.cs (Build): Log start of project build.
300 Set current directory to the project file's dir, and reset at end.
301 (BuildInternal): Don't log here, its done in Build.
302 (BuildTarget): Already built targets are keyed by the set of global
303 properties that they were built with.
304 (GlobalPropertiesToString): New.
305 (ResetBuildStatus): 'building' must be true to allow built targets to be reset.
306 (RemoveBuiltTargets): Initialize builtTargetKeys in .ctor
307 (Evaluate): Remove built targets only if we are currently building and
308 build settings are None.
309 Merge project's global properties with those of the parent engine.
310 Add missing properties from engine's global properties.
311 (LogTargetSkipped): Fix format string, add the reqd argument.
313 2009-05-29 Ankit Jain <jankit@novell.com>
315 * ConditionFunctionExpression.cs: Add 'HasTrailingSlash' function.
316 (HasTrailingSlash): New.
318 2009-05-12 Ankit Jain <jankit@novell.com>
320 * Project.cs (.ctor): Init timeOfLastDirty.
322 2009-05-05 Miguel de Icaza <miguel@novell.com>
324 * Contribution from Martin Brenn to fix #498154.
326 2009-04-27 Ankit Jain <jankit@novell.com>
329 * Engine.cs (BuildProjectFile): Set project's GlobalProperties to the
330 one passed as argument.
332 2009-04-27 Ankit Jain <jankit@novell.com>
334 * TaskEngine.cs (Prepare): Emit a useful error message property value
335 can't be converted to required type.
337 2009-04-27 Ankit Jain <jankit@novell.com>
339 * ExpressionCollection.cs (ConvertToObject): Allow true/on/yes
340 as valid true values for bool, and corresponding for false.
342 2009-03-27 Jonathan Chambers <joncham@gmail.com>
344 * BuildWhen.cs: Add basic implementation.
345 * BuildChoose.cs: Add basic implementation.
346 * BuildItem.cs (AddEvaluatedItem): Add BuiltItem to
347 EvaluatedItemsIgnoringCondition.
348 * GroupingCollection.cs: Add evaluation of BuildChoose items.
350 2009-03-26 Jonathan Chambers <joncham@gmail.com>
352 * TaskDatabase.cs (RegisterTask): Search for class by name
353 if task was not found using GetType (which uses namespace).
355 2009-02-26 Ankit Jain <jankit@novell.com>
357 * Target.cs: Handle target with no tasks. Log errors.
359 2009-02-24 Ankit Jain <jankit@novell.com>
361 Lazily load UsingTask tasks.
362 * UsingTask.cs (Evaluate): Register 'this' with task database,
363 but don't load it yet. Register only if condition evaluates to true.
364 Move the load logic to ..
365 (Load): .. here. Register with the specified task database.
366 * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance
367 in a table keyed by task name, but don't load it yet.
368 (GetTypeFromClassName): Try to load UsingTask if task is not already
369 loaded. Move loading logic to ..
370 (GetTypeFromClassNameInternal): .. here.
371 (CopyTasks): Copy the usingTasks table also.
373 2009-02-23 Ankit Jain <jankit@novell.com>
375 * BuildItem.cs (AddMetadata): Allow overwriting older values.
377 2009-02-22 Ankit Jain <jankit@novell.com>
379 * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode
380 instead of XmlElement. Eg. XmlComment
382 2009-02-21 Ankit Jain <jankit@novell.com>
384 * Utilities.cs (FromMSBuildPath): Copy from monodevelop.
385 * Project.cs (Load): Use FromMSBuildPath on the path.
386 (InitializeProperties): Set "MSBuildToolsPath" also.
388 2009-02-20 Ankit Jain <jankit@novell.com>
391 * ConditionTokenizer.cs: Handle unquoted item references (with or w/o
392 transforms) in conditions.
393 * ConditionParser.cs: Parse unquoted item, property references.
394 eg. Condition = " @(Foo->'%(Extension)') == '.exe' "
395 * Token.cs (Token.ToString): Override.
396 (TokenType.Transform): Uncomment.
398 2009-02-12 Jonathan Chambers <joncham@gmail.com>
400 * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
401 no XmlElement.InnerText. This allows properties to be additional
404 2009-02-01 Ankit Jain <jankit@novell.com>
406 * BuildEngine.cs (BuildProjectFile): Use
407 BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
408 * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
409 built. Move logging of project start/finish to ..
410 * Project.cs: .. here. Build a target only if hasn't been built already.
411 Keep track of target outputs, and return those even if an already built
412 target has been invoked again.
413 Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
415 2009-01-31 Ankit Jain <jankit@novell.com>
417 * BatchingImpl.cs: Split into ..
418 * BatchingImplBase.cs: .. this,
419 * TaskBatchingImpl.cs: .. this ..
420 * TargetBatchingImpl.cs: .. and this. Implement target batching here.
422 * Target.cs (DoBuild): Use TargetBatchingImpl for building.
423 (Log*): Move to TargetBatchingImpl .
427 2009-01-30 Ankit Jain <jankit@novell.com>
429 * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
432 2009-01-29 Ankit Jain <jankit@novell.com>
434 * BuildItem.cs (child_items): Change type from BuildItemGroup to
436 (HasParent): Rename to ..
437 (HasParentItem): .. this.
438 (ParentItemGroup): Add setter.
440 * BuildItemGroup.cs (.ctor): Add overload with @project param.
442 (AddItem): Correctly set the ParentItemGroup for new build items.
443 (ParentProject): Add setter.
444 * Project.cs: Set the project for new BuildItemGroup instances.
445 * TaskEngine.cs (PublishItemGroup): Likewise.
447 2009-01-06 Ankit Jain <jankit@novell.com>
449 * Project.cs (Build): Honor InitialTargets list.
451 2009-01-06 Ankit Jain <jankit@novell.com>
453 * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
454 the property type also.
455 * MSBuild.cs (Execute): Parse 'Properties' task param to set global
458 2009-01-06 Ankit Jain <jankit@novell.com>
460 * Project.cs (Build): Correctly handle null targetNames argument.
462 2009-01-06 Ankit Jain <jankit@novell.com>
464 * Engine.cs (LogProjectStarted): Add a null check.
466 2009-01-01 Ankit Jain <jankit@novell.com>
468 * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
469 * ChangeType (ToBuildItemGroup): Add 'split' param.
471 * Expression.cs (Parse): Add a new overload with a 'split' param.
472 * ExpressionCollection.cs (Add): Add new overload for IReference,
473 remove the ones for Item/Metadata/PropertyReference.
474 (ConvertToArray): Implement correctly.
475 (ConvertToString): Track api changes.
476 (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
477 (ConvertToITaskItemArray): Implement support for concat'ing expressions.
478 (AddItemsToArray): New.
479 (ConvertToITaskItemArrayFromString): Refactor a bit.
480 (ThrowCantConcatError): New.
481 * ItemReference.cs: Update.
482 * MetadataReference.cs: Update.
483 * PropertyReference.cs (ConvertToITaskItemArray): Implement.
485 * BuildPropertyGroup.cs: Track api changes.
486 * TaskEngine.cs (PublishOutput): Improve exception message.
487 * Project.cs (DoLoad): Improve exception message. Add a null check.
489 2008-12-30 Ankit Jain <jankit@novell.com>
491 * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
492 metadata values for unqualified references.
493 (BuildItemGroupToITaskItemArray): Rename to ..
494 (BuildItemGroupToITaskItems): .. this.
497 2008-12-18 Ankit Jain <jankit@novell.com>
499 * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
501 2008-12-17 Ankit Jain <jankit@novell.com>
503 * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
504 only one instance of unique metadata value is required.
506 2008-11-22 Ankit Jain <jankit@novell.com>
508 * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
510 * MetadataReference.cs (ConvertToITaskItemArray): New.
511 * Project.cs (GetAllItemGroups): New.
513 2008-11-21 Ankit Jain <jankit@novell.com>
515 * BatchingImpl.cs: Add task batching implementation.
516 * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
517 * ExpressionCollection.cs (Count): New.
518 (ConvertToString): Handle MetadataReference.
519 * ItemReference.cs (ConvertToString):
520 (ConvertToITaskItemArray): Use the batching api.
522 * MetadataReference.cs (ConvertToString): New.
524 * Project.cs: Add api for accessing batched items and metadata.
525 * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
528 2008-10-01 Ankit Jain <jankit@novell.com>
530 * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
531 (BuildProjectFile): If filename is null (project.LoadXml) then use
533 * BuildTask.cs (InitializeTask): Track api change.
534 * Expression.cs (Parse): Skip empty entries in the expression.
536 2008-09-24 Ankit Jain <jankit@novell.com>
538 * Engine.cs: Add argument checks.
539 * Project.cs: Likewise.
541 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
543 * Project.cs (Build): Add outputs to targetOutputs.
545 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
547 * ExpressionCollection.cs (ConvertToArray): Simplify.
549 2007-03-05 Marek Sieradzki <marek.sieradzki@gmail.com>
551 * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
552 simplified. It still needs tests and refactoring.
554 2007-02-22 Marek Sieradzki <marek.sieradzki@gmail.com>
556 * BuildEngine.cs (BuildProjectFile): Don't crash on null
559 * Target.cs: Add Outputs property.
561 2007-02-20 Marek Sieradzki <marek.sieradzki@gmail.com>
563 * Target.cs (Build): Split to GetDependencies () and BuildDependencies
564 (). Support condition.
566 * BatchingImpl.cs (BatchBuildTask): Simplify.
568 2007-02-18 Marek Sieradzki <marek.sieradzki@gmail.com>
570 * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
573 * ConditionFunctionExpression.cs: Removed warnings.
575 * BuildTask.cs (Execute): Write exceptions to std err (they should be
576 logged but it's better than swallowing).
578 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
580 * ConditionTokenizer.cs: Add Putback ().
582 * ConditionParser.cs: Add parsing of functions.
584 * ConditionFunctionExpression.cs: Add.
586 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
588 * BuildPropertyGroup (SetProperty): Throw an exception when trying to
589 set property in persisted property group.
591 2007-01-29 Marek Sieradzki <marek.sieradzki@gmail.com>
593 * BuildTask.cs (Execute): Log errors that happen when invoking ITask
596 * ConsoleLogger.cs (TargetFinishedHandler)
597 (TaskFinishedHandler): Increment error count.
599 2007-01-28 Marek Sieradzki <marek.sieradzki@gmail.com>
601 * BuildItem.cs (RemoveMetadata): Remove from XML.
602 (SetMetadata): Trigger project reevaluation.
604 2007-01-26 Marek Sieradzki <marek.sieradzki@gmail.com>
606 * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
609 2007-01-23 Marek Sieradzki <marek.sieradzki@gmail.com>
611 * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
612 TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
613 BatchingImpl.cs, BuildProperty.cs: Track API changes.
615 * Expression.cs (Parse): Added allowItems parameter and made regexes
618 * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
619 will try to import a.ext when given a.EXT.
621 2007-01-21 Marek Sieradzki <marek.sieradzki@gmail.com>
623 * BuildItemGroup.cs: Store information saying what is the last item
624 group that contains build item name.
626 * Project.cs (Build): Pass empty array (build default targets).
628 2007-01-19 Marek Sieradzki <marek.sieradzki@gmail.com>
630 * Token.cs: Commented Transform and LiteralSubExpression and added
633 * ConditionParser.cs: Removed redundant casts, rewrote
634 ParseFactorExpression () and added parsing of '!'.
636 * ConditionTokenizer.cs: Always skip whitespaces when getting next
637 token (no IgnoreWhiteSpace property). Don't create a token from '->'.
638 Moved ReadChar () in front of all ifs.
640 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
642 * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
643 from XML. (not to escape items that have parents twice).
645 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
647 * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
648 (Project): Renamed to ParentProject.
650 * BuildItem.cs (ctor)
651 (CopyCustomMetadata): Add null check.
653 * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
654 (RemoveProperty): Added null check.
656 * TargetCollection.cs (RemoveTarget): Added null check.
658 * Engine.cs (UnloadProject): Added null check.
660 * GroupingCollection.cs (Remove): Check if removed group belongs to
663 * Project.cs (AddNewItem): Implemented.
664 (RemoveItem): Reorganized.
665 (SetProjectExtensions): Added null check.
667 2007-01-14 Marek Sieradzki <marek.sieradzki@gmail.com>
669 * BuildItemGroup.cs (Detach): Added.
671 (RemoveItemAt): Used Detach ().
673 * BuildItem.cs: Made FromXml and HasParent internal and added
674 ParentItem and ParentItemGroup properties (internal).
677 * GroupingCollection.cs (Remove): Used Detach ().
679 * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
681 (GetEvaluatedItemsByNameIgnoringCondition)
682 (GetEvaluatedItemsByName)
683 (GetEvaluatedProperty): Reevaluate if needed.
685 (RemoveAllItemGroups)
686 (RemoveAllPropertyGroups): Implemented.
687 (DoLoad): Added closing of TextReader.
689 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
691 * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
692 change but just mark that it needs it.
694 * Project.cs: Reevaluate when it needs reevaluation and one of
695 Evaluated* properties is used.
697 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
699 * Target.cs: Throw an exception when <OnError> is not last element in
702 * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
704 * TargetCollection.cs: If a target is already there replace it with
707 * BuildProperty.cs: Added XmlElement property.
709 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
711 * ImportCollection.cs: Don't add imports that are already added.
713 * BuildItemGroup.cs: MonoTODOs.
715 * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
716 condition can't be evaluated to bool.
718 * BuildPropertyGroup.cs (Evaluate): Simplify.
720 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
722 * BuildWhen.cs: Moved BindToXml () code to ctor.
724 * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
725 property needed for removing groups.
727 * Engine.cs: Added StartBuild () that logs build start when Build ()
730 * GroupingCollection.cs: Added Remove () for item and property groups.
732 * Project.cs (AddNewImport): Implemented.
733 (AddNewItemGroup): Implemented.
734 (AddNewPropertyGroup): Implemented.
735 (AddNewUsingTaskFromAssemblyFile): Implemented.
736 (AddNewUsingTaskFromAssemblyName): Implemented.
737 (RemoveItemGroup): Implemented.
738 (RemovePropertyGroup): Implemented.
740 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
742 * BuildItemGroup.cs (Clear): Remove from XML.
744 * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
745 to Project.EvaluatedProperties.
746 (Clear): Remove from XML.
748 2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
750 * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
753 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
755 * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
756 Add () calls when processing a project from Import and
757 evaluate_iterator for evaluation.
759 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
761 * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
762 and prepend relative directory of importing project to full path of
765 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
767 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
768 BuildItemGroupCollection.cs, Project.cs: Track API changes.
770 * GroupingCollection.cs: Now it needs Project reference so added it.
772 * BuildTask.cs: Formatting.
774 * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
776 * ConditionParser.cs (ParseAndEvaluate): Added.
778 * BuildItem.cs: Changed exception message.
780 2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
782 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
783 BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
784 GroupingCollection doesn't need Project reference.
786 * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
788 * BuildItemGroup.cs: Added new readOnly parameter to ctor.
789 (Project.EvaluatedItems is a read only item group.)
790 (ReplaceWith): Added.
792 * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
793 global property group causes reevaluation of its project.
795 * Project.cs: ProcessXml () is internal and can be "safely" invoked by
798 * OldExpression.cs: Removed.
800 * BuildProperty.cs (Evaluate): Simplified.
802 * ChangeType.cs (TemporaryTransform): Simplified.
804 * BuildItem.cs: There are now 3 types of build items: from XML, having
805 parent from XML, virtual. Added SplitParentItem ().
807 2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
809 * Utilities.cs: Added Unescape ().
811 * BuildItemGroup.cs, BuildItem.cs: Pass null project to
812 BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
813 groups (at the moment just unescape).
815 * Expression.cs (CopyToExpressionList): Unescape strings.
817 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
819 * Target.cs (ctor): Added ImportedProject argument and removed
821 (AddNewTask): Implemented.
823 * TargetCollection.cs (AddNewTarget): Implemented.
825 * Project.cs: Track API changes.
827 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
829 * Target.cs (Build): Don't throw anything in case of error, just
832 * BuildItemGroup.cs (set_Condition): Throw an exception if group is
835 * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
838 * BuildProperty.cs (ToString): Throw an exception if property is not
840 (op_Explicit): Added a null check.
842 * Engine.cs: Better error message.
844 * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
845 IndexOutOfRangeException.
847 * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
848 (MarkProjectAsDirty): Set time.
850 2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
852 * BuildItemGroup.cs (Clone): Throw exception.
854 * Project.cs (Load): Throw InvalidProjectFileException if anything
857 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
859 * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
860 and ConvertToITaskItemArray ().
862 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
864 * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
865 classes that were public in Beta 2 and aren't used.
867 * Expression.cs: Added replacement for parsing expressions char by
868 char. It uses regexes to find item/property/metadata references in
871 * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
872 Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
873 BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
875 * ConditionRelationalExpression.cs: Formatting.
877 * OldExpression.cs: Commented everything.
879 * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
880 parsing to Expression.
882 * BuildItem.cs: Check if project is from XML in set_Condition and
885 * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
888 * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
889 can evaluate expression in CanEvaluateToBool ().
891 2006-12-12 Marek Sieradzki <marek.sieradzki@gmail.com>
893 * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
894 which item group is imported.
896 * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
898 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
900 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
901 BuildItemGroupCollection.cs: Little changes related to
904 * ImportCollection.cs: Use GroupingCollection not an internal list.
906 * Import.cs (Evaluate): Split to functions and check if
907 EvaluatedProjectPath is empty.
909 * GroupingCollection.cs, Project.cs: Move evaluation to
910 GroupingCollection. Change algorithm to use 2 passes: first for property
911 groups and imports and second for item groups.
913 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
915 * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
916 BuildItemGroup> not IDictionary.
918 * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
919 evaluated to false because we want to add every item to
920 Project.EvaluatedItemsByNameIgnoringCondition.
922 * Project.cs (Build): Don't throw an exception just return false.
923 (GetEvaluatedProperty): Avoid NullReferenceException.
924 (SetProjectExtensions): Implemented.
926 2006-12-08 Marek Sieradzki <marek.sieradzki@gmail.com>
928 * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
930 * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
931 BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
932 Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
934 * ImportCollection.cs: Added a note.
936 2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
938 * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
940 * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
941 (UsingTask[] array, int index)
943 * TaskEngine.cs: Reformatted PublishOutput () and added copying of
944 items to Project.EvaluatedItems in PublishItemGroup ();
946 * BuildItemGroup.cs: Added [MonoTODO].
948 * UsingTask.cs: Used expression for AssemblyFile to get around
949 problems with '\' and '/'.
951 * BuildItem.cs (ctor): Added null checks.
952 (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
953 (SetMetadata): Don't escape evaluatedMetadata and escape
954 unevaluatedMetadata only when treatPropertyValueAsLiteral.
956 * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
957 FromXml () instead of null checks.
958 (SetProperty): Escape propertyValue when it is literal.
960 * BuildProperty.cs: Changed exception message.
962 * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
964 (GetProjectExtensions): Implemented.
966 2006-12-05 Marek Sieradzki <marek.sieradzki@gmail.com>
968 * BuildTask.cs: Remove [MonoTODO], add exception throwing in
969 GetParameterValue (), use expressions in ContinueOnError.
970 * ConditionFactorException.cs: Throw InvalidProjectFileException ()
971 instead of InvalidOperationException ().
972 * ImportCollection.cs: Implement CopyTo ().
973 * Target.cs: Remove redundant variables (XmlAttributes), return
974 String.Empty in DependsOnTargets, add a null check in RemoveTask ().
975 * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
976 * Import.cs: Throw an exception when file does not exist.
977 * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
978 * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
979 need to treat item as a token probably
981 2006-12-04 Marek Sieradzki <marek.sieradzki@gmail.com>
983 * Import.cs: Check for project.FullFileName (Path.DirectoryName would
985 * BuildItemGroupCollection.cs: Changed exception types.
987 2006-10-14 Marek Sieradzki <marek.sieradzki@gmail.com>
989 * Engine.cs: Removed redundant cast.
991 * UsingTaskCollection.cs:
995 * TargetCollection.cs: Comment unused variable.
996 * ConditionTokenizer.cs: Simplified checking if current token is a
998 * Target.cs: Removed old code.
1000 2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
1002 * Target.cs: Changed "" to String.Empty.
1003 * TaskEngine.cs: Don't try to convert a parameter to specific type if
1004 string was evaluated to String.Empty.
1005 * InternalLoggerException.cs:
1006 * InvalidProjectFileException.cs: Added LinkDemand before
1008 * ConsoleLogger.cs: Changed "" to String.Empty.
1009 * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
1010 with change to generics).
1011 * Project.cs: Made Build () throw more meaningful exception.
1013 2006-10-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1015 * Target.cs: Reformatted.
1016 * TaskEngine.cs: Removed redundant code.
1017 * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
1018 * Engine.cs: Made BuildProjectFile () load project file if it's not
1021 2006-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
1023 * ConditionRelationalExpression.cs: Change comparers to case
1025 * ImportCollection.cs: Add NotImplementedExceptions.
1026 * BuildPropertyGroup.cs: Reformatted a bit.
1027 * BuildProperty.cs: The same.
1028 * Project.cs: Moved evaluation of imports before evaluation of
1029 properties. This may "work" until importing projects is redesigned but
1030 probably isn't correct.
1032 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1034 * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
1036 * BuildItemGroup.cs: Change return to continue.
1038 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1040 * ConditionParser.cs: Copyright note.
1041 * ExpressionCollection.cs: Fixed arrays passing.
1043 2006-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1045 * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
1046 Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
1047 BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
1048 TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
1050 2006-06-25 Marek Sieradzki <marek.sieradzki@gmail.com>
1052 * Token.cs: Changed names: removed "than".
1053 * ConditionRelationalExpression.cs: Added.
1054 * ConditionFactorExpression.cs: Added.
1055 * BuildItemGroup.cs: Changed Condition property return value to return
1056 String.Empty instead of null.
1057 * ConditionParser.cs: Added support for parsing relational expressions
1059 * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
1060 abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
1061 and CanEvaluateToBool (), CanEvaluateToNumber () and
1062 CanEvaluateToString ().
1063 * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
1064 appropriately to ConditionExpression base class.
1065 * ConditionTokenizer.cs: Added null check and changed names in enums:
1067 * ConditionNotExpression.cs: Added.
1068 * BatchingImpl.cs: Changed to use BoolEvaluate ().
1069 * Project.cs: Added checks for condition.
1071 2006-06-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1073 * ConditionalTokenizer.cs, ConditionalExpression.cs,
1074 ConditionalParser.cs: Changed name,
1076 * ConditionExpression.cs: Added Evaluate ().
1077 * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
1078 * BatchingImpl.cs: Added check if task should be executed.
1080 2006-06-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1082 * UsingTask.cs: Changed properties to return null on empty attribute.
1083 * UsingTaskCollection.cs: Added object to SyncRoot.
1084 * BuildPropertyGroup.cs: Added NotImplementedException throwing.
1086 2006-06-02 Marek Sieradzki <marek.sieradzki@gmail.com>
1088 * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
1089 BuildPropertyGroupCollection.cs: Fixed to match the tests.
1091 2006-05-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1093 * Utilities.cs: Implemented Escape ().
1094 * BuildItem.cs: Added null checks.
1095 * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
1096 * Project.cs: Commented out redundant Evaluate ().
1097 * BuildChoose.cs: Minor changes.
1099 2006-05-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1101 * Token: Added new few missing tokens.
1102 * Target.cs, Project.cs: Patch from Matthew Metnesky.
1103 * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
1104 ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
1105 ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
1106 LiteralTokenizer.cs:
1107 Removed literal expression parsing based on tokenizer and
1108 parser. It needs to be done by regex.
1110 Moved tokenizer to ConditionalTokenizer.cs.
1112 2006-05-05 Marek Sieradzki <marek.sieradzki@gmail.com>
1114 * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
1115 ItemReference.cs, PropertyReference.cs: Changed name of *Reference
1116 methods converting reference to string from ToString () to
1117 ConvertToString () to avoid mistakes like using ToString () provided
1120 2006-05-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1122 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
1123 Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
1124 PropertyReference.cs, BuildProperty.cs: Changed Expression to
1125 OldExpression and changed To* functions to one ConvertTo ().
1126 * TaskEngine.cs: Fixed PublishOutput ().
1127 * OldExpression.cs: Added. It will be temporarily used before
1128 LiteralExpression will be written using Tokenizer.
1129 * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
1130 ExpressionParseException.cs, LiteralExpression.cs: Added.
1132 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1134 * ImportedProject.cs: Removed warning.
1135 * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
1138 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1140 * Project.cs: Removed unnecessary variable.
1141 * Engine.cs: Added fixme.
1143 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1145 * BuildItem.cs: Moved checking if metadata name is reserved to internal
1146 class (Mono.XBuild.Utilities.ReservedNameUtils).
1148 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1150 * BuildTask.cs: Removed unnecessary variable.
1151 * Engine.cs: Added logging of the build start.
1152 * Project.cs: Removed unnecessary variable.
1154 2006-04-07 Marek Sieradzki <marek.sieradzki@gmail.com>
1156 * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
1158 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1160 * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
1162 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1164 * BuildItem.cs: Fix typo?
1166 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1168 * InternalLoggerException.cs, InvalidProjectFileException.cs,
1169 Engine.cs, Project.cs: Coding style fixes.
1171 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1173 * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
1175 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1177 * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
1178 to pass tests. Wrote serialization constructor.
1179 * Engine.cs, Project.cs: Global engine and project unloading, test and
1182 2006-03-28 Marek Sieradzki <marek.sieradzki@gmail.com>
1184 * UsingTask.cs: Formatting changes.
1186 2006-03-27 Crestez Leonard <cdleonard@gmail.com>
1188 * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
1189 to lists instead of hashtables.
1190 * Import.cs: Cleaned up, moved importing from Project.cs
1191 * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
1192 * Engine.cs: Cleaned up properties.
1193 * Project.cs: Moved importing to Import.cs, cleaned up properties,
1194 Separated evaluation and loading.
1196 2006-03-21 Crestez Leonard <cdleonard@gmail.com>
1198 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
1199 BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
1200 Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
1201 binding and evaluation, merge xml binding in constructors.
1202 * DirectoryScanner.cs: Includes CAN be empty.
1203 * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
1204 * ConsoleLogger.cs: Fix compilation warning.
1206 2006-03-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1208 * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
1210 2006-03-18 Marek Sieradzki <marek.sieradzki@gmail.com>
1212 * Engine.cs: API cleanup.
1214 2006-03-18 Crestez Leonard <cdleonard@gmail.com>
1216 * Project.cs: Cleaned up add.
1217 * Expression.cs: Hacked to transform \ and / to path separators.
1218 * BuildPropertyGroup.cs: Small cleanup.
1219 * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
1222 2006-03-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1224 * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
1225 * BuildItem.cs: Updated for new API and fixed crashing on non-existent
1227 * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
1228 BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
1229 Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
1231 * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
1232 * TaskElement.cs: Temporarily removed.
1233 * Xml.cs: Changed to static.
1235 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1237 * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
1238 IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
1239 ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
1240 IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
1241 ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
1242 IBuildPropertyGroupCollection.cs: Removed.
1244 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1246 * BuildItem.cs: Removed IBuildItem references.
1247 * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
1248 IBuildItemGroup references. Changed Evaluate to internal.
1249 * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
1250 reference and hidden constructors.
1251 * BuildProperty.cs: Removed IBuildProperty reference.
1252 * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
1253 IBuildPropertyGroup references. Changed Evaluate to internal.
1254 * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
1255 reference and hidden constructors.
1256 * ConsoleLogger.cs: Updated names of event handlers.
1257 * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
1258 Escape. Added UnloadAllProjects () and UnloadProject ().
1259 * FileLogger.cs: Removed ApplyParameter ().
1260 * GroupingCollection.cs: Hidden.
1261 * InvalidProjectFileException.cs: Removed HasBeenLogged property.
1262 * ItemPropertyGroupingBase.cs: Commented.
1263 * ProcessingPass.cs: Hidden.
1264 * Project.cs: Removed IProject reference. Changed CurrentEncoding to
1266 * Target.cs: Removed ITarget reference.
1267 * TargetCollection.cs: Removed ITargetCollection reference.
1268 * TaskElement.cs: Removed ITaskElement reference.
1269 * TaskEngineAssemblyResolver.cs: Hidden.
1270 * Utilities.cs: Made static class, removed CheckPath (),
1271 ValidateCulture (), GetSupportedCultures () and added Escape ().
1273 2006-02-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1275 * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
1278 2005-09-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1280 * Project.cs: Added MonoTODO attributes.
1281 * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
1282 ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
1283 IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
1284 BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
1285 SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
1286 BuildItemGroup.cs, InvalidProjectFileException.cs,
1287 BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
1288 Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
1289 PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
1290 ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
1291 IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
1292 IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
1293 ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
1294 ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
1295 IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
1296 IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
1297 BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
1298 ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
1300 2005-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
1302 * TaskDatabase.cs: Change Shared to Framework.
1303 * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
1304 CaseInsensitiveHashCodeProvider
1306 2005-09-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1308 * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
1309 * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
1312 2005-09-09 Marek Sieradzki <marek.sieradzki@gmail.com>
1314 * InternalLoggerException.cs: Changed protected fields to private.
1316 2005-09-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1318 * Engine.cs: Added check for globalProperties.
1319 * Project.cs: Added using path from importedProject.FullFileName when
1320 adding UsingTask elements.
1322 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1324 * TaskElement.cs: Changed ReflectedType to PropertyType.
1325 * ChangeType.cs (TransformToString): Changed to pass proper Type to
1328 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1330 * BuildPropertyGroup.cs: Added check for PropertyType when adding a
1332 * BuildProperty.cs: Organized PropertyType enum.
1333 * Engine.cs: Added setting CommandLine PropertyType of global
1336 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1338 * InvalidProjectFileException.cs: Changed Message property.
1339 * ChangeType.cs (TransformToString): Added separator between items.
1340 * TaskEngineAssemblyResolver.cs: Formatting.
1342 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1344 * DirectoryScanner.cs: Added.
1345 * BuildItem.cs: Moved file scanning code to DirectoryScanner.
1346 * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
1347 * Project.cs: Removed Evalute* ().
1349 2005-08-30 Marek Sieradzki <marek.sieradzki@gmail.com>
1351 * Target.cs: Formatting.
1352 * Expression.cs: Added check if array == null.
1353 * BuildItem.cs: Removed 'break' to remove warnings.
1354 * ConsoleLogger.cs: Formatting.
1355 * Engine.cs: Added handling of default target(s).
1356 * Project.cs: Added handling of default target(s).
1358 2005-08-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1360 * TaskElement.cs: Added check for parameters.
1361 * Target.cs: Added logging of target skipping.
1362 * Expression.cs: Changed returning object[] to string[], bool[]... in
1364 * ItemReference.cs: Fixed for item references without custom
1366 * BatchingImpl.cs: Added real inputs/outputs checking.
1367 * Engine.cs: Moved global properties setting.
1368 * Project.cs: Moved global properties setting.
1370 2005-08-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1372 * Target.cs: Added checks for target existence.
1373 * BuildItemGroup.cs: Changed to use transforms.
1374 * MetadataReference.cs: Wrote real implementation.
1375 * ItemReference.cs: Rewritten to use transforms.
1376 * BuildItem.cs: Changes for transforms and metadata.
1377 * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
1379 * Project.cs: Fixed project importing.
1380 * ImportedProject.cs: Changed to throw exceptions instead of returning
1383 2005-08-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1385 * Engine.cs: Removed FIXME.
1386 * Project.cs: Splitted ProcessElements and added project importing.
1387 * ImportedProject.cs: Rewritten.
1389 2005-08-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1391 * TaskElement.cs: Added getting of objects of every type.
1392 * BuildItemGroup.cs: Added ToITaskItemArray ().
1393 * Expression.cs: Implemented part that is not using metadata.
1394 * ItemReference.cs: Implemented parsing item references. Need to fix
1396 * BuildItem.cs: Fixed ToITaskItem ().
1397 * PropertyReference.cs: Implemented parsing property references. This
1398 also needs validity checking.
1400 2005-08-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1402 * TaskElement.cs: Added Output element handling.
1403 * Target.cs: Cleaned up.
1404 * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1405 * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1406 ItemReference.cs, ChangeType.cs: Added.
1407 * BuildItem.cs: Added creating BuildItem from TaskItem.
1408 * BuildPropertyGroup.cs: Small changes.
1409 * BatchingImpl.cs: Fixed to return real task execution result.
1410 * BuildProperty.cs: Fixed FinalValue property.
1411 * Engine.cs: Reformatted logging.
1412 * Project.cs: Added check to EvaluateProperty.
1414 2005-08-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1416 * TaskElement.cs: Added part of execution engine.
1417 * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1418 * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1419 * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1420 * BuildItem.cs: Added handling of built-in metadata and referencing
1421 Items by name not FullName.
1422 * BatchingImpl.cs: Added temporary task "batching".
1423 * ConsoleLogger.cs: Added temporary workaround to not show sender.
1424 * Project.cs: Added Evaluate. It will be moved to separate class.
1426 2005-08-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1428 * EventSource.cs, Engine.cs: Added CriticalEvents.
1429 * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1430 Project.cs: Added some support for items.
1431 * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1433 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1435 * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1438 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1440 * BatchingImpl.cs: Added.
1441 * BuildWhen.cs, BuildEngine.cs, Target.cs,
1442 BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1443 BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1444 TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1445 GroupingCollection.cs: Updated.
1447 2005-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1449 * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1450 BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1451 BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1452 BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1453 EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1454 GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1455 InternalLoggerException.cs, InvalidProjectFileException.cs,
1456 ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1457 ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1458 TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1459 TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1460 Initial check-in of implementations.
1462 2005-07-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1464 * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1465 IBuildItemGroupCollection.cs, IBuildProperty.cs,
1466 IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1467 ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1468 IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1469 IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1470 Initial check-in of interfaces and a syntax file, real classes are
1471 changing a lot so I'll wait a moment with checking them in.