1 2009-09-25 Ankit Jain <jankit@novell.com>
3 * Project.cs (BuildTarget): Handle skipped targets.
5 2009-09-25 Ankit Jain <jankit@novell.com>
7 * Project.cs (DoLoad): If a VS2003 project is detected, then throw
8 InvalidProjectFileException with useful error.
10 2009-09-24 Ankit Jain <jankit@novell.com>
12 * Project.cs (Load): Emit the .sln.proj file only if env var
13 XBUILD_EMIT_SOLUTION is set.
15 2009-09-24 Ankit Jain <jankit@novell.com>
17 * Project.cs (GetKeyForTarget): Make target name, case insensitive.
19 2009-09-24 Ankit Jain <jankit@novell.com>
21 * Project.cs (InitializeProperties): Set 'MSBuildProjectDefaultTargets'
24 2009-09-10 Ankit Jain <jankit@novell.com>
26 * BuildItem.cs (Evaluate): Metadata from "Include" should be,
27 preserved, so use ConvertTo ITaskItem, rather than string.
28 Ensure that the new items have the metadata from references _in_
29 Include, and the metadata of _this_ builditem.
30 * DirectoryScanner.cs (Includes): Change to a array of ITaskItem.
31 (MatchedFilenames): Rename to ..
32 (MatchedItems): .. this, and change type of array of ITaskItem.
33 Ensure that metadata of items in Includes are retained in the
36 * BuildItemGroup.cs (ConvertoToITaskItemArray): Add 'separator'
37 param. If separator is present, then just return a "Join'ed"
38 string as the single task item.
39 * ItemReference.cs: Track api changes.
41 * BuildProperty.cs (ConvertToITaskItemArray): Split the value,
42 as we need separate task items.
44 2009-09-01 Ankit Jain <jankit@novell.com>
47 * Project.cs (BuildTarget): Move caching of target outputs to ..
48 * Target.cs: .. here. Move LogTargetSkipped also here.
49 Ensure that caching happens for target dependencies also.
51 2009-09-01 Ankit Jain <jankit@novell.com>
53 * DirectoryScanner.cs (Scan): Ignore empty entries in includes and
56 2009-09-01 Ankit Jain <jankit@novell.com>
58 * Expression.cs (ParseOptions): New enum. Replace the bool params
59 of exression.Parse with this. Add option to control expansion of
61 (CopyToExpressionCollection): Track api changes.
63 Update all expr.Parse calls to use the new enum.
64 * BuildItem.cs, BuildProperty.cs, BuildTask.cs, Import.cs,
65 Target.cs, TargetBatchingImpl.cs, UsingTask.cs: Track api changes.
67 * BatchingImplBase.cs: Track api changes. Allow metadata refs
69 * ConditionFactorExpression.cs: Allow metadata refs in conditions.
70 * ItemReference.cs: Allow metadata in transforms.
71 * TaskEngine.cs: Allow metadata refs.
73 * MetadataReference.cs (.ctor): Add a 'original string' param.
75 2009-08-29 Ankit Jain <jankit@novell.com>
77 * Expression.cs (ExpressionOptions): New.
79 Introduce a ExpressionOptions argument to all ConvertTo*
80 methods. Implement the rule: in evaluation phase, expand
81 all items completely, but dont expand item refs in properties.
82 At other times, expand the item refs in the properties.
83 See comments in Expression.cs, for a full explanation.
84 * BuildItem.cs: Track api changes.
85 * BuildItemGroup.cs: Likewise.
86 * BuildProperty.cs: Track api changes. Handle self-references.
87 * BuildTask.cs: Track api changes.
88 * IReference.cs: Add ExpressionOptions param.
89 * ItemReference.cs: Track api changes.
90 * PropertyReference.cs: Likewise.
91 * MetadataReference.cs: Likewise.
92 * ExpressionCollection.cs: Track api changes. Add support for
93 converting all primitive types and DateTime, instead of a fixed
95 * Project.cs (GetMetadataBatched): Use the evaluated metadata.
96 * TaskBatchingImpl.cs: Handle the case when batching is required,
97 but no items are available.
99 * TaskEngine.cs: Throw on unsupported types. Correctly handle
100 properties in case of empty values.
102 2009-08-26 Ankit Jain <jankit@novell.com>
104 * Expression.cs: Correctly handle a item reference with transform
105 when allowItems is false. If item ref is ignored, then the transform
106 will get incorrectly matched as a metadata ref.
107 * ItemReference.cs (.ctor): Add a @original_string param.
109 2009-08-26 Ankit Jain <jankit@novell.com>
111 * Utilities.cs (UnescapeFromXml): New. From md.
112 * BuildProperty.cs (.ctor): Unescape xml codes from the InnerXml
113 of the property element.
115 2009-08-26 Ankit Jain <jankit@novell.com>
117 * BuildProperty.cs (ConvertToString): New.
118 (ConvertoToITaskItemArray): New. Parse the property value.
119 * PropertyReference.cs (ConvertToString): Use BuildProperty's
121 (ConvertoToITaskItemArray): Likewise.
123 2009-08-21 Ankit Jain <jankit@novell.com>
125 * Engine.cs (EndProjectBuild): Use the @succeeded argument
126 instead of hardcoding 'true'.
127 * Target.cs (Build): Add an overload to return executeOnErrors
128 value for the target executed. If building dependencies fails,
129 and executeOnErrors is true, then execute OnError tasks.
130 Add the new param to ..
131 (BuildDependencies): this, ..
133 (GetDependencies): Improve error message and variable name.
134 (ExecuteOnErrors): Honor OnError tag's Condition also.
135 * TaskBatchingImpl.cs (Run): Correctly set executeOnErrors param.
137 2009-08-20 Ankit Jain <jankit@novell.com>
140 * Project.cs (Load): Add support for loading .sln files.
142 2009-08-20 Ankit Jain <jankit@novell.com>
144 * BuildTask.cs (Execute): Use task_logger only after the task
145 has been initialized. Catch and report task loading errors.
146 * Target.cs (DoBuild): Dont rethrow the exception, and emit
147 the stacktrace as a low importance message.
149 2009-08-18 Ankit Jain <jankit@novell.com>
151 * BatchingImplBase.cs: Make the item name lookups and metadata be case
153 * TaskDatabase.cs: Likewise.
154 * TaskEngine.cs: Make property name looks, case insensitive.
156 2009-08-09 Miguel de Icaza <miguel@novell.com>
158 * ConsoleLogger.cs: Change the format of the error and warnings
159 strings to work when invoked inside Emacs by not rendering the
160 column if available, by using lowercase "error"/"warning" strings
161 instead of camelcased versions and to not have unnecessary padding.
163 2009-07-31 Ankit Jain <jankit@novell.com>
165 * ConsoleLogger.cs: Keep track of all the errors and warnings
166 and show them at the end.
168 2009-07-31 Ankit Jain <jankit@novell.com>
170 * Target.cs (Build): Log a message if a target is skipped.
172 * BuildTask.cs (Execute): Log error if task execution fails.
174 2009-07-30 Ankit Jain <jankit@novell.com>
176 * Engine.cs (.ctor): Set default BinPath. Currently this assumes
177 v2.0, this will change when multi-targeting lands.
179 2009-07-30 Ankit Jain <jankit@novell.com>
181 * Project.cs (InitializeProperties) Set 'MSBuildProjectFile' and
182 'MSBuildProjectName' properties.
184 2009-07-28 Ankit Jain <jankit@novell.com>
186 * TaskEngine.cs (Prepare): Fix formatting mistake.
187 * ConsoleLogger.cs: Emit "-- FAILED" also when project/target building
188 fails. Also, emit result of project at Normal verbosity level.
190 2009-07-23 Ankit Jain <jankit@novell.com>
193 * Project.cs (ExtensionsPath): New.
194 (InitializeProperties): Set "MSBuildExtensionsPath" property.
196 2009-06-12 Ankit Jain <jankit@novell.com>
199 * ExpressionCollection.cs (ConvertToITaskItemArray): Whitespace around a
200 itemref is allowed if the prev/next element is ";".
202 2009-06-12 Ankit Jain <jankit@novell.com>
204 * Utilities.cs (FromMSBuildPath): Return null if the path contains
205 "drive:" only on windows.
207 2009-06-07 Ankit Jain <jankit@novell.com>
209 * Target.cs (Outputs): Use ITaskItem[] for conversion, to retain
212 2009-05-29 Ankit Jain <jankit@novell.com>
214 Correctly handle global properties. Correctly log
215 project/build events.
217 * BuildPropertyGroup.cs (Clone): Implement.
218 * Engine.cs (globalProperties): Rename to ..
219 (global_properties): .. this.
220 (currentlyBuildingProjectsStack): New. Used to correctly
221 log and raise project/build start/finish events.
222 (BuildProjectFile): Override any project global properties
223 with explicitly specified ones, here in the param @globalProperties.
224 Mark project for reevaluation, which will update the engine's
225 global properties also.
226 Reset both engine and project's old global properties at the end.
227 (UnregisterAllLoggers): Log build finished only if we are currently
229 (StartBuild): Rename to ..
230 (StartProjectBuild): .. this. Keeps track of the projects being built
231 in the new stack, and logs project and build events accordingly.
232 (EndProjectBuild): New. Uses the stack to keep track of projects
233 finishing builds, and raises project and build events accordingly.
234 (LogProjectStarted): Move here from Project.cs
235 (LogProjectFinished): Likewise.
237 * Project.cs (Build): Log start of project build.
238 Set current directory to the project file's dir, and reset at end.
239 (BuildInternal): Don't log here, its done in Build.
240 (BuildTarget): Already built targets are keyed by the set of global
241 properties that they were built with.
242 (GlobalPropertiesToString): New.
243 (ResetBuildStatus): 'building' must be true to allow built targets to be reset.
244 (RemoveBuiltTargets): Initialize builtTargetKeys in .ctor
245 (Evaluate): Remove built targets only if we are currently building and
246 build settings are None.
247 Merge project's global properties with those of the parent engine.
248 Add missing properties from engine's global properties.
249 (LogTargetSkipped): Fix format string, add the reqd argument.
251 2009-05-29 Ankit Jain <jankit@novell.com>
253 * ConditionFunctionExpression.cs: Add 'HasTrailingSlash' function.
254 (HasTrailingSlash): New.
256 2009-05-12 Ankit Jain <jankit@novell.com>
258 * Project.cs (.ctor): Init timeOfLastDirty.
260 2009-05-05 Miguel de Icaza <miguel@novell.com>
262 * Contribution from Martin Brenn to fix #498154.
264 2009-04-27 Ankit Jain <jankit@novell.com>
267 * Engine.cs (BuildProjectFile): Set project's GlobalProperties to the
268 one passed as argument.
270 2009-04-27 Ankit Jain <jankit@novell.com>
272 * TaskEngine.cs (Prepare): Emit a useful error message property value
273 can't be converted to required type.
275 2009-04-27 Ankit Jain <jankit@novell.com>
277 * ExpressionCollection.cs (ConvertToObject): Allow true/on/yes
278 as valid true values for bool, and corresponding for false.
280 2009-03-27 Jonathan Chambers <joncham@gmail.com>
282 * BuildWhen.cs: Add basic implementation.
283 * BuildChoose.cs: Add basic implementation.
284 * BuildItem.cs (AddEvaluatedItem): Add BuiltItem to
285 EvaluatedItemsIgnoringCondition.
286 * GroupingCollection.cs: Add evaluation of BuildChoose items.
288 2009-03-26 Jonathan Chambers <joncham@gmail.com>
290 * TaskDatabase.cs (RegisterTask): Search for class by name
291 if task was not found using GetType (which uses namespace).
293 2009-02-26 Ankit Jain <jankit@novell.com>
295 * Target.cs: Handle target with no tasks. Log errors.
297 2009-02-24 Ankit Jain <jankit@novell.com>
299 Lazily load UsingTask tasks.
300 * UsingTask.cs (Evaluate): Register 'this' with task database,
301 but don't load it yet. Register only if condition evaluates to true.
302 Move the load logic to ..
303 (Load): .. here. Register with the specified task database.
304 * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance
305 in a table keyed by task name, but don't load it yet.
306 (GetTypeFromClassName): Try to load UsingTask if task is not already
307 loaded. Move loading logic to ..
308 (GetTypeFromClassNameInternal): .. here.
309 (CopyTasks): Copy the usingTasks table also.
311 2009-02-23 Ankit Jain <jankit@novell.com>
313 * BuildItem.cs (AddMetadata): Allow overwriting older values.
315 2009-02-22 Ankit Jain <jankit@novell.com>
317 * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode
318 instead of XmlElement. Eg. XmlComment
320 2009-02-21 Ankit Jain <jankit@novell.com>
322 * Utilities.cs (FromMSBuildPath): Copy from monodevelop.
323 * Project.cs (Load): Use FromMSBuildPath on the path.
324 (InitializeProperties): Set "MSBuildToolsPath" also.
326 2009-02-20 Ankit Jain <jankit@novell.com>
329 * ConditionTokenizer.cs: Handle unquoted item references (with or w/o
330 transforms) in conditions.
331 * ConditionParser.cs: Parse unquoted item, property references.
332 eg. Condition = " @(Foo->'%(Extension)') == '.exe' "
333 * Token.cs (Token.ToString): Override.
334 (TokenType.Transform): Uncomment.
336 2009-02-12 Jonathan Chambers <joncham@gmail.com>
338 * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
339 no XmlElement.InnerText. This allows properties to be additional
342 2009-02-01 Ankit Jain <jankit@novell.com>
344 * BuildEngine.cs (BuildProjectFile): Use
345 BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
346 * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
347 built. Move logging of project start/finish to ..
348 * Project.cs: .. here. Build a target only if hasn't been built already.
349 Keep track of target outputs, and return those even if an already built
350 target has been invoked again.
351 Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
353 2009-01-31 Ankit Jain <jankit@novell.com>
355 * BatchingImpl.cs: Split into ..
356 * BatchingImplBase.cs: .. this,
357 * TaskBatchingImpl.cs: .. this ..
358 * TargetBatchingImpl.cs: .. and this. Implement target batching here.
360 * Target.cs (DoBuild): Use TargetBatchingImpl for building.
361 (Log*): Move to TargetBatchingImpl .
365 2009-01-30 Ankit Jain <jankit@novell.com>
367 * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
370 2009-01-29 Ankit Jain <jankit@novell.com>
372 * BuildItem.cs (child_items): Change type from BuildItemGroup to
374 (HasParent): Rename to ..
375 (HasParentItem): .. this.
376 (ParentItemGroup): Add setter.
378 * BuildItemGroup.cs (.ctor): Add overload with @project param.
380 (AddItem): Correctly set the ParentItemGroup for new build items.
381 (ParentProject): Add setter.
382 * Project.cs: Set the project for new BuildItemGroup instances.
383 * TaskEngine.cs (PublishItemGroup): Likewise.
385 2009-01-06 Ankit Jain <jankit@novell.com>
387 * Project.cs (Build): Honor InitialTargets list.
389 2009-01-06 Ankit Jain <jankit@novell.com>
391 * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
392 the property type also.
393 * MSBuild.cs (Execute): Parse 'Properties' task param to set global
396 2009-01-06 Ankit Jain <jankit@novell.com>
398 * Project.cs (Build): Correctly handle null targetNames argument.
400 2009-01-06 Ankit Jain <jankit@novell.com>
402 * Engine.cs (LogProjectStarted): Add a null check.
404 2009-01-01 Ankit Jain <jankit@novell.com>
406 * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
407 * ChangeType (ToBuildItemGroup): Add 'split' param.
409 * Expression.cs (Parse): Add a new overload with a 'split' param.
410 * ExpressionCollection.cs (Add): Add new overload for IReference,
411 remove the ones for Item/Metadata/PropertyReference.
412 (ConvertToArray): Implement correctly.
413 (ConvertToString): Track api changes.
414 (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
415 (ConvertToITaskItemArray): Implement support for concat'ing expressions.
416 (AddItemsToArray): New.
417 (ConvertToITaskItemArrayFromString): Refactor a bit.
418 (ThrowCantConcatError): New.
419 * ItemReference.cs: Update.
420 * MetadataReference.cs: Update.
421 * PropertyReference.cs (ConvertToITaskItemArray): Implement.
423 * BuildPropertyGroup.cs: Track api changes.
424 * TaskEngine.cs (PublishOutput): Improve exception message.
425 * Project.cs (DoLoad): Improve exception message. Add a null check.
427 2008-12-30 Ankit Jain <jankit@novell.com>
429 * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
430 metadata values for unqualified references.
431 (BuildItemGroupToITaskItemArray): Rename to ..
432 (BuildItemGroupToITaskItems): .. this.
435 2008-12-18 Ankit Jain <jankit@novell.com>
437 * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
439 2008-12-17 Ankit Jain <jankit@novell.com>
441 * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
442 only one instance of unique metadata value is required.
444 2008-11-22 Ankit Jain <jankit@novell.com>
446 * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
448 * MetadataReference.cs (ConvertToITaskItemArray): New.
449 * Project.cs (GetAllItemGroups): New.
451 2008-11-21 Ankit Jain <jankit@novell.com>
453 * BatchingImpl.cs: Add task batching implementation.
454 * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
455 * ExpressionCollection.cs (Count): New.
456 (ConvertToString): Handle MetadataReference.
457 * ItemReference.cs (ConvertToString):
458 (ConvertToITaskItemArray): Use the batching api.
460 * MetadataReference.cs (ConvertToString): New.
462 * Project.cs: Add api for accessing batched items and metadata.
463 * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
466 2008-10-01 Ankit Jain <jankit@novell.com>
468 * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
469 (BuildProjectFile): If filename is null (project.LoadXml) then use
471 * BuildTask.cs (InitializeTask): Track api change.
472 * Expression.cs (Parse): Skip empty entries in the expression.
474 2008-09-24 Ankit Jain <jankit@novell.com>
476 * Engine.cs: Add argument checks.
477 * Project.cs: Likewise.
479 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
481 * Project.cs (Build): Add outputs to targetOutputs.
483 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
485 * ExpressionCollection.cs (ConvertToArray): Simplify.
487 2007-03-05 Marek Sieradzki <marek.sieradzki@gmail.com>
489 * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
490 simplified. It still needs tests and refactoring.
492 2007-02-22 Marek Sieradzki <marek.sieradzki@gmail.com>
494 * BuildEngine.cs (BuildProjectFile): Don't crash on null
497 * Target.cs: Add Outputs property.
499 2007-02-20 Marek Sieradzki <marek.sieradzki@gmail.com>
501 * Target.cs (Build): Split to GetDependencies () and BuildDependencies
502 (). Support condition.
504 * BatchingImpl.cs (BatchBuildTask): Simplify.
506 2007-02-18 Marek Sieradzki <marek.sieradzki@gmail.com>
508 * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
511 * ConditionFunctionExpression.cs: Removed warnings.
513 * BuildTask.cs (Execute): Write exceptions to std err (they should be
514 logged but it's better than swallowing).
516 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
518 * ConditionTokenizer.cs: Add Putback ().
520 * ConditionParser.cs: Add parsing of functions.
522 * ConditionFunctionExpression.cs: Add.
524 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
526 * BuildPropertyGroup (SetProperty): Throw an exception when trying to
527 set property in persisted property group.
529 2007-01-29 Marek Sieradzki <marek.sieradzki@gmail.com>
531 * BuildTask.cs (Execute): Log errors that happen when invoking ITask
534 * ConsoleLogger.cs (TargetFinishedHandler)
535 (TaskFinishedHandler): Increment error count.
537 2007-01-28 Marek Sieradzki <marek.sieradzki@gmail.com>
539 * BuildItem.cs (RemoveMetadata): Remove from XML.
540 (SetMetadata): Trigger project reevaluation.
542 2007-01-26 Marek Sieradzki <marek.sieradzki@gmail.com>
544 * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
547 2007-01-23 Marek Sieradzki <marek.sieradzki@gmail.com>
549 * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
550 TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
551 BatchingImpl.cs, BuildProperty.cs: Track API changes.
553 * Expression.cs (Parse): Added allowItems parameter and made regexes
556 * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
557 will try to import a.ext when given a.EXT.
559 2007-01-21 Marek Sieradzki <marek.sieradzki@gmail.com>
561 * BuildItemGroup.cs: Store information saying what is the last item
562 group that contains build item name.
564 * Project.cs (Build): Pass empty array (build default targets).
566 2007-01-19 Marek Sieradzki <marek.sieradzki@gmail.com>
568 * Token.cs: Commented Transform and LiteralSubExpression and added
571 * ConditionParser.cs: Removed redundant casts, rewrote
572 ParseFactorExpression () and added parsing of '!'.
574 * ConditionTokenizer.cs: Always skip whitespaces when getting next
575 token (no IgnoreWhiteSpace property). Don't create a token from '->'.
576 Moved ReadChar () in front of all ifs.
578 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
580 * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
581 from XML. (not to escape items that have parents twice).
583 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
585 * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
586 (Project): Renamed to ParentProject.
588 * BuildItem.cs (ctor)
589 (CopyCustomMetadata): Add null check.
591 * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
592 (RemoveProperty): Added null check.
594 * TargetCollection.cs (RemoveTarget): Added null check.
596 * Engine.cs (UnloadProject): Added null check.
598 * GroupingCollection.cs (Remove): Check if removed group belongs to
601 * Project.cs (AddNewItem): Implemented.
602 (RemoveItem): Reorganized.
603 (SetProjectExtensions): Added null check.
605 2007-01-14 Marek Sieradzki <marek.sieradzki@gmail.com>
607 * BuildItemGroup.cs (Detach): Added.
609 (RemoveItemAt): Used Detach ().
611 * BuildItem.cs: Made FromXml and HasParent internal and added
612 ParentItem and ParentItemGroup properties (internal).
615 * GroupingCollection.cs (Remove): Used Detach ().
617 * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
619 (GetEvaluatedItemsByNameIgnoringCondition)
620 (GetEvaluatedItemsByName)
621 (GetEvaluatedProperty): Reevaluate if needed.
623 (RemoveAllItemGroups)
624 (RemoveAllPropertyGroups): Implemented.
625 (DoLoad): Added closing of TextReader.
627 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
629 * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
630 change but just mark that it needs it.
632 * Project.cs: Reevaluate when it needs reevaluation and one of
633 Evaluated* properties is used.
635 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
637 * Target.cs: Throw an exception when <OnError> is not last element in
640 * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
642 * TargetCollection.cs: If a target is already there replace it with
645 * BuildProperty.cs: Added XmlElement property.
647 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
649 * ImportCollection.cs: Don't add imports that are already added.
651 * BuildItemGroup.cs: MonoTODOs.
653 * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
654 condition can't be evaluated to bool.
656 * BuildPropertyGroup.cs (Evaluate): Simplify.
658 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
660 * BuildWhen.cs: Moved BindToXml () code to ctor.
662 * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
663 property needed for removing groups.
665 * Engine.cs: Added StartBuild () that logs build start when Build ()
668 * GroupingCollection.cs: Added Remove () for item and property groups.
670 * Project.cs (AddNewImport): Implemented.
671 (AddNewItemGroup): Implemented.
672 (AddNewPropertyGroup): Implemented.
673 (AddNewUsingTaskFromAssemblyFile): Implemented.
674 (AddNewUsingTaskFromAssemblyName): Implemented.
675 (RemoveItemGroup): Implemented.
676 (RemovePropertyGroup): Implemented.
678 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
680 * BuildItemGroup.cs (Clear): Remove from XML.
682 * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
683 to Project.EvaluatedProperties.
684 (Clear): Remove from XML.
686 2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
688 * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
691 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
693 * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
694 Add () calls when processing a project from Import and
695 evaluate_iterator for evaluation.
697 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
699 * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
700 and prepend relative directory of importing project to full path of
703 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
705 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
706 BuildItemGroupCollection.cs, Project.cs: Track API changes.
708 * GroupingCollection.cs: Now it needs Project reference so added it.
710 * BuildTask.cs: Formatting.
712 * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
714 * ConditionParser.cs (ParseAndEvaluate): Added.
716 * BuildItem.cs: Changed exception message.
718 2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
720 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
721 BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
722 GroupingCollection doesn't need Project reference.
724 * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
726 * BuildItemGroup.cs: Added new readOnly parameter to ctor.
727 (Project.EvaluatedItems is a read only item group.)
728 (ReplaceWith): Added.
730 * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
731 global property group causes reevaluation of its project.
733 * Project.cs: ProcessXml () is internal and can be "safely" invoked by
736 * OldExpression.cs: Removed.
738 * BuildProperty.cs (Evaluate): Simplified.
740 * ChangeType.cs (TemporaryTransform): Simplified.
742 * BuildItem.cs: There are now 3 types of build items: from XML, having
743 parent from XML, virtual. Added SplitParentItem ().
745 2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
747 * Utilities.cs: Added Unescape ().
749 * BuildItemGroup.cs, BuildItem.cs: Pass null project to
750 BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
751 groups (at the moment just unescape).
753 * Expression.cs (CopyToExpressionList): Unescape strings.
755 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
757 * Target.cs (ctor): Added ImportedProject argument and removed
759 (AddNewTask): Implemented.
761 * TargetCollection.cs (AddNewTarget): Implemented.
763 * Project.cs: Track API changes.
765 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
767 * Target.cs (Build): Don't throw anything in case of error, just
770 * BuildItemGroup.cs (set_Condition): Throw an exception if group is
773 * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
776 * BuildProperty.cs (ToString): Throw an exception if property is not
778 (op_Explicit): Added a null check.
780 * Engine.cs: Better error message.
782 * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
783 IndexOutOfRangeException.
785 * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
786 (MarkProjectAsDirty): Set time.
788 2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
790 * BuildItemGroup.cs (Clone): Throw exception.
792 * Project.cs (Load): Throw InvalidProjectFileException if anything
795 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
797 * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
798 and ConvertToITaskItemArray ().
800 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
802 * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
803 classes that were public in Beta 2 and aren't used.
805 * Expression.cs: Added replacement for parsing expressions char by
806 char. It uses regexes to find item/property/metadata references in
809 * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
810 Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
811 BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
813 * ConditionRelationalExpression.cs: Formatting.
815 * OldExpression.cs: Commented everything.
817 * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
818 parsing to Expression.
820 * BuildItem.cs: Check if project is from XML in set_Condition and
823 * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
826 * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
827 can evaluate expression in CanEvaluateToBool ().
829 2006-12-12 Marek Sieradzki <marek.sieradzki@gmail.com>
831 * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
832 which item group is imported.
834 * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
836 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
838 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
839 BuildItemGroupCollection.cs: Little changes related to
842 * ImportCollection.cs: Use GroupingCollection not an internal list.
844 * Import.cs (Evaluate): Split to functions and check if
845 EvaluatedProjectPath is empty.
847 * GroupingCollection.cs, Project.cs: Move evaluation to
848 GroupingCollection. Change algorithm to use 2 passes: first for property
849 groups and imports and second for item groups.
851 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
853 * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
854 BuildItemGroup> not IDictionary.
856 * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
857 evaluated to false because we want to add every item to
858 Project.EvaluatedItemsByNameIgnoringCondition.
860 * Project.cs (Build): Don't throw an exception just return false.
861 (GetEvaluatedProperty): Avoid NullReferenceException.
862 (SetProjectExtensions): Implemented.
864 2006-12-08 Marek Sieradzki <marek.sieradzki@gmail.com>
866 * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
868 * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
869 BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
870 Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
872 * ImportCollection.cs: Added a note.
874 2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
876 * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
878 * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
879 (UsingTask[] array, int index)
881 * TaskEngine.cs: Reformatted PublishOutput () and added copying of
882 items to Project.EvaluatedItems in PublishItemGroup ();
884 * BuildItemGroup.cs: Added [MonoTODO].
886 * UsingTask.cs: Used expression for AssemblyFile to get around
887 problems with '\' and '/'.
889 * BuildItem.cs (ctor): Added null checks.
890 (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
891 (SetMetadata): Don't escape evaluatedMetadata and escape
892 unevaluatedMetadata only when treatPropertyValueAsLiteral.
894 * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
895 FromXml () instead of null checks.
896 (SetProperty): Escape propertyValue when it is literal.
898 * BuildProperty.cs: Changed exception message.
900 * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
902 (GetProjectExtensions): Implemented.
904 2006-12-05 Marek Sieradzki <marek.sieradzki@gmail.com>
906 * BuildTask.cs: Remove [MonoTODO], add exception throwing in
907 GetParameterValue (), use expressions in ContinueOnError.
908 * ConditionFactorException.cs: Throw InvalidProjectFileException ()
909 instead of InvalidOperationException ().
910 * ImportCollection.cs: Implement CopyTo ().
911 * Target.cs: Remove redundant variables (XmlAttributes), return
912 String.Empty in DependsOnTargets, add a null check in RemoveTask ().
913 * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
914 * Import.cs: Throw an exception when file does not exist.
915 * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
916 * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
917 need to treat item as a token probably
919 2006-12-04 Marek Sieradzki <marek.sieradzki@gmail.com>
921 * Import.cs: Check for project.FullFileName (Path.DirectoryName would
923 * BuildItemGroupCollection.cs: Changed exception types.
925 2006-10-14 Marek Sieradzki <marek.sieradzki@gmail.com>
927 * Engine.cs: Removed redundant cast.
929 * UsingTaskCollection.cs:
933 * TargetCollection.cs: Comment unused variable.
934 * ConditionTokenizer.cs: Simplified checking if current token is a
936 * Target.cs: Removed old code.
938 2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
940 * Target.cs: Changed "" to String.Empty.
941 * TaskEngine.cs: Don't try to convert a parameter to specific type if
942 string was evaluated to String.Empty.
943 * InternalLoggerException.cs:
944 * InvalidProjectFileException.cs: Added LinkDemand before
946 * ConsoleLogger.cs: Changed "" to String.Empty.
947 * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
948 with change to generics).
949 * Project.cs: Made Build () throw more meaningful exception.
951 2006-10-06 Marek Sieradzki <marek.sieradzki@gmail.com>
953 * Target.cs: Reformatted.
954 * TaskEngine.cs: Removed redundant code.
955 * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
956 * Engine.cs: Made BuildProjectFile () load project file if it's not
959 2006-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
961 * ConditionRelationalExpression.cs: Change comparers to case
963 * ImportCollection.cs: Add NotImplementedExceptions.
964 * BuildPropertyGroup.cs: Reformatted a bit.
965 * BuildProperty.cs: The same.
966 * Project.cs: Moved evaluation of imports before evaluation of
967 properties. This may "work" until importing projects is redesigned but
968 probably isn't correct.
970 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
972 * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
974 * BuildItemGroup.cs: Change return to continue.
976 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
978 * ConditionParser.cs: Copyright note.
979 * ExpressionCollection.cs: Fixed arrays passing.
981 2006-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
983 * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
984 Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
985 BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
986 TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
988 2006-06-25 Marek Sieradzki <marek.sieradzki@gmail.com>
990 * Token.cs: Changed names: removed "than".
991 * ConditionRelationalExpression.cs: Added.
992 * ConditionFactorExpression.cs: Added.
993 * BuildItemGroup.cs: Changed Condition property return value to return
994 String.Empty instead of null.
995 * ConditionParser.cs: Added support for parsing relational expressions
997 * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
998 abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
999 and CanEvaluateToBool (), CanEvaluateToNumber () and
1000 CanEvaluateToString ().
1001 * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
1002 appropriately to ConditionExpression base class.
1003 * ConditionTokenizer.cs: Added null check and changed names in enums:
1005 * ConditionNotExpression.cs: Added.
1006 * BatchingImpl.cs: Changed to use BoolEvaluate ().
1007 * Project.cs: Added checks for condition.
1009 2006-06-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1011 * ConditionalTokenizer.cs, ConditionalExpression.cs,
1012 ConditionalParser.cs: Changed name,
1014 * ConditionExpression.cs: Added Evaluate ().
1015 * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
1016 * BatchingImpl.cs: Added check if task should be executed.
1018 2006-06-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1020 * UsingTask.cs: Changed properties to return null on empty attribute.
1021 * UsingTaskCollection.cs: Added object to SyncRoot.
1022 * BuildPropertyGroup.cs: Added NotImplementedException throwing.
1024 2006-06-02 Marek Sieradzki <marek.sieradzki@gmail.com>
1026 * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
1027 BuildPropertyGroupCollection.cs: Fixed to match the tests.
1029 2006-05-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1031 * Utilities.cs: Implemented Escape ().
1032 * BuildItem.cs: Added null checks.
1033 * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
1034 * Project.cs: Commented out redundant Evaluate ().
1035 * BuildChoose.cs: Minor changes.
1037 2006-05-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1039 * Token: Added new few missing tokens.
1040 * Target.cs, Project.cs: Patch from Matthew Metnesky.
1041 * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
1042 ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
1043 ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
1044 LiteralTokenizer.cs:
1045 Removed literal expression parsing based on tokenizer and
1046 parser. It needs to be done by regex.
1048 Moved tokenizer to ConditionalTokenizer.cs.
1050 2006-05-05 Marek Sieradzki <marek.sieradzki@gmail.com>
1052 * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
1053 ItemReference.cs, PropertyReference.cs: Changed name of *Reference
1054 methods converting reference to string from ToString () to
1055 ConvertToString () to avoid mistakes like using ToString () provided
1058 2006-05-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1060 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
1061 Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
1062 PropertyReference.cs, BuildProperty.cs: Changed Expression to
1063 OldExpression and changed To* functions to one ConvertTo ().
1064 * TaskEngine.cs: Fixed PublishOutput ().
1065 * OldExpression.cs: Added. It will be temporarily used before
1066 LiteralExpression will be written using Tokenizer.
1067 * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
1068 ExpressionParseException.cs, LiteralExpression.cs: Added.
1070 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1072 * ImportedProject.cs: Removed warning.
1073 * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
1076 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1078 * Project.cs: Removed unnecessary variable.
1079 * Engine.cs: Added fixme.
1081 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1083 * BuildItem.cs: Moved checking if metadata name is reserved to internal
1084 class (Mono.XBuild.Utilities.ReservedNameUtils).
1086 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1088 * BuildTask.cs: Removed unnecessary variable.
1089 * Engine.cs: Added logging of the build start.
1090 * Project.cs: Removed unnecessary variable.
1092 2006-04-07 Marek Sieradzki <marek.sieradzki@gmail.com>
1094 * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
1096 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1098 * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
1100 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1102 * BuildItem.cs: Fix typo?
1104 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1106 * InternalLoggerException.cs, InvalidProjectFileException.cs,
1107 Engine.cs, Project.cs: Coding style fixes.
1109 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1111 * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
1113 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1115 * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
1116 to pass tests. Wrote serialization constructor.
1117 * Engine.cs, Project.cs: Global engine and project unloading, test and
1120 2006-03-28 Marek Sieradzki <marek.sieradzki@gmail.com>
1122 * UsingTask.cs: Formatting changes.
1124 2006-03-27 Crestez Leonard <cdleonard@gmail.com>
1126 * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
1127 to lists instead of hashtables.
1128 * Import.cs: Cleaned up, moved importing from Project.cs
1129 * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
1130 * Engine.cs: Cleaned up properties.
1131 * Project.cs: Moved importing to Import.cs, cleaned up properties,
1132 Separated evaluation and loading.
1134 2006-03-21 Crestez Leonard <cdleonard@gmail.com>
1136 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
1137 BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
1138 Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
1139 binding and evaluation, merge xml binding in constructors.
1140 * DirectoryScanner.cs: Includes CAN be empty.
1141 * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
1142 * ConsoleLogger.cs: Fix compilation warning.
1144 2006-03-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1146 * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
1148 2006-03-18 Marek Sieradzki <marek.sieradzki@gmail.com>
1150 * Engine.cs: API cleanup.
1152 2006-03-18 Crestez Leonard <cdleonard@gmail.com>
1154 * Project.cs: Cleaned up add.
1155 * Expression.cs: Hacked to transform \ and / to path separators.
1156 * BuildPropertyGroup.cs: Small cleanup.
1157 * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
1160 2006-03-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1162 * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
1163 * BuildItem.cs: Updated for new API and fixed crashing on non-existent
1165 * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
1166 BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
1167 Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
1169 * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
1170 * TaskElement.cs: Temporarily removed.
1171 * Xml.cs: Changed to static.
1173 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1175 * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
1176 IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
1177 ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
1178 IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
1179 ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
1180 IBuildPropertyGroupCollection.cs: Removed.
1182 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1184 * BuildItem.cs: Removed IBuildItem references.
1185 * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
1186 IBuildItemGroup references. Changed Evaluate to internal.
1187 * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
1188 reference and hidden constructors.
1189 * BuildProperty.cs: Removed IBuildProperty reference.
1190 * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
1191 IBuildPropertyGroup references. Changed Evaluate to internal.
1192 * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
1193 reference and hidden constructors.
1194 * ConsoleLogger.cs: Updated names of event handlers.
1195 * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
1196 Escape. Added UnloadAllProjects () and UnloadProject ().
1197 * FileLogger.cs: Removed ApplyParameter ().
1198 * GroupingCollection.cs: Hidden.
1199 * InvalidProjectFileException.cs: Removed HasBeenLogged property.
1200 * ItemPropertyGroupingBase.cs: Commented.
1201 * ProcessingPass.cs: Hidden.
1202 * Project.cs: Removed IProject reference. Changed CurrentEncoding to
1204 * Target.cs: Removed ITarget reference.
1205 * TargetCollection.cs: Removed ITargetCollection reference.
1206 * TaskElement.cs: Removed ITaskElement reference.
1207 * TaskEngineAssemblyResolver.cs: Hidden.
1208 * Utilities.cs: Made static class, removed CheckPath (),
1209 ValidateCulture (), GetSupportedCultures () and added Escape ().
1211 2006-02-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1213 * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
1216 2005-09-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1218 * Project.cs: Added MonoTODO attributes.
1219 * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
1220 ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
1221 IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
1222 BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
1223 SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
1224 BuildItemGroup.cs, InvalidProjectFileException.cs,
1225 BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
1226 Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
1227 PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
1228 ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
1229 IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
1230 IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
1231 ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
1232 ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
1233 IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
1234 IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
1235 BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
1236 ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
1238 2005-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
1240 * TaskDatabase.cs: Change Shared to Framework.
1241 * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
1242 CaseInsensitiveHashCodeProvider
1244 2005-09-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1246 * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
1247 * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
1250 2005-09-09 Marek Sieradzki <marek.sieradzki@gmail.com>
1252 * InternalLoggerException.cs: Changed protected fields to private.
1254 2005-09-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1256 * Engine.cs: Added check for globalProperties.
1257 * Project.cs: Added using path from importedProject.FullFileName when
1258 adding UsingTask elements.
1260 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1262 * TaskElement.cs: Changed ReflectedType to PropertyType.
1263 * ChangeType.cs (TransformToString): Changed to pass proper Type to
1266 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1268 * BuildPropertyGroup.cs: Added check for PropertyType when adding a
1270 * BuildProperty.cs: Organized PropertyType enum.
1271 * Engine.cs: Added setting CommandLine PropertyType of global
1274 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1276 * InvalidProjectFileException.cs: Changed Message property.
1277 * ChangeType.cs (TransformToString): Added separator between items.
1278 * TaskEngineAssemblyResolver.cs: Formatting.
1280 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1282 * DirectoryScanner.cs: Added.
1283 * BuildItem.cs: Moved file scanning code to DirectoryScanner.
1284 * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
1285 * Project.cs: Removed Evalute* ().
1287 2005-08-30 Marek Sieradzki <marek.sieradzki@gmail.com>
1289 * Target.cs: Formatting.
1290 * Expression.cs: Added check if array == null.
1291 * BuildItem.cs: Removed 'break' to remove warnings.
1292 * ConsoleLogger.cs: Formatting.
1293 * Engine.cs: Added handling of default target(s).
1294 * Project.cs: Added handling of default target(s).
1296 2005-08-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1298 * TaskElement.cs: Added check for parameters.
1299 * Target.cs: Added logging of target skipping.
1300 * Expression.cs: Changed returning object[] to string[], bool[]... in
1302 * ItemReference.cs: Fixed for item references without custom
1304 * BatchingImpl.cs: Added real inputs/outputs checking.
1305 * Engine.cs: Moved global properties setting.
1306 * Project.cs: Moved global properties setting.
1308 2005-08-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1310 * Target.cs: Added checks for target existence.
1311 * BuildItemGroup.cs: Changed to use transforms.
1312 * MetadataReference.cs: Wrote real implementation.
1313 * ItemReference.cs: Rewritten to use transforms.
1314 * BuildItem.cs: Changes for transforms and metadata.
1315 * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
1317 * Project.cs: Fixed project importing.
1318 * ImportedProject.cs: Changed to throw exceptions instead of returning
1321 2005-08-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1323 * Engine.cs: Removed FIXME.
1324 * Project.cs: Splitted ProcessElements and added project importing.
1325 * ImportedProject.cs: Rewritten.
1327 2005-08-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1329 * TaskElement.cs: Added getting of objects of every type.
1330 * BuildItemGroup.cs: Added ToITaskItemArray ().
1331 * Expression.cs: Implemented part that is not using metadata.
1332 * ItemReference.cs: Implemented parsing item references. Need to fix
1334 * BuildItem.cs: Fixed ToITaskItem ().
1335 * PropertyReference.cs: Implemented parsing property references. This
1336 also needs validity checking.
1338 2005-08-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1340 * TaskElement.cs: Added Output element handling.
1341 * Target.cs: Cleaned up.
1342 * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1343 * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1344 ItemReference.cs, ChangeType.cs: Added.
1345 * BuildItem.cs: Added creating BuildItem from TaskItem.
1346 * BuildPropertyGroup.cs: Small changes.
1347 * BatchingImpl.cs: Fixed to return real task execution result.
1348 * BuildProperty.cs: Fixed FinalValue property.
1349 * Engine.cs: Reformatted logging.
1350 * Project.cs: Added check to EvaluateProperty.
1352 2005-08-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1354 * TaskElement.cs: Added part of execution engine.
1355 * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1356 * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1357 * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1358 * BuildItem.cs: Added handling of built-in metadata and referencing
1359 Items by name not FullName.
1360 * BatchingImpl.cs: Added temporary task "batching".
1361 * ConsoleLogger.cs: Added temporary workaround to not show sender.
1362 * Project.cs: Added Evaluate. It will be moved to separate class.
1364 2005-08-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1366 * EventSource.cs, Engine.cs: Added CriticalEvents.
1367 * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1368 Project.cs: Added some support for items.
1369 * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1371 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1373 * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1376 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1378 * BatchingImpl.cs: Added.
1379 * BuildWhen.cs, BuildEngine.cs, Target.cs,
1380 BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1381 BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1382 TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1383 GroupingCollection.cs: Updated.
1385 2005-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1387 * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1388 BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1389 BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1390 BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1391 EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1392 GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1393 InternalLoggerException.cs, InvalidProjectFileException.cs,
1394 ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1395 ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1396 TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1397 TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1398 Initial check-in of implementations.
1400 2005-07-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1402 * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1403 IBuildItemGroupCollection.cs, IBuildProperty.cs,
1404 IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1405 ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1406 IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1407 IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1408 Initial check-in of interfaces and a syntax file, real classes are
1409 changing a lot so I'll wait a moment with checking them in.