1 2009-09-01 Ankit Jain <jankit@novell.com>
3 * Expression.cs (ParseOptions): New enum. Replace the bool params
4 of exression.Parse with this. Add option to control expansion of
6 (CopyToExpressionCollection): Track api changes.
8 Update all expr.Parse calls to use the new enum.
9 * BuildItem.cs, BuildProperty.cs, BuildTask.cs, Import.cs,
10 Target.cs, TargetBatchingImpl.cs, UsingTask.cs: Track api changes.
12 * BatchingImplBase.cs: Track api changes. Allow metadata refs
14 * ConditionFactorExpression.cs: Allow metadata refs in conditions.
15 * ItemReference.cs: Allow metadata in transforms.
16 * TaskEngine.cs: Allow metadata refs.
18 * MetadataReference.cs (.ctor): Add a 'original string' param.
20 2009-08-29 Ankit Jain <jankit@novell.com>
22 * Expression.cs (ExpressionOptions): New.
24 Introduce a ExpressionOptions argument to all ConvertTo*
25 methods. Implement the rule: in evaluation phase, expand
26 all items completely, but dont expand item refs in properties.
27 At other times, expand the item refs in the properties.
28 See comments in Expression.cs, for a full explanation.
29 * BuildItem.cs: Track api changes.
30 * BuildItemGroup.cs: Likewise.
31 * BuildProperty.cs: Track api changes. Handle self-references.
32 * BuildTask.cs: Track api changes.
33 * IReference.cs: Add ExpressionOptions param.
34 * ItemReference.cs: Track api changes.
35 * PropertyReference.cs: Likewise.
36 * MetadataReference.cs: Likewise.
37 * ExpressionCollection.cs: Track api changes. Add support for
38 converting all primitive types and DateTime, instead of a fixed
40 * Project.cs (GetMetadataBatched): Use the evaluated metadata.
41 * TaskBatchingImpl.cs: Handle the case when batching is required,
42 but no items are available.
44 * TaskEngine.cs: Throw on unsupported types. Correctly handle
45 properties in case of empty values.
47 2009-08-26 Ankit Jain <jankit@novell.com>
49 * Expression.cs: Correctly handle a item reference with transform
50 when allowItems is false. If item ref is ignored, then the transform
51 will get incorrectly matched as a metadata ref.
52 * ItemReference.cs (.ctor): Add a @original_string param.
54 2009-08-26 Ankit Jain <jankit@novell.com>
56 * Utilities.cs (UnescapeFromXml): New. From md.
57 * BuildProperty.cs (.ctor): Unescape xml codes from the InnerXml
58 of the property element.
60 2009-08-26 Ankit Jain <jankit@novell.com>
62 * BuildProperty.cs (ConvertToString): New.
63 (ConvertoToITaskItemArray): New. Parse the property value.
64 * PropertyReference.cs (ConvertToString): Use BuildProperty's
66 (ConvertoToITaskItemArray): Likewise.
68 2009-08-21 Ankit Jain <jankit@novell.com>
70 * Engine.cs (EndProjectBuild): Use the @succeeded argument
71 instead of hardcoding 'true'.
72 * Target.cs (Build): Add an overload to return executeOnErrors
73 value for the target executed. If building dependencies fails,
74 and executeOnErrors is true, then execute OnError tasks.
75 Add the new param to ..
76 (BuildDependencies): this, ..
78 (GetDependencies): Improve error message and variable name.
79 (ExecuteOnErrors): Honor OnError tag's Condition also.
80 * TaskBatchingImpl.cs (Run): Correctly set executeOnErrors param.
82 2009-08-20 Ankit Jain <jankit@novell.com>
85 * Project.cs (Load): Add support for loading .sln files.
87 2009-08-20 Ankit Jain <jankit@novell.com>
89 * BuildTask.cs (Execute): Use task_logger only after the task
90 has been initialized. Catch and report task loading errors.
91 * Target.cs (DoBuild): Dont rethrow the exception, and emit
92 the stacktrace as a low importance message.
94 2009-08-18 Ankit Jain <jankit@novell.com>
96 * BatchingImplBase.cs: Make the item name lookups and metadata be case
98 * TaskDatabase.cs: Likewise.
99 * TaskEngine.cs: Make property name looks, case insensitive.
101 2009-08-09 Miguel de Icaza <miguel@novell.com>
103 * ConsoleLogger.cs: Change the format of the error and warnings
104 strings to work when invoked inside Emacs by not rendering the
105 column if available, by using lowercase "error"/"warning" strings
106 instead of camelcased versions and to not have unnecessary padding.
108 2009-07-31 Ankit Jain <jankit@novell.com>
110 * ConsoleLogger.cs: Keep track of all the errors and warnings
111 and show them at the end.
113 2009-07-31 Ankit Jain <jankit@novell.com>
115 * Target.cs (Build): Log a message if a target is skipped.
117 * BuildTask.cs (Execute): Log error if task execution fails.
119 2009-07-30 Ankit Jain <jankit@novell.com>
121 * Engine.cs (.ctor): Set default BinPath. Currently this assumes
122 v2.0, this will change when multi-targeting lands.
124 2009-07-30 Ankit Jain <jankit@novell.com>
126 * Project.cs (InitializeProperties) Set 'MSBuildProjectFile' and
127 'MSBuildProjectName' properties.
129 2009-07-28 Ankit Jain <jankit@novell.com>
131 * TaskEngine.cs (Prepare): Fix formatting mistake.
132 * ConsoleLogger.cs: Emit "-- FAILED" also when project/target building
133 fails. Also, emit result of project at Normal verbosity level.
135 2009-07-23 Ankit Jain <jankit@novell.com>
138 * Project.cs (ExtensionsPath): New.
139 (InitializeProperties): Set "MSBuildExtensionsPath" property.
141 2009-06-12 Ankit Jain <jankit@novell.com>
144 * ExpressionCollection.cs (ConvertToITaskItemArray): Whitespace around a
145 itemref is allowed if the prev/next element is ";".
147 2009-06-12 Ankit Jain <jankit@novell.com>
149 * Utilities.cs (FromMSBuildPath): Return null if the path contains
150 "drive:" only on windows.
152 2009-06-07 Ankit Jain <jankit@novell.com>
154 * Target.cs (Outputs): Use ITaskItem[] for conversion, to retain
157 2009-05-29 Ankit Jain <jankit@novell.com>
159 Correctly handle global properties. Correctly log
160 project/build events.
162 * BuildPropertyGroup.cs (Clone): Implement.
163 * Engine.cs (globalProperties): Rename to ..
164 (global_properties): .. this.
165 (currentlyBuildingProjectsStack): New. Used to correctly
166 log and raise project/build start/finish events.
167 (BuildProjectFile): Override any project global properties
168 with explicitly specified ones, here in the param @globalProperties.
169 Mark project for reevaluation, which will update the engine's
170 global properties also.
171 Reset both engine and project's old global properties at the end.
172 (UnregisterAllLoggers): Log build finished only if we are currently
174 (StartBuild): Rename to ..
175 (StartProjectBuild): .. this. Keeps track of the projects being built
176 in the new stack, and logs project and build events accordingly.
177 (EndProjectBuild): New. Uses the stack to keep track of projects
178 finishing builds, and raises project and build events accordingly.
179 (LogProjectStarted): Move here from Project.cs
180 (LogProjectFinished): Likewise.
182 * Project.cs (Build): Log start of project build.
183 Set current directory to the project file's dir, and reset at end.
184 (BuildInternal): Don't log here, its done in Build.
185 (BuildTarget): Already built targets are keyed by the set of global
186 properties that they were built with.
187 (GlobalPropertiesToString): New.
188 (ResetBuildStatus): 'building' must be true to allow built targets to be reset.
189 (RemoveBuiltTargets): Initialize builtTargetKeys in .ctor
190 (Evaluate): Remove built targets only if we are currently building and
191 build settings are None.
192 Merge project's global properties with those of the parent engine.
193 Add missing properties from engine's global properties.
194 (LogTargetSkipped): Fix format string, add the reqd argument.
196 2009-05-29 Ankit Jain <jankit@novell.com>
198 * ConditionFunctionExpression.cs: Add 'HasTrailingSlash' function.
199 (HasTrailingSlash): New.
201 2009-05-12 Ankit Jain <jankit@novell.com>
203 * Project.cs (.ctor): Init timeOfLastDirty.
205 2009-05-05 Miguel de Icaza <miguel@novell.com>
207 * Contribution from Martin Brenn to fix #498154.
209 2009-04-27 Ankit Jain <jankit@novell.com>
212 * Engine.cs (BuildProjectFile): Set project's GlobalProperties to the
213 one passed as argument.
215 2009-04-27 Ankit Jain <jankit@novell.com>
217 * TaskEngine.cs (Prepare): Emit a useful error message property value
218 can't be converted to required type.
220 2009-04-27 Ankit Jain <jankit@novell.com>
222 * ExpressionCollection.cs (ConvertToObject): Allow true/on/yes
223 as valid true values for bool, and corresponding for false.
225 2009-03-27 Jonathan Chambers <joncham@gmail.com>
227 * BuildWhen.cs: Add basic implementation.
228 * BuildChoose.cs: Add basic implementation.
229 * BuildItem.cs (AddEvaluatedItem): Add BuiltItem to
230 EvaluatedItemsIgnoringCondition.
231 * GroupingCollection.cs: Add evaluation of BuildChoose items.
233 2009-03-26 Jonathan Chambers <joncham@gmail.com>
235 * TaskDatabase.cs (RegisterTask): Search for class by name
236 if task was not found using GetType (which uses namespace).
238 2009-02-26 Ankit Jain <jankit@novell.com>
240 * Target.cs: Handle target with no tasks. Log errors.
242 2009-02-24 Ankit Jain <jankit@novell.com>
244 Lazily load UsingTask tasks.
245 * UsingTask.cs (Evaluate): Register 'this' with task database,
246 but don't load it yet. Register only if condition evaluates to true.
247 Move the load logic to ..
248 (Load): .. here. Register with the specified task database.
249 * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance
250 in a table keyed by task name, but don't load it yet.
251 (GetTypeFromClassName): Try to load UsingTask if task is not already
252 loaded. Move loading logic to ..
253 (GetTypeFromClassNameInternal): .. here.
254 (CopyTasks): Copy the usingTasks table also.
256 2009-02-23 Ankit Jain <jankit@novell.com>
258 * BuildItem.cs (AddMetadata): Allow overwriting older values.
260 2009-02-22 Ankit Jain <jankit@novell.com>
262 * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode
263 instead of XmlElement. Eg. XmlComment
265 2009-02-21 Ankit Jain <jankit@novell.com>
267 * Utilities.cs (FromMSBuildPath): Copy from monodevelop.
268 * Project.cs (Load): Use FromMSBuildPath on the path.
269 (InitializeProperties): Set "MSBuildToolsPath" also.
271 2009-02-20 Ankit Jain <jankit@novell.com>
274 * ConditionTokenizer.cs: Handle unquoted item references (with or w/o
275 transforms) in conditions.
276 * ConditionParser.cs: Parse unquoted item, property references.
277 eg. Condition = " @(Foo->'%(Extension)') == '.exe' "
278 * Token.cs (Token.ToString): Override.
279 (TokenType.Transform): Uncomment.
281 2009-02-12 Jonathan Chambers <joncham@gmail.com>
283 * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
284 no XmlElement.InnerText. This allows properties to be additional
287 2009-02-01 Ankit Jain <jankit@novell.com>
289 * BuildEngine.cs (BuildProjectFile): Use
290 BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
291 * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
292 built. Move logging of project start/finish to ..
293 * Project.cs: .. here. Build a target only if hasn't been built already.
294 Keep track of target outputs, and return those even if an already built
295 target has been invoked again.
296 Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
298 2009-01-31 Ankit Jain <jankit@novell.com>
300 * BatchingImpl.cs: Split into ..
301 * BatchingImplBase.cs: .. this,
302 * TaskBatchingImpl.cs: .. this ..
303 * TargetBatchingImpl.cs: .. and this. Implement target batching here.
305 * Target.cs (DoBuild): Use TargetBatchingImpl for building.
306 (Log*): Move to TargetBatchingImpl .
310 2009-01-30 Ankit Jain <jankit@novell.com>
312 * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
315 2009-01-29 Ankit Jain <jankit@novell.com>
317 * BuildItem.cs (child_items): Change type from BuildItemGroup to
319 (HasParent): Rename to ..
320 (HasParentItem): .. this.
321 (ParentItemGroup): Add setter.
323 * BuildItemGroup.cs (.ctor): Add overload with @project param.
325 (AddItem): Correctly set the ParentItemGroup for new build items.
326 (ParentProject): Add setter.
327 * Project.cs: Set the project for new BuildItemGroup instances.
328 * TaskEngine.cs (PublishItemGroup): Likewise.
330 2009-01-06 Ankit Jain <jankit@novell.com>
332 * Project.cs (Build): Honor InitialTargets list.
334 2009-01-06 Ankit Jain <jankit@novell.com>
336 * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
337 the property type also.
338 * MSBuild.cs (Execute): Parse 'Properties' task param to set global
341 2009-01-06 Ankit Jain <jankit@novell.com>
343 * Project.cs (Build): Correctly handle null targetNames argument.
345 2009-01-06 Ankit Jain <jankit@novell.com>
347 * Engine.cs (LogProjectStarted): Add a null check.
349 2009-01-01 Ankit Jain <jankit@novell.com>
351 * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
352 * ChangeType (ToBuildItemGroup): Add 'split' param.
354 * Expression.cs (Parse): Add a new overload with a 'split' param.
355 * ExpressionCollection.cs (Add): Add new overload for IReference,
356 remove the ones for Item/Metadata/PropertyReference.
357 (ConvertToArray): Implement correctly.
358 (ConvertToString): Track api changes.
359 (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
360 (ConvertToITaskItemArray): Implement support for concat'ing expressions.
361 (AddItemsToArray): New.
362 (ConvertToITaskItemArrayFromString): Refactor a bit.
363 (ThrowCantConcatError): New.
364 * ItemReference.cs: Update.
365 * MetadataReference.cs: Update.
366 * PropertyReference.cs (ConvertToITaskItemArray): Implement.
368 * BuildPropertyGroup.cs: Track api changes.
369 * TaskEngine.cs (PublishOutput): Improve exception message.
370 * Project.cs (DoLoad): Improve exception message. Add a null check.
372 2008-12-30 Ankit Jain <jankit@novell.com>
374 * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
375 metadata values for unqualified references.
376 (BuildItemGroupToITaskItemArray): Rename to ..
377 (BuildItemGroupToITaskItems): .. this.
380 2008-12-18 Ankit Jain <jankit@novell.com>
382 * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
384 2008-12-17 Ankit Jain <jankit@novell.com>
386 * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
387 only one instance of unique metadata value is required.
389 2008-11-22 Ankit Jain <jankit@novell.com>
391 * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
393 * MetadataReference.cs (ConvertToITaskItemArray): New.
394 * Project.cs (GetAllItemGroups): New.
396 2008-11-21 Ankit Jain <jankit@novell.com>
398 * BatchingImpl.cs: Add task batching implementation.
399 * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
400 * ExpressionCollection.cs (Count): New.
401 (ConvertToString): Handle MetadataReference.
402 * ItemReference.cs (ConvertToString):
403 (ConvertToITaskItemArray): Use the batching api.
405 * MetadataReference.cs (ConvertToString): New.
407 * Project.cs: Add api for accessing batched items and metadata.
408 * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
411 2008-10-01 Ankit Jain <jankit@novell.com>
413 * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
414 (BuildProjectFile): If filename is null (project.LoadXml) then use
416 * BuildTask.cs (InitializeTask): Track api change.
417 * Expression.cs (Parse): Skip empty entries in the expression.
419 2008-09-24 Ankit Jain <jankit@novell.com>
421 * Engine.cs: Add argument checks.
422 * Project.cs: Likewise.
424 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
426 * Project.cs (Build): Add outputs to targetOutputs.
428 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
430 * ExpressionCollection.cs (ConvertToArray): Simplify.
432 2007-03-05 Marek Sieradzki <marek.sieradzki@gmail.com>
434 * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
435 simplified. It still needs tests and refactoring.
437 2007-02-22 Marek Sieradzki <marek.sieradzki@gmail.com>
439 * BuildEngine.cs (BuildProjectFile): Don't crash on null
442 * Target.cs: Add Outputs property.
444 2007-02-20 Marek Sieradzki <marek.sieradzki@gmail.com>
446 * Target.cs (Build): Split to GetDependencies () and BuildDependencies
447 (). Support condition.
449 * BatchingImpl.cs (BatchBuildTask): Simplify.
451 2007-02-18 Marek Sieradzki <marek.sieradzki@gmail.com>
453 * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
456 * ConditionFunctionExpression.cs: Removed warnings.
458 * BuildTask.cs (Execute): Write exceptions to std err (they should be
459 logged but it's better than swallowing).
461 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
463 * ConditionTokenizer.cs: Add Putback ().
465 * ConditionParser.cs: Add parsing of functions.
467 * ConditionFunctionExpression.cs: Add.
469 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
471 * BuildPropertyGroup (SetProperty): Throw an exception when trying to
472 set property in persisted property group.
474 2007-01-29 Marek Sieradzki <marek.sieradzki@gmail.com>
476 * BuildTask.cs (Execute): Log errors that happen when invoking ITask
479 * ConsoleLogger.cs (TargetFinishedHandler)
480 (TaskFinishedHandler): Increment error count.
482 2007-01-28 Marek Sieradzki <marek.sieradzki@gmail.com>
484 * BuildItem.cs (RemoveMetadata): Remove from XML.
485 (SetMetadata): Trigger project reevaluation.
487 2007-01-26 Marek Sieradzki <marek.sieradzki@gmail.com>
489 * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
492 2007-01-23 Marek Sieradzki <marek.sieradzki@gmail.com>
494 * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
495 TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
496 BatchingImpl.cs, BuildProperty.cs: Track API changes.
498 * Expression.cs (Parse): Added allowItems parameter and made regexes
501 * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
502 will try to import a.ext when given a.EXT.
504 2007-01-21 Marek Sieradzki <marek.sieradzki@gmail.com>
506 * BuildItemGroup.cs: Store information saying what is the last item
507 group that contains build item name.
509 * Project.cs (Build): Pass empty array (build default targets).
511 2007-01-19 Marek Sieradzki <marek.sieradzki@gmail.com>
513 * Token.cs: Commented Transform and LiteralSubExpression and added
516 * ConditionParser.cs: Removed redundant casts, rewrote
517 ParseFactorExpression () and added parsing of '!'.
519 * ConditionTokenizer.cs: Always skip whitespaces when getting next
520 token (no IgnoreWhiteSpace property). Don't create a token from '->'.
521 Moved ReadChar () in front of all ifs.
523 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
525 * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
526 from XML. (not to escape items that have parents twice).
528 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
530 * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
531 (Project): Renamed to ParentProject.
533 * BuildItem.cs (ctor)
534 (CopyCustomMetadata): Add null check.
536 * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
537 (RemoveProperty): Added null check.
539 * TargetCollection.cs (RemoveTarget): Added null check.
541 * Engine.cs (UnloadProject): Added null check.
543 * GroupingCollection.cs (Remove): Check if removed group belongs to
546 * Project.cs (AddNewItem): Implemented.
547 (RemoveItem): Reorganized.
548 (SetProjectExtensions): Added null check.
550 2007-01-14 Marek Sieradzki <marek.sieradzki@gmail.com>
552 * BuildItemGroup.cs (Detach): Added.
554 (RemoveItemAt): Used Detach ().
556 * BuildItem.cs: Made FromXml and HasParent internal and added
557 ParentItem and ParentItemGroup properties (internal).
560 * GroupingCollection.cs (Remove): Used Detach ().
562 * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
564 (GetEvaluatedItemsByNameIgnoringCondition)
565 (GetEvaluatedItemsByName)
566 (GetEvaluatedProperty): Reevaluate if needed.
568 (RemoveAllItemGroups)
569 (RemoveAllPropertyGroups): Implemented.
570 (DoLoad): Added closing of TextReader.
572 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
574 * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
575 change but just mark that it needs it.
577 * Project.cs: Reevaluate when it needs reevaluation and one of
578 Evaluated* properties is used.
580 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
582 * Target.cs: Throw an exception when <OnError> is not last element in
585 * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
587 * TargetCollection.cs: If a target is already there replace it with
590 * BuildProperty.cs: Added XmlElement property.
592 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
594 * ImportCollection.cs: Don't add imports that are already added.
596 * BuildItemGroup.cs: MonoTODOs.
598 * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
599 condition can't be evaluated to bool.
601 * BuildPropertyGroup.cs (Evaluate): Simplify.
603 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
605 * BuildWhen.cs: Moved BindToXml () code to ctor.
607 * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
608 property needed for removing groups.
610 * Engine.cs: Added StartBuild () that logs build start when Build ()
613 * GroupingCollection.cs: Added Remove () for item and property groups.
615 * Project.cs (AddNewImport): Implemented.
616 (AddNewItemGroup): Implemented.
617 (AddNewPropertyGroup): Implemented.
618 (AddNewUsingTaskFromAssemblyFile): Implemented.
619 (AddNewUsingTaskFromAssemblyName): Implemented.
620 (RemoveItemGroup): Implemented.
621 (RemovePropertyGroup): Implemented.
623 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
625 * BuildItemGroup.cs (Clear): Remove from XML.
627 * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
628 to Project.EvaluatedProperties.
629 (Clear): Remove from XML.
631 2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
633 * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
636 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
638 * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
639 Add () calls when processing a project from Import and
640 evaluate_iterator for evaluation.
642 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
644 * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
645 and prepend relative directory of importing project to full path of
648 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
650 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
651 BuildItemGroupCollection.cs, Project.cs: Track API changes.
653 * GroupingCollection.cs: Now it needs Project reference so added it.
655 * BuildTask.cs: Formatting.
657 * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
659 * ConditionParser.cs (ParseAndEvaluate): Added.
661 * BuildItem.cs: Changed exception message.
663 2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
665 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
666 BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
667 GroupingCollection doesn't need Project reference.
669 * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
671 * BuildItemGroup.cs: Added new readOnly parameter to ctor.
672 (Project.EvaluatedItems is a read only item group.)
673 (ReplaceWith): Added.
675 * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
676 global property group causes reevaluation of its project.
678 * Project.cs: ProcessXml () is internal and can be "safely" invoked by
681 * OldExpression.cs: Removed.
683 * BuildProperty.cs (Evaluate): Simplified.
685 * ChangeType.cs (TemporaryTransform): Simplified.
687 * BuildItem.cs: There are now 3 types of build items: from XML, having
688 parent from XML, virtual. Added SplitParentItem ().
690 2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
692 * Utilities.cs: Added Unescape ().
694 * BuildItemGroup.cs, BuildItem.cs: Pass null project to
695 BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
696 groups (at the moment just unescape).
698 * Expression.cs (CopyToExpressionList): Unescape strings.
700 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
702 * Target.cs (ctor): Added ImportedProject argument and removed
704 (AddNewTask): Implemented.
706 * TargetCollection.cs (AddNewTarget): Implemented.
708 * Project.cs: Track API changes.
710 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
712 * Target.cs (Build): Don't throw anything in case of error, just
715 * BuildItemGroup.cs (set_Condition): Throw an exception if group is
718 * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
721 * BuildProperty.cs (ToString): Throw an exception if property is not
723 (op_Explicit): Added a null check.
725 * Engine.cs: Better error message.
727 * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
728 IndexOutOfRangeException.
730 * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
731 (MarkProjectAsDirty): Set time.
733 2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
735 * BuildItemGroup.cs (Clone): Throw exception.
737 * Project.cs (Load): Throw InvalidProjectFileException if anything
740 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
742 * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
743 and ConvertToITaskItemArray ().
745 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
747 * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
748 classes that were public in Beta 2 and aren't used.
750 * Expression.cs: Added replacement for parsing expressions char by
751 char. It uses regexes to find item/property/metadata references in
754 * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
755 Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
756 BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
758 * ConditionRelationalExpression.cs: Formatting.
760 * OldExpression.cs: Commented everything.
762 * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
763 parsing to Expression.
765 * BuildItem.cs: Check if project is from XML in set_Condition and
768 * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
771 * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
772 can evaluate expression in CanEvaluateToBool ().
774 2006-12-12 Marek Sieradzki <marek.sieradzki@gmail.com>
776 * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
777 which item group is imported.
779 * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
781 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
783 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
784 BuildItemGroupCollection.cs: Little changes related to
787 * ImportCollection.cs: Use GroupingCollection not an internal list.
789 * Import.cs (Evaluate): Split to functions and check if
790 EvaluatedProjectPath is empty.
792 * GroupingCollection.cs, Project.cs: Move evaluation to
793 GroupingCollection. Change algorithm to use 2 passes: first for property
794 groups and imports and second for item groups.
796 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
798 * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
799 BuildItemGroup> not IDictionary.
801 * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
802 evaluated to false because we want to add every item to
803 Project.EvaluatedItemsByNameIgnoringCondition.
805 * Project.cs (Build): Don't throw an exception just return false.
806 (GetEvaluatedProperty): Avoid NullReferenceException.
807 (SetProjectExtensions): Implemented.
809 2006-12-08 Marek Sieradzki <marek.sieradzki@gmail.com>
811 * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
813 * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
814 BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
815 Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
817 * ImportCollection.cs: Added a note.
819 2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
821 * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
823 * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
824 (UsingTask[] array, int index)
826 * TaskEngine.cs: Reformatted PublishOutput () and added copying of
827 items to Project.EvaluatedItems in PublishItemGroup ();
829 * BuildItemGroup.cs: Added [MonoTODO].
831 * UsingTask.cs: Used expression for AssemblyFile to get around
832 problems with '\' and '/'.
834 * BuildItem.cs (ctor): Added null checks.
835 (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
836 (SetMetadata): Don't escape evaluatedMetadata and escape
837 unevaluatedMetadata only when treatPropertyValueAsLiteral.
839 * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
840 FromXml () instead of null checks.
841 (SetProperty): Escape propertyValue when it is literal.
843 * BuildProperty.cs: Changed exception message.
845 * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
847 (GetProjectExtensions): Implemented.
849 2006-12-05 Marek Sieradzki <marek.sieradzki@gmail.com>
851 * BuildTask.cs: Remove [MonoTODO], add exception throwing in
852 GetParameterValue (), use expressions in ContinueOnError.
853 * ConditionFactorException.cs: Throw InvalidProjectFileException ()
854 instead of InvalidOperationException ().
855 * ImportCollection.cs: Implement CopyTo ().
856 * Target.cs: Remove redundant variables (XmlAttributes), return
857 String.Empty in DependsOnTargets, add a null check in RemoveTask ().
858 * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
859 * Import.cs: Throw an exception when file does not exist.
860 * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
861 * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
862 need to treat item as a token probably
864 2006-12-04 Marek Sieradzki <marek.sieradzki@gmail.com>
866 * Import.cs: Check for project.FullFileName (Path.DirectoryName would
868 * BuildItemGroupCollection.cs: Changed exception types.
870 2006-10-14 Marek Sieradzki <marek.sieradzki@gmail.com>
872 * Engine.cs: Removed redundant cast.
874 * UsingTaskCollection.cs:
878 * TargetCollection.cs: Comment unused variable.
879 * ConditionTokenizer.cs: Simplified checking if current token is a
881 * Target.cs: Removed old code.
883 2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
885 * Target.cs: Changed "" to String.Empty.
886 * TaskEngine.cs: Don't try to convert a parameter to specific type if
887 string was evaluated to String.Empty.
888 * InternalLoggerException.cs:
889 * InvalidProjectFileException.cs: Added LinkDemand before
891 * ConsoleLogger.cs: Changed "" to String.Empty.
892 * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
893 with change to generics).
894 * Project.cs: Made Build () throw more meaningful exception.
896 2006-10-06 Marek Sieradzki <marek.sieradzki@gmail.com>
898 * Target.cs: Reformatted.
899 * TaskEngine.cs: Removed redundant code.
900 * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
901 * Engine.cs: Made BuildProjectFile () load project file if it's not
904 2006-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
906 * ConditionRelationalExpression.cs: Change comparers to case
908 * ImportCollection.cs: Add NotImplementedExceptions.
909 * BuildPropertyGroup.cs: Reformatted a bit.
910 * BuildProperty.cs: The same.
911 * Project.cs: Moved evaluation of imports before evaluation of
912 properties. This may "work" until importing projects is redesigned but
913 probably isn't correct.
915 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
917 * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
919 * BuildItemGroup.cs: Change return to continue.
921 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
923 * ConditionParser.cs: Copyright note.
924 * ExpressionCollection.cs: Fixed arrays passing.
926 2006-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
928 * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
929 Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
930 BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
931 TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
933 2006-06-25 Marek Sieradzki <marek.sieradzki@gmail.com>
935 * Token.cs: Changed names: removed "than".
936 * ConditionRelationalExpression.cs: Added.
937 * ConditionFactorExpression.cs: Added.
938 * BuildItemGroup.cs: Changed Condition property return value to return
939 String.Empty instead of null.
940 * ConditionParser.cs: Added support for parsing relational expressions
942 * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
943 abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
944 and CanEvaluateToBool (), CanEvaluateToNumber () and
945 CanEvaluateToString ().
946 * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
947 appropriately to ConditionExpression base class.
948 * ConditionTokenizer.cs: Added null check and changed names in enums:
950 * ConditionNotExpression.cs: Added.
951 * BatchingImpl.cs: Changed to use BoolEvaluate ().
952 * Project.cs: Added checks for condition.
954 2006-06-22 Marek Sieradzki <marek.sieradzki@gmail.com>
956 * ConditionalTokenizer.cs, ConditionalExpression.cs,
957 ConditionalParser.cs: Changed name,
959 * ConditionExpression.cs: Added Evaluate ().
960 * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
961 * BatchingImpl.cs: Added check if task should be executed.
963 2006-06-14 Marek Sieradzki <marek.sieradzki@gmail.com>
965 * UsingTask.cs: Changed properties to return null on empty attribute.
966 * UsingTaskCollection.cs: Added object to SyncRoot.
967 * BuildPropertyGroup.cs: Added NotImplementedException throwing.
969 2006-06-02 Marek Sieradzki <marek.sieradzki@gmail.com>
971 * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
972 BuildPropertyGroupCollection.cs: Fixed to match the tests.
974 2006-05-27 Marek Sieradzki <marek.sieradzki@gmail.com>
976 * Utilities.cs: Implemented Escape ().
977 * BuildItem.cs: Added null checks.
978 * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
979 * Project.cs: Commented out redundant Evaluate ().
980 * BuildChoose.cs: Minor changes.
982 2006-05-22 Marek Sieradzki <marek.sieradzki@gmail.com>
984 * Token: Added new few missing tokens.
985 * Target.cs, Project.cs: Patch from Matthew Metnesky.
986 * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
987 ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
988 ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
990 Removed literal expression parsing based on tokenizer and
991 parser. It needs to be done by regex.
993 Moved tokenizer to ConditionalTokenizer.cs.
995 2006-05-05 Marek Sieradzki <marek.sieradzki@gmail.com>
997 * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
998 ItemReference.cs, PropertyReference.cs: Changed name of *Reference
999 methods converting reference to string from ToString () to
1000 ConvertToString () to avoid mistakes like using ToString () provided
1003 2006-05-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1005 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
1006 Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
1007 PropertyReference.cs, BuildProperty.cs: Changed Expression to
1008 OldExpression and changed To* functions to one ConvertTo ().
1009 * TaskEngine.cs: Fixed PublishOutput ().
1010 * OldExpression.cs: Added. It will be temporarily used before
1011 LiteralExpression will be written using Tokenizer.
1012 * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
1013 ExpressionParseException.cs, LiteralExpression.cs: Added.
1015 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1017 * ImportedProject.cs: Removed warning.
1018 * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
1021 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1023 * Project.cs: Removed unnecessary variable.
1024 * Engine.cs: Added fixme.
1026 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1028 * BuildItem.cs: Moved checking if metadata name is reserved to internal
1029 class (Mono.XBuild.Utilities.ReservedNameUtils).
1031 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1033 * BuildTask.cs: Removed unnecessary variable.
1034 * Engine.cs: Added logging of the build start.
1035 * Project.cs: Removed unnecessary variable.
1037 2006-04-07 Marek Sieradzki <marek.sieradzki@gmail.com>
1039 * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
1041 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1043 * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
1045 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1047 * BuildItem.cs: Fix typo?
1049 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1051 * InternalLoggerException.cs, InvalidProjectFileException.cs,
1052 Engine.cs, Project.cs: Coding style fixes.
1054 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1056 * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
1058 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1060 * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
1061 to pass tests. Wrote serialization constructor.
1062 * Engine.cs, Project.cs: Global engine and project unloading, test and
1065 2006-03-28 Marek Sieradzki <marek.sieradzki@gmail.com>
1067 * UsingTask.cs: Formatting changes.
1069 2006-03-27 Crestez Leonard <cdleonard@gmail.com>
1071 * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
1072 to lists instead of hashtables.
1073 * Import.cs: Cleaned up, moved importing from Project.cs
1074 * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
1075 * Engine.cs: Cleaned up properties.
1076 * Project.cs: Moved importing to Import.cs, cleaned up properties,
1077 Separated evaluation and loading.
1079 2006-03-21 Crestez Leonard <cdleonard@gmail.com>
1081 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
1082 BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
1083 Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
1084 binding and evaluation, merge xml binding in constructors.
1085 * DirectoryScanner.cs: Includes CAN be empty.
1086 * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
1087 * ConsoleLogger.cs: Fix compilation warning.
1089 2006-03-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1091 * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
1093 2006-03-18 Marek Sieradzki <marek.sieradzki@gmail.com>
1095 * Engine.cs: API cleanup.
1097 2006-03-18 Crestez Leonard <cdleonard@gmail.com>
1099 * Project.cs: Cleaned up add.
1100 * Expression.cs: Hacked to transform \ and / to path separators.
1101 * BuildPropertyGroup.cs: Small cleanup.
1102 * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
1105 2006-03-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1107 * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
1108 * BuildItem.cs: Updated for new API and fixed crashing on non-existent
1110 * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
1111 BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
1112 Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
1114 * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
1115 * TaskElement.cs: Temporarily removed.
1116 * Xml.cs: Changed to static.
1118 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1120 * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
1121 IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
1122 ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
1123 IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
1124 ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
1125 IBuildPropertyGroupCollection.cs: Removed.
1127 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1129 * BuildItem.cs: Removed IBuildItem references.
1130 * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
1131 IBuildItemGroup references. Changed Evaluate to internal.
1132 * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
1133 reference and hidden constructors.
1134 * BuildProperty.cs: Removed IBuildProperty reference.
1135 * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
1136 IBuildPropertyGroup references. Changed Evaluate to internal.
1137 * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
1138 reference and hidden constructors.
1139 * ConsoleLogger.cs: Updated names of event handlers.
1140 * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
1141 Escape. Added UnloadAllProjects () and UnloadProject ().
1142 * FileLogger.cs: Removed ApplyParameter ().
1143 * GroupingCollection.cs: Hidden.
1144 * InvalidProjectFileException.cs: Removed HasBeenLogged property.
1145 * ItemPropertyGroupingBase.cs: Commented.
1146 * ProcessingPass.cs: Hidden.
1147 * Project.cs: Removed IProject reference. Changed CurrentEncoding to
1149 * Target.cs: Removed ITarget reference.
1150 * TargetCollection.cs: Removed ITargetCollection reference.
1151 * TaskElement.cs: Removed ITaskElement reference.
1152 * TaskEngineAssemblyResolver.cs: Hidden.
1153 * Utilities.cs: Made static class, removed CheckPath (),
1154 ValidateCulture (), GetSupportedCultures () and added Escape ().
1156 2006-02-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1158 * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
1161 2005-09-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1163 * Project.cs: Added MonoTODO attributes.
1164 * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
1165 ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
1166 IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
1167 BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
1168 SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
1169 BuildItemGroup.cs, InvalidProjectFileException.cs,
1170 BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
1171 Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
1172 PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
1173 ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
1174 IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
1175 IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
1176 ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
1177 ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
1178 IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
1179 IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
1180 BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
1181 ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
1183 2005-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
1185 * TaskDatabase.cs: Change Shared to Framework.
1186 * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
1187 CaseInsensitiveHashCodeProvider
1189 2005-09-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1191 * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
1192 * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
1195 2005-09-09 Marek Sieradzki <marek.sieradzki@gmail.com>
1197 * InternalLoggerException.cs: Changed protected fields to private.
1199 2005-09-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1201 * Engine.cs: Added check for globalProperties.
1202 * Project.cs: Added using path from importedProject.FullFileName when
1203 adding UsingTask elements.
1205 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1207 * TaskElement.cs: Changed ReflectedType to PropertyType.
1208 * ChangeType.cs (TransformToString): Changed to pass proper Type to
1211 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1213 * BuildPropertyGroup.cs: Added check for PropertyType when adding a
1215 * BuildProperty.cs: Organized PropertyType enum.
1216 * Engine.cs: Added setting CommandLine PropertyType of global
1219 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1221 * InvalidProjectFileException.cs: Changed Message property.
1222 * ChangeType.cs (TransformToString): Added separator between items.
1223 * TaskEngineAssemblyResolver.cs: Formatting.
1225 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1227 * DirectoryScanner.cs: Added.
1228 * BuildItem.cs: Moved file scanning code to DirectoryScanner.
1229 * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
1230 * Project.cs: Removed Evalute* ().
1232 2005-08-30 Marek Sieradzki <marek.sieradzki@gmail.com>
1234 * Target.cs: Formatting.
1235 * Expression.cs: Added check if array == null.
1236 * BuildItem.cs: Removed 'break' to remove warnings.
1237 * ConsoleLogger.cs: Formatting.
1238 * Engine.cs: Added handling of default target(s).
1239 * Project.cs: Added handling of default target(s).
1241 2005-08-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1243 * TaskElement.cs: Added check for parameters.
1244 * Target.cs: Added logging of target skipping.
1245 * Expression.cs: Changed returning object[] to string[], bool[]... in
1247 * ItemReference.cs: Fixed for item references without custom
1249 * BatchingImpl.cs: Added real inputs/outputs checking.
1250 * Engine.cs: Moved global properties setting.
1251 * Project.cs: Moved global properties setting.
1253 2005-08-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1255 * Target.cs: Added checks for target existence.
1256 * BuildItemGroup.cs: Changed to use transforms.
1257 * MetadataReference.cs: Wrote real implementation.
1258 * ItemReference.cs: Rewritten to use transforms.
1259 * BuildItem.cs: Changes for transforms and metadata.
1260 * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
1262 * Project.cs: Fixed project importing.
1263 * ImportedProject.cs: Changed to throw exceptions instead of returning
1266 2005-08-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1268 * Engine.cs: Removed FIXME.
1269 * Project.cs: Splitted ProcessElements and added project importing.
1270 * ImportedProject.cs: Rewritten.
1272 2005-08-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1274 * TaskElement.cs: Added getting of objects of every type.
1275 * BuildItemGroup.cs: Added ToITaskItemArray ().
1276 * Expression.cs: Implemented part that is not using metadata.
1277 * ItemReference.cs: Implemented parsing item references. Need to fix
1279 * BuildItem.cs: Fixed ToITaskItem ().
1280 * PropertyReference.cs: Implemented parsing property references. This
1281 also needs validity checking.
1283 2005-08-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1285 * TaskElement.cs: Added Output element handling.
1286 * Target.cs: Cleaned up.
1287 * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1288 * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1289 ItemReference.cs, ChangeType.cs: Added.
1290 * BuildItem.cs: Added creating BuildItem from TaskItem.
1291 * BuildPropertyGroup.cs: Small changes.
1292 * BatchingImpl.cs: Fixed to return real task execution result.
1293 * BuildProperty.cs: Fixed FinalValue property.
1294 * Engine.cs: Reformatted logging.
1295 * Project.cs: Added check to EvaluateProperty.
1297 2005-08-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1299 * TaskElement.cs: Added part of execution engine.
1300 * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1301 * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1302 * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1303 * BuildItem.cs: Added handling of built-in metadata and referencing
1304 Items by name not FullName.
1305 * BatchingImpl.cs: Added temporary task "batching".
1306 * ConsoleLogger.cs: Added temporary workaround to not show sender.
1307 * Project.cs: Added Evaluate. It will be moved to separate class.
1309 2005-08-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1311 * EventSource.cs, Engine.cs: Added CriticalEvents.
1312 * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1313 Project.cs: Added some support for items.
1314 * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1316 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1318 * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1321 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1323 * BatchingImpl.cs: Added.
1324 * BuildWhen.cs, BuildEngine.cs, Target.cs,
1325 BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1326 BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1327 TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1328 GroupingCollection.cs: Updated.
1330 2005-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1332 * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1333 BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1334 BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1335 BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1336 EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1337 GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1338 InternalLoggerException.cs, InvalidProjectFileException.cs,
1339 ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1340 ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1341 TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1342 TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1343 Initial check-in of implementations.
1345 2005-07-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1347 * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1348 IBuildItemGroupCollection.cs, IBuildProperty.cs,
1349 IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1350 ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1351 IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1352 IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1353 Initial check-in of interfaces and a syntax file, real classes are
1354 changing a lot so I'll wait a moment with checking them in.