1 2009-09-26 Ankit Jain <jankit@novell.com>
3 * Project.cs: Get InitialTargets from the imported projects also.
4 The combined list of targets are executed, in the order they were
6 DefaultTargets are also read in from imported projects, and the first
7 non-empty DefaultTargets found is used.
9 2009-09-25 Ankit Jain <jankit@novell.com>
11 * Project.cs (BuildTarget): Handle skipped targets.
13 2009-09-25 Ankit Jain <jankit@novell.com>
15 * Project.cs (DoLoad): If a VS2003 project is detected, then throw
16 InvalidProjectFileException with useful error.
18 2009-09-24 Ankit Jain <jankit@novell.com>
20 * Project.cs (Load): Emit the .sln.proj file only if env var
21 XBUILD_EMIT_SOLUTION is set.
23 2009-09-24 Ankit Jain <jankit@novell.com>
25 * Project.cs (GetKeyForTarget): Make target name, case insensitive.
27 2009-09-24 Ankit Jain <jankit@novell.com>
29 * Project.cs (InitializeProperties): Set 'MSBuildProjectDefaultTargets'
32 2009-09-10 Ankit Jain <jankit@novell.com>
34 * BuildItem.cs (Evaluate): Metadata from "Include" should be,
35 preserved, so use ConvertTo ITaskItem, rather than string.
36 Ensure that the new items have the metadata from references _in_
37 Include, and the metadata of _this_ builditem.
38 * DirectoryScanner.cs (Includes): Change to a array of ITaskItem.
39 (MatchedFilenames): Rename to ..
40 (MatchedItems): .. this, and change type of array of ITaskItem.
41 Ensure that metadata of items in Includes are retained in the
44 * BuildItemGroup.cs (ConvertoToITaskItemArray): Add 'separator'
45 param. If separator is present, then just return a "Join'ed"
46 string as the single task item.
47 * ItemReference.cs: Track api changes.
49 * BuildProperty.cs (ConvertToITaskItemArray): Split the value,
50 as we need separate task items.
52 2009-09-01 Ankit Jain <jankit@novell.com>
55 * Project.cs (BuildTarget): Move caching of target outputs to ..
56 * Target.cs: .. here. Move LogTargetSkipped also here.
57 Ensure that caching happens for target dependencies also.
59 2009-09-01 Ankit Jain <jankit@novell.com>
61 * DirectoryScanner.cs (Scan): Ignore empty entries in includes and
64 2009-09-01 Ankit Jain <jankit@novell.com>
66 * Expression.cs (ParseOptions): New enum. Replace the bool params
67 of exression.Parse with this. Add option to control expansion of
69 (CopyToExpressionCollection): Track api changes.
71 Update all expr.Parse calls to use the new enum.
72 * BuildItem.cs, BuildProperty.cs, BuildTask.cs, Import.cs,
73 Target.cs, TargetBatchingImpl.cs, UsingTask.cs: Track api changes.
75 * BatchingImplBase.cs: Track api changes. Allow metadata refs
77 * ConditionFactorExpression.cs: Allow metadata refs in conditions.
78 * ItemReference.cs: Allow metadata in transforms.
79 * TaskEngine.cs: Allow metadata refs.
81 * MetadataReference.cs (.ctor): Add a 'original string' param.
83 2009-08-29 Ankit Jain <jankit@novell.com>
85 * Expression.cs (ExpressionOptions): New.
87 Introduce a ExpressionOptions argument to all ConvertTo*
88 methods. Implement the rule: in evaluation phase, expand
89 all items completely, but dont expand item refs in properties.
90 At other times, expand the item refs in the properties.
91 See comments in Expression.cs, for a full explanation.
92 * BuildItem.cs: Track api changes.
93 * BuildItemGroup.cs: Likewise.
94 * BuildProperty.cs: Track api changes. Handle self-references.
95 * BuildTask.cs: Track api changes.
96 * IReference.cs: Add ExpressionOptions param.
97 * ItemReference.cs: Track api changes.
98 * PropertyReference.cs: Likewise.
99 * MetadataReference.cs: Likewise.
100 * ExpressionCollection.cs: Track api changes. Add support for
101 converting all primitive types and DateTime, instead of a fixed
103 * Project.cs (GetMetadataBatched): Use the evaluated metadata.
104 * TaskBatchingImpl.cs: Handle the case when batching is required,
105 but no items are available.
107 * TaskEngine.cs: Throw on unsupported types. Correctly handle
108 properties in case of empty values.
110 2009-08-26 Ankit Jain <jankit@novell.com>
112 * Expression.cs: Correctly handle a item reference with transform
113 when allowItems is false. If item ref is ignored, then the transform
114 will get incorrectly matched as a metadata ref.
115 * ItemReference.cs (.ctor): Add a @original_string param.
117 2009-08-26 Ankit Jain <jankit@novell.com>
119 * Utilities.cs (UnescapeFromXml): New. From md.
120 * BuildProperty.cs (.ctor): Unescape xml codes from the InnerXml
121 of the property element.
123 2009-08-26 Ankit Jain <jankit@novell.com>
125 * BuildProperty.cs (ConvertToString): New.
126 (ConvertoToITaskItemArray): New. Parse the property value.
127 * PropertyReference.cs (ConvertToString): Use BuildProperty's
129 (ConvertoToITaskItemArray): Likewise.
131 2009-08-21 Ankit Jain <jankit@novell.com>
133 * Engine.cs (EndProjectBuild): Use the @succeeded argument
134 instead of hardcoding 'true'.
135 * Target.cs (Build): Add an overload to return executeOnErrors
136 value for the target executed. If building dependencies fails,
137 and executeOnErrors is true, then execute OnError tasks.
138 Add the new param to ..
139 (BuildDependencies): this, ..
141 (GetDependencies): Improve error message and variable name.
142 (ExecuteOnErrors): Honor OnError tag's Condition also.
143 * TaskBatchingImpl.cs (Run): Correctly set executeOnErrors param.
145 2009-08-20 Ankit Jain <jankit@novell.com>
148 * Project.cs (Load): Add support for loading .sln files.
150 2009-08-20 Ankit Jain <jankit@novell.com>
152 * BuildTask.cs (Execute): Use task_logger only after the task
153 has been initialized. Catch and report task loading errors.
154 * Target.cs (DoBuild): Dont rethrow the exception, and emit
155 the stacktrace as a low importance message.
157 2009-08-18 Ankit Jain <jankit@novell.com>
159 * BatchingImplBase.cs: Make the item name lookups and metadata be case
161 * TaskDatabase.cs: Likewise.
162 * TaskEngine.cs: Make property name looks, case insensitive.
164 2009-08-09 Miguel de Icaza <miguel@novell.com>
166 * ConsoleLogger.cs: Change the format of the error and warnings
167 strings to work when invoked inside Emacs by not rendering the
168 column if available, by using lowercase "error"/"warning" strings
169 instead of camelcased versions and to not have unnecessary padding.
171 2009-07-31 Ankit Jain <jankit@novell.com>
173 * ConsoleLogger.cs: Keep track of all the errors and warnings
174 and show them at the end.
176 2009-07-31 Ankit Jain <jankit@novell.com>
178 * Target.cs (Build): Log a message if a target is skipped.
180 * BuildTask.cs (Execute): Log error if task execution fails.
182 2009-07-30 Ankit Jain <jankit@novell.com>
184 * Engine.cs (.ctor): Set default BinPath. Currently this assumes
185 v2.0, this will change when multi-targeting lands.
187 2009-07-30 Ankit Jain <jankit@novell.com>
189 * Project.cs (InitializeProperties) Set 'MSBuildProjectFile' and
190 'MSBuildProjectName' properties.
192 2009-07-28 Ankit Jain <jankit@novell.com>
194 * TaskEngine.cs (Prepare): Fix formatting mistake.
195 * ConsoleLogger.cs: Emit "-- FAILED" also when project/target building
196 fails. Also, emit result of project at Normal verbosity level.
198 2009-07-23 Ankit Jain <jankit@novell.com>
201 * Project.cs (ExtensionsPath): New.
202 (InitializeProperties): Set "MSBuildExtensionsPath" property.
204 2009-06-12 Ankit Jain <jankit@novell.com>
207 * ExpressionCollection.cs (ConvertToITaskItemArray): Whitespace around a
208 itemref is allowed if the prev/next element is ";".
210 2009-06-12 Ankit Jain <jankit@novell.com>
212 * Utilities.cs (FromMSBuildPath): Return null if the path contains
213 "drive:" only on windows.
215 2009-06-07 Ankit Jain <jankit@novell.com>
217 * Target.cs (Outputs): Use ITaskItem[] for conversion, to retain
220 2009-05-29 Ankit Jain <jankit@novell.com>
222 Correctly handle global properties. Correctly log
223 project/build events.
225 * BuildPropertyGroup.cs (Clone): Implement.
226 * Engine.cs (globalProperties): Rename to ..
227 (global_properties): .. this.
228 (currentlyBuildingProjectsStack): New. Used to correctly
229 log and raise project/build start/finish events.
230 (BuildProjectFile): Override any project global properties
231 with explicitly specified ones, here in the param @globalProperties.
232 Mark project for reevaluation, which will update the engine's
233 global properties also.
234 Reset both engine and project's old global properties at the end.
235 (UnregisterAllLoggers): Log build finished only if we are currently
237 (StartBuild): Rename to ..
238 (StartProjectBuild): .. this. Keeps track of the projects being built
239 in the new stack, and logs project and build events accordingly.
240 (EndProjectBuild): New. Uses the stack to keep track of projects
241 finishing builds, and raises project and build events accordingly.
242 (LogProjectStarted): Move here from Project.cs
243 (LogProjectFinished): Likewise.
245 * Project.cs (Build): Log start of project build.
246 Set current directory to the project file's dir, and reset at end.
247 (BuildInternal): Don't log here, its done in Build.
248 (BuildTarget): Already built targets are keyed by the set of global
249 properties that they were built with.
250 (GlobalPropertiesToString): New.
251 (ResetBuildStatus): 'building' must be true to allow built targets to be reset.
252 (RemoveBuiltTargets): Initialize builtTargetKeys in .ctor
253 (Evaluate): Remove built targets only if we are currently building and
254 build settings are None.
255 Merge project's global properties with those of the parent engine.
256 Add missing properties from engine's global properties.
257 (LogTargetSkipped): Fix format string, add the reqd argument.
259 2009-05-29 Ankit Jain <jankit@novell.com>
261 * ConditionFunctionExpression.cs: Add 'HasTrailingSlash' function.
262 (HasTrailingSlash): New.
264 2009-05-12 Ankit Jain <jankit@novell.com>
266 * Project.cs (.ctor): Init timeOfLastDirty.
268 2009-05-05 Miguel de Icaza <miguel@novell.com>
270 * Contribution from Martin Brenn to fix #498154.
272 2009-04-27 Ankit Jain <jankit@novell.com>
275 * Engine.cs (BuildProjectFile): Set project's GlobalProperties to the
276 one passed as argument.
278 2009-04-27 Ankit Jain <jankit@novell.com>
280 * TaskEngine.cs (Prepare): Emit a useful error message property value
281 can't be converted to required type.
283 2009-04-27 Ankit Jain <jankit@novell.com>
285 * ExpressionCollection.cs (ConvertToObject): Allow true/on/yes
286 as valid true values for bool, and corresponding for false.
288 2009-03-27 Jonathan Chambers <joncham@gmail.com>
290 * BuildWhen.cs: Add basic implementation.
291 * BuildChoose.cs: Add basic implementation.
292 * BuildItem.cs (AddEvaluatedItem): Add BuiltItem to
293 EvaluatedItemsIgnoringCondition.
294 * GroupingCollection.cs: Add evaluation of BuildChoose items.
296 2009-03-26 Jonathan Chambers <joncham@gmail.com>
298 * TaskDatabase.cs (RegisterTask): Search for class by name
299 if task was not found using GetType (which uses namespace).
301 2009-02-26 Ankit Jain <jankit@novell.com>
303 * Target.cs: Handle target with no tasks. Log errors.
305 2009-02-24 Ankit Jain <jankit@novell.com>
307 Lazily load UsingTask tasks.
308 * UsingTask.cs (Evaluate): Register 'this' with task database,
309 but don't load it yet. Register only if condition evaluates to true.
310 Move the load logic to ..
311 (Load): .. here. Register with the specified task database.
312 * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance
313 in a table keyed by task name, but don't load it yet.
314 (GetTypeFromClassName): Try to load UsingTask if task is not already
315 loaded. Move loading logic to ..
316 (GetTypeFromClassNameInternal): .. here.
317 (CopyTasks): Copy the usingTasks table also.
319 2009-02-23 Ankit Jain <jankit@novell.com>
321 * BuildItem.cs (AddMetadata): Allow overwriting older values.
323 2009-02-22 Ankit Jain <jankit@novell.com>
325 * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode
326 instead of XmlElement. Eg. XmlComment
328 2009-02-21 Ankit Jain <jankit@novell.com>
330 * Utilities.cs (FromMSBuildPath): Copy from monodevelop.
331 * Project.cs (Load): Use FromMSBuildPath on the path.
332 (InitializeProperties): Set "MSBuildToolsPath" also.
334 2009-02-20 Ankit Jain <jankit@novell.com>
337 * ConditionTokenizer.cs: Handle unquoted item references (with or w/o
338 transforms) in conditions.
339 * ConditionParser.cs: Parse unquoted item, property references.
340 eg. Condition = " @(Foo->'%(Extension)') == '.exe' "
341 * Token.cs (Token.ToString): Override.
342 (TokenType.Transform): Uncomment.
344 2009-02-12 Jonathan Chambers <joncham@gmail.com>
346 * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
347 no XmlElement.InnerText. This allows properties to be additional
350 2009-02-01 Ankit Jain <jankit@novell.com>
352 * BuildEngine.cs (BuildProjectFile): Use
353 BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
354 * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
355 built. Move logging of project start/finish to ..
356 * Project.cs: .. here. Build a target only if hasn't been built already.
357 Keep track of target outputs, and return those even if an already built
358 target has been invoked again.
359 Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
361 2009-01-31 Ankit Jain <jankit@novell.com>
363 * BatchingImpl.cs: Split into ..
364 * BatchingImplBase.cs: .. this,
365 * TaskBatchingImpl.cs: .. this ..
366 * TargetBatchingImpl.cs: .. and this. Implement target batching here.
368 * Target.cs (DoBuild): Use TargetBatchingImpl for building.
369 (Log*): Move to TargetBatchingImpl .
373 2009-01-30 Ankit Jain <jankit@novell.com>
375 * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
378 2009-01-29 Ankit Jain <jankit@novell.com>
380 * BuildItem.cs (child_items): Change type from BuildItemGroup to
382 (HasParent): Rename to ..
383 (HasParentItem): .. this.
384 (ParentItemGroup): Add setter.
386 * BuildItemGroup.cs (.ctor): Add overload with @project param.
388 (AddItem): Correctly set the ParentItemGroup for new build items.
389 (ParentProject): Add setter.
390 * Project.cs: Set the project for new BuildItemGroup instances.
391 * TaskEngine.cs (PublishItemGroup): Likewise.
393 2009-01-06 Ankit Jain <jankit@novell.com>
395 * Project.cs (Build): Honor InitialTargets list.
397 2009-01-06 Ankit Jain <jankit@novell.com>
399 * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
400 the property type also.
401 * MSBuild.cs (Execute): Parse 'Properties' task param to set global
404 2009-01-06 Ankit Jain <jankit@novell.com>
406 * Project.cs (Build): Correctly handle null targetNames argument.
408 2009-01-06 Ankit Jain <jankit@novell.com>
410 * Engine.cs (LogProjectStarted): Add a null check.
412 2009-01-01 Ankit Jain <jankit@novell.com>
414 * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
415 * ChangeType (ToBuildItemGroup): Add 'split' param.
417 * Expression.cs (Parse): Add a new overload with a 'split' param.
418 * ExpressionCollection.cs (Add): Add new overload for IReference,
419 remove the ones for Item/Metadata/PropertyReference.
420 (ConvertToArray): Implement correctly.
421 (ConvertToString): Track api changes.
422 (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
423 (ConvertToITaskItemArray): Implement support for concat'ing expressions.
424 (AddItemsToArray): New.
425 (ConvertToITaskItemArrayFromString): Refactor a bit.
426 (ThrowCantConcatError): New.
427 * ItemReference.cs: Update.
428 * MetadataReference.cs: Update.
429 * PropertyReference.cs (ConvertToITaskItemArray): Implement.
431 * BuildPropertyGroup.cs: Track api changes.
432 * TaskEngine.cs (PublishOutput): Improve exception message.
433 * Project.cs (DoLoad): Improve exception message. Add a null check.
435 2008-12-30 Ankit Jain <jankit@novell.com>
437 * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
438 metadata values for unqualified references.
439 (BuildItemGroupToITaskItemArray): Rename to ..
440 (BuildItemGroupToITaskItems): .. this.
443 2008-12-18 Ankit Jain <jankit@novell.com>
445 * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
447 2008-12-17 Ankit Jain <jankit@novell.com>
449 * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
450 only one instance of unique metadata value is required.
452 2008-11-22 Ankit Jain <jankit@novell.com>
454 * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
456 * MetadataReference.cs (ConvertToITaskItemArray): New.
457 * Project.cs (GetAllItemGroups): New.
459 2008-11-21 Ankit Jain <jankit@novell.com>
461 * BatchingImpl.cs: Add task batching implementation.
462 * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
463 * ExpressionCollection.cs (Count): New.
464 (ConvertToString): Handle MetadataReference.
465 * ItemReference.cs (ConvertToString):
466 (ConvertToITaskItemArray): Use the batching api.
468 * MetadataReference.cs (ConvertToString): New.
470 * Project.cs: Add api for accessing batched items and metadata.
471 * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
474 2008-10-01 Ankit Jain <jankit@novell.com>
476 * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
477 (BuildProjectFile): If filename is null (project.LoadXml) then use
479 * BuildTask.cs (InitializeTask): Track api change.
480 * Expression.cs (Parse): Skip empty entries in the expression.
482 2008-09-24 Ankit Jain <jankit@novell.com>
484 * Engine.cs: Add argument checks.
485 * Project.cs: Likewise.
487 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
489 * Project.cs (Build): Add outputs to targetOutputs.
491 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
493 * ExpressionCollection.cs (ConvertToArray): Simplify.
495 2007-03-05 Marek Sieradzki <marek.sieradzki@gmail.com>
497 * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
498 simplified. It still needs tests and refactoring.
500 2007-02-22 Marek Sieradzki <marek.sieradzki@gmail.com>
502 * BuildEngine.cs (BuildProjectFile): Don't crash on null
505 * Target.cs: Add Outputs property.
507 2007-02-20 Marek Sieradzki <marek.sieradzki@gmail.com>
509 * Target.cs (Build): Split to GetDependencies () and BuildDependencies
510 (). Support condition.
512 * BatchingImpl.cs (BatchBuildTask): Simplify.
514 2007-02-18 Marek Sieradzki <marek.sieradzki@gmail.com>
516 * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
519 * ConditionFunctionExpression.cs: Removed warnings.
521 * BuildTask.cs (Execute): Write exceptions to std err (they should be
522 logged but it's better than swallowing).
524 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
526 * ConditionTokenizer.cs: Add Putback ().
528 * ConditionParser.cs: Add parsing of functions.
530 * ConditionFunctionExpression.cs: Add.
532 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
534 * BuildPropertyGroup (SetProperty): Throw an exception when trying to
535 set property in persisted property group.
537 2007-01-29 Marek Sieradzki <marek.sieradzki@gmail.com>
539 * BuildTask.cs (Execute): Log errors that happen when invoking ITask
542 * ConsoleLogger.cs (TargetFinishedHandler)
543 (TaskFinishedHandler): Increment error count.
545 2007-01-28 Marek Sieradzki <marek.sieradzki@gmail.com>
547 * BuildItem.cs (RemoveMetadata): Remove from XML.
548 (SetMetadata): Trigger project reevaluation.
550 2007-01-26 Marek Sieradzki <marek.sieradzki@gmail.com>
552 * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
555 2007-01-23 Marek Sieradzki <marek.sieradzki@gmail.com>
557 * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
558 TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
559 BatchingImpl.cs, BuildProperty.cs: Track API changes.
561 * Expression.cs (Parse): Added allowItems parameter and made regexes
564 * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
565 will try to import a.ext when given a.EXT.
567 2007-01-21 Marek Sieradzki <marek.sieradzki@gmail.com>
569 * BuildItemGroup.cs: Store information saying what is the last item
570 group that contains build item name.
572 * Project.cs (Build): Pass empty array (build default targets).
574 2007-01-19 Marek Sieradzki <marek.sieradzki@gmail.com>
576 * Token.cs: Commented Transform and LiteralSubExpression and added
579 * ConditionParser.cs: Removed redundant casts, rewrote
580 ParseFactorExpression () and added parsing of '!'.
582 * ConditionTokenizer.cs: Always skip whitespaces when getting next
583 token (no IgnoreWhiteSpace property). Don't create a token from '->'.
584 Moved ReadChar () in front of all ifs.
586 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
588 * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
589 from XML. (not to escape items that have parents twice).
591 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
593 * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
594 (Project): Renamed to ParentProject.
596 * BuildItem.cs (ctor)
597 (CopyCustomMetadata): Add null check.
599 * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
600 (RemoveProperty): Added null check.
602 * TargetCollection.cs (RemoveTarget): Added null check.
604 * Engine.cs (UnloadProject): Added null check.
606 * GroupingCollection.cs (Remove): Check if removed group belongs to
609 * Project.cs (AddNewItem): Implemented.
610 (RemoveItem): Reorganized.
611 (SetProjectExtensions): Added null check.
613 2007-01-14 Marek Sieradzki <marek.sieradzki@gmail.com>
615 * BuildItemGroup.cs (Detach): Added.
617 (RemoveItemAt): Used Detach ().
619 * BuildItem.cs: Made FromXml and HasParent internal and added
620 ParentItem and ParentItemGroup properties (internal).
623 * GroupingCollection.cs (Remove): Used Detach ().
625 * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
627 (GetEvaluatedItemsByNameIgnoringCondition)
628 (GetEvaluatedItemsByName)
629 (GetEvaluatedProperty): Reevaluate if needed.
631 (RemoveAllItemGroups)
632 (RemoveAllPropertyGroups): Implemented.
633 (DoLoad): Added closing of TextReader.
635 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
637 * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
638 change but just mark that it needs it.
640 * Project.cs: Reevaluate when it needs reevaluation and one of
641 Evaluated* properties is used.
643 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
645 * Target.cs: Throw an exception when <OnError> is not last element in
648 * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
650 * TargetCollection.cs: If a target is already there replace it with
653 * BuildProperty.cs: Added XmlElement property.
655 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
657 * ImportCollection.cs: Don't add imports that are already added.
659 * BuildItemGroup.cs: MonoTODOs.
661 * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
662 condition can't be evaluated to bool.
664 * BuildPropertyGroup.cs (Evaluate): Simplify.
666 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
668 * BuildWhen.cs: Moved BindToXml () code to ctor.
670 * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
671 property needed for removing groups.
673 * Engine.cs: Added StartBuild () that logs build start when Build ()
676 * GroupingCollection.cs: Added Remove () for item and property groups.
678 * Project.cs (AddNewImport): Implemented.
679 (AddNewItemGroup): Implemented.
680 (AddNewPropertyGroup): Implemented.
681 (AddNewUsingTaskFromAssemblyFile): Implemented.
682 (AddNewUsingTaskFromAssemblyName): Implemented.
683 (RemoveItemGroup): Implemented.
684 (RemovePropertyGroup): Implemented.
686 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
688 * BuildItemGroup.cs (Clear): Remove from XML.
690 * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
691 to Project.EvaluatedProperties.
692 (Clear): Remove from XML.
694 2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
696 * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
699 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
701 * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
702 Add () calls when processing a project from Import and
703 evaluate_iterator for evaluation.
705 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
707 * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
708 and prepend relative directory of importing project to full path of
711 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
713 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
714 BuildItemGroupCollection.cs, Project.cs: Track API changes.
716 * GroupingCollection.cs: Now it needs Project reference so added it.
718 * BuildTask.cs: Formatting.
720 * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
722 * ConditionParser.cs (ParseAndEvaluate): Added.
724 * BuildItem.cs: Changed exception message.
726 2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
728 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
729 BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
730 GroupingCollection doesn't need Project reference.
732 * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
734 * BuildItemGroup.cs: Added new readOnly parameter to ctor.
735 (Project.EvaluatedItems is a read only item group.)
736 (ReplaceWith): Added.
738 * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
739 global property group causes reevaluation of its project.
741 * Project.cs: ProcessXml () is internal and can be "safely" invoked by
744 * OldExpression.cs: Removed.
746 * BuildProperty.cs (Evaluate): Simplified.
748 * ChangeType.cs (TemporaryTransform): Simplified.
750 * BuildItem.cs: There are now 3 types of build items: from XML, having
751 parent from XML, virtual. Added SplitParentItem ().
753 2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
755 * Utilities.cs: Added Unescape ().
757 * BuildItemGroup.cs, BuildItem.cs: Pass null project to
758 BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
759 groups (at the moment just unescape).
761 * Expression.cs (CopyToExpressionList): Unescape strings.
763 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
765 * Target.cs (ctor): Added ImportedProject argument and removed
767 (AddNewTask): Implemented.
769 * TargetCollection.cs (AddNewTarget): Implemented.
771 * Project.cs: Track API changes.
773 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
775 * Target.cs (Build): Don't throw anything in case of error, just
778 * BuildItemGroup.cs (set_Condition): Throw an exception if group is
781 * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
784 * BuildProperty.cs (ToString): Throw an exception if property is not
786 (op_Explicit): Added a null check.
788 * Engine.cs: Better error message.
790 * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
791 IndexOutOfRangeException.
793 * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
794 (MarkProjectAsDirty): Set time.
796 2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
798 * BuildItemGroup.cs (Clone): Throw exception.
800 * Project.cs (Load): Throw InvalidProjectFileException if anything
803 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
805 * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
806 and ConvertToITaskItemArray ().
808 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
810 * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
811 classes that were public in Beta 2 and aren't used.
813 * Expression.cs: Added replacement for parsing expressions char by
814 char. It uses regexes to find item/property/metadata references in
817 * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
818 Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
819 BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
821 * ConditionRelationalExpression.cs: Formatting.
823 * OldExpression.cs: Commented everything.
825 * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
826 parsing to Expression.
828 * BuildItem.cs: Check if project is from XML in set_Condition and
831 * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
834 * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
835 can evaluate expression in CanEvaluateToBool ().
837 2006-12-12 Marek Sieradzki <marek.sieradzki@gmail.com>
839 * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
840 which item group is imported.
842 * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
844 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
846 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
847 BuildItemGroupCollection.cs: Little changes related to
850 * ImportCollection.cs: Use GroupingCollection not an internal list.
852 * Import.cs (Evaluate): Split to functions and check if
853 EvaluatedProjectPath is empty.
855 * GroupingCollection.cs, Project.cs: Move evaluation to
856 GroupingCollection. Change algorithm to use 2 passes: first for property
857 groups and imports and second for item groups.
859 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
861 * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
862 BuildItemGroup> not IDictionary.
864 * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
865 evaluated to false because we want to add every item to
866 Project.EvaluatedItemsByNameIgnoringCondition.
868 * Project.cs (Build): Don't throw an exception just return false.
869 (GetEvaluatedProperty): Avoid NullReferenceException.
870 (SetProjectExtensions): Implemented.
872 2006-12-08 Marek Sieradzki <marek.sieradzki@gmail.com>
874 * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
876 * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
877 BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
878 Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
880 * ImportCollection.cs: Added a note.
882 2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
884 * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
886 * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
887 (UsingTask[] array, int index)
889 * TaskEngine.cs: Reformatted PublishOutput () and added copying of
890 items to Project.EvaluatedItems in PublishItemGroup ();
892 * BuildItemGroup.cs: Added [MonoTODO].
894 * UsingTask.cs: Used expression for AssemblyFile to get around
895 problems with '\' and '/'.
897 * BuildItem.cs (ctor): Added null checks.
898 (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
899 (SetMetadata): Don't escape evaluatedMetadata and escape
900 unevaluatedMetadata only when treatPropertyValueAsLiteral.
902 * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
903 FromXml () instead of null checks.
904 (SetProperty): Escape propertyValue when it is literal.
906 * BuildProperty.cs: Changed exception message.
908 * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
910 (GetProjectExtensions): Implemented.
912 2006-12-05 Marek Sieradzki <marek.sieradzki@gmail.com>
914 * BuildTask.cs: Remove [MonoTODO], add exception throwing in
915 GetParameterValue (), use expressions in ContinueOnError.
916 * ConditionFactorException.cs: Throw InvalidProjectFileException ()
917 instead of InvalidOperationException ().
918 * ImportCollection.cs: Implement CopyTo ().
919 * Target.cs: Remove redundant variables (XmlAttributes), return
920 String.Empty in DependsOnTargets, add a null check in RemoveTask ().
921 * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
922 * Import.cs: Throw an exception when file does not exist.
923 * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
924 * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
925 need to treat item as a token probably
927 2006-12-04 Marek Sieradzki <marek.sieradzki@gmail.com>
929 * Import.cs: Check for project.FullFileName (Path.DirectoryName would
931 * BuildItemGroupCollection.cs: Changed exception types.
933 2006-10-14 Marek Sieradzki <marek.sieradzki@gmail.com>
935 * Engine.cs: Removed redundant cast.
937 * UsingTaskCollection.cs:
941 * TargetCollection.cs: Comment unused variable.
942 * ConditionTokenizer.cs: Simplified checking if current token is a
944 * Target.cs: Removed old code.
946 2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
948 * Target.cs: Changed "" to String.Empty.
949 * TaskEngine.cs: Don't try to convert a parameter to specific type if
950 string was evaluated to String.Empty.
951 * InternalLoggerException.cs:
952 * InvalidProjectFileException.cs: Added LinkDemand before
954 * ConsoleLogger.cs: Changed "" to String.Empty.
955 * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
956 with change to generics).
957 * Project.cs: Made Build () throw more meaningful exception.
959 2006-10-06 Marek Sieradzki <marek.sieradzki@gmail.com>
961 * Target.cs: Reformatted.
962 * TaskEngine.cs: Removed redundant code.
963 * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
964 * Engine.cs: Made BuildProjectFile () load project file if it's not
967 2006-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
969 * ConditionRelationalExpression.cs: Change comparers to case
971 * ImportCollection.cs: Add NotImplementedExceptions.
972 * BuildPropertyGroup.cs: Reformatted a bit.
973 * BuildProperty.cs: The same.
974 * Project.cs: Moved evaluation of imports before evaluation of
975 properties. This may "work" until importing projects is redesigned but
976 probably isn't correct.
978 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
980 * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
982 * BuildItemGroup.cs: Change return to continue.
984 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
986 * ConditionParser.cs: Copyright note.
987 * ExpressionCollection.cs: Fixed arrays passing.
989 2006-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
991 * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
992 Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
993 BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
994 TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
996 2006-06-25 Marek Sieradzki <marek.sieradzki@gmail.com>
998 * Token.cs: Changed names: removed "than".
999 * ConditionRelationalExpression.cs: Added.
1000 * ConditionFactorExpression.cs: Added.
1001 * BuildItemGroup.cs: Changed Condition property return value to return
1002 String.Empty instead of null.
1003 * ConditionParser.cs: Added support for parsing relational expressions
1005 * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
1006 abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
1007 and CanEvaluateToBool (), CanEvaluateToNumber () and
1008 CanEvaluateToString ().
1009 * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
1010 appropriately to ConditionExpression base class.
1011 * ConditionTokenizer.cs: Added null check and changed names in enums:
1013 * ConditionNotExpression.cs: Added.
1014 * BatchingImpl.cs: Changed to use BoolEvaluate ().
1015 * Project.cs: Added checks for condition.
1017 2006-06-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1019 * ConditionalTokenizer.cs, ConditionalExpression.cs,
1020 ConditionalParser.cs: Changed name,
1022 * ConditionExpression.cs: Added Evaluate ().
1023 * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
1024 * BatchingImpl.cs: Added check if task should be executed.
1026 2006-06-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1028 * UsingTask.cs: Changed properties to return null on empty attribute.
1029 * UsingTaskCollection.cs: Added object to SyncRoot.
1030 * BuildPropertyGroup.cs: Added NotImplementedException throwing.
1032 2006-06-02 Marek Sieradzki <marek.sieradzki@gmail.com>
1034 * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
1035 BuildPropertyGroupCollection.cs: Fixed to match the tests.
1037 2006-05-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1039 * Utilities.cs: Implemented Escape ().
1040 * BuildItem.cs: Added null checks.
1041 * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
1042 * Project.cs: Commented out redundant Evaluate ().
1043 * BuildChoose.cs: Minor changes.
1045 2006-05-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1047 * Token: Added new few missing tokens.
1048 * Target.cs, Project.cs: Patch from Matthew Metnesky.
1049 * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
1050 ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
1051 ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
1052 LiteralTokenizer.cs:
1053 Removed literal expression parsing based on tokenizer and
1054 parser. It needs to be done by regex.
1056 Moved tokenizer to ConditionalTokenizer.cs.
1058 2006-05-05 Marek Sieradzki <marek.sieradzki@gmail.com>
1060 * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
1061 ItemReference.cs, PropertyReference.cs: Changed name of *Reference
1062 methods converting reference to string from ToString () to
1063 ConvertToString () to avoid mistakes like using ToString () provided
1066 2006-05-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1068 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
1069 Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
1070 PropertyReference.cs, BuildProperty.cs: Changed Expression to
1071 OldExpression and changed To* functions to one ConvertTo ().
1072 * TaskEngine.cs: Fixed PublishOutput ().
1073 * OldExpression.cs: Added. It will be temporarily used before
1074 LiteralExpression will be written using Tokenizer.
1075 * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
1076 ExpressionParseException.cs, LiteralExpression.cs: Added.
1078 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1080 * ImportedProject.cs: Removed warning.
1081 * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
1084 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1086 * Project.cs: Removed unnecessary variable.
1087 * Engine.cs: Added fixme.
1089 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1091 * BuildItem.cs: Moved checking if metadata name is reserved to internal
1092 class (Mono.XBuild.Utilities.ReservedNameUtils).
1094 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1096 * BuildTask.cs: Removed unnecessary variable.
1097 * Engine.cs: Added logging of the build start.
1098 * Project.cs: Removed unnecessary variable.
1100 2006-04-07 Marek Sieradzki <marek.sieradzki@gmail.com>
1102 * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
1104 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1106 * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
1108 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1110 * BuildItem.cs: Fix typo?
1112 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1114 * InternalLoggerException.cs, InvalidProjectFileException.cs,
1115 Engine.cs, Project.cs: Coding style fixes.
1117 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1119 * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
1121 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1123 * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
1124 to pass tests. Wrote serialization constructor.
1125 * Engine.cs, Project.cs: Global engine and project unloading, test and
1128 2006-03-28 Marek Sieradzki <marek.sieradzki@gmail.com>
1130 * UsingTask.cs: Formatting changes.
1132 2006-03-27 Crestez Leonard <cdleonard@gmail.com>
1134 * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
1135 to lists instead of hashtables.
1136 * Import.cs: Cleaned up, moved importing from Project.cs
1137 * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
1138 * Engine.cs: Cleaned up properties.
1139 * Project.cs: Moved importing to Import.cs, cleaned up properties,
1140 Separated evaluation and loading.
1142 2006-03-21 Crestez Leonard <cdleonard@gmail.com>
1144 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
1145 BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
1146 Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
1147 binding and evaluation, merge xml binding in constructors.
1148 * DirectoryScanner.cs: Includes CAN be empty.
1149 * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
1150 * ConsoleLogger.cs: Fix compilation warning.
1152 2006-03-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1154 * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
1156 2006-03-18 Marek Sieradzki <marek.sieradzki@gmail.com>
1158 * Engine.cs: API cleanup.
1160 2006-03-18 Crestez Leonard <cdleonard@gmail.com>
1162 * Project.cs: Cleaned up add.
1163 * Expression.cs: Hacked to transform \ and / to path separators.
1164 * BuildPropertyGroup.cs: Small cleanup.
1165 * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
1168 2006-03-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1170 * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
1171 * BuildItem.cs: Updated for new API and fixed crashing on non-existent
1173 * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
1174 BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
1175 Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
1177 * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
1178 * TaskElement.cs: Temporarily removed.
1179 * Xml.cs: Changed to static.
1181 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1183 * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
1184 IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
1185 ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
1186 IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
1187 ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
1188 IBuildPropertyGroupCollection.cs: Removed.
1190 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1192 * BuildItem.cs: Removed IBuildItem references.
1193 * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
1194 IBuildItemGroup references. Changed Evaluate to internal.
1195 * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
1196 reference and hidden constructors.
1197 * BuildProperty.cs: Removed IBuildProperty reference.
1198 * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
1199 IBuildPropertyGroup references. Changed Evaluate to internal.
1200 * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
1201 reference and hidden constructors.
1202 * ConsoleLogger.cs: Updated names of event handlers.
1203 * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
1204 Escape. Added UnloadAllProjects () and UnloadProject ().
1205 * FileLogger.cs: Removed ApplyParameter ().
1206 * GroupingCollection.cs: Hidden.
1207 * InvalidProjectFileException.cs: Removed HasBeenLogged property.
1208 * ItemPropertyGroupingBase.cs: Commented.
1209 * ProcessingPass.cs: Hidden.
1210 * Project.cs: Removed IProject reference. Changed CurrentEncoding to
1212 * Target.cs: Removed ITarget reference.
1213 * TargetCollection.cs: Removed ITargetCollection reference.
1214 * TaskElement.cs: Removed ITaskElement reference.
1215 * TaskEngineAssemblyResolver.cs: Hidden.
1216 * Utilities.cs: Made static class, removed CheckPath (),
1217 ValidateCulture (), GetSupportedCultures () and added Escape ().
1219 2006-02-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1221 * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
1224 2005-09-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1226 * Project.cs: Added MonoTODO attributes.
1227 * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
1228 ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
1229 IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
1230 BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
1231 SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
1232 BuildItemGroup.cs, InvalidProjectFileException.cs,
1233 BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
1234 Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
1235 PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
1236 ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
1237 IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
1238 IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
1239 ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
1240 ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
1241 IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
1242 IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
1243 BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
1244 ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
1246 2005-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
1248 * TaskDatabase.cs: Change Shared to Framework.
1249 * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
1250 CaseInsensitiveHashCodeProvider
1252 2005-09-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1254 * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
1255 * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
1258 2005-09-09 Marek Sieradzki <marek.sieradzki@gmail.com>
1260 * InternalLoggerException.cs: Changed protected fields to private.
1262 2005-09-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1264 * Engine.cs: Added check for globalProperties.
1265 * Project.cs: Added using path from importedProject.FullFileName when
1266 adding UsingTask elements.
1268 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1270 * TaskElement.cs: Changed ReflectedType to PropertyType.
1271 * ChangeType.cs (TransformToString): Changed to pass proper Type to
1274 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1276 * BuildPropertyGroup.cs: Added check for PropertyType when adding a
1278 * BuildProperty.cs: Organized PropertyType enum.
1279 * Engine.cs: Added setting CommandLine PropertyType of global
1282 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1284 * InvalidProjectFileException.cs: Changed Message property.
1285 * ChangeType.cs (TransformToString): Added separator between items.
1286 * TaskEngineAssemblyResolver.cs: Formatting.
1288 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1290 * DirectoryScanner.cs: Added.
1291 * BuildItem.cs: Moved file scanning code to DirectoryScanner.
1292 * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
1293 * Project.cs: Removed Evalute* ().
1295 2005-08-30 Marek Sieradzki <marek.sieradzki@gmail.com>
1297 * Target.cs: Formatting.
1298 * Expression.cs: Added check if array == null.
1299 * BuildItem.cs: Removed 'break' to remove warnings.
1300 * ConsoleLogger.cs: Formatting.
1301 * Engine.cs: Added handling of default target(s).
1302 * Project.cs: Added handling of default target(s).
1304 2005-08-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1306 * TaskElement.cs: Added check for parameters.
1307 * Target.cs: Added logging of target skipping.
1308 * Expression.cs: Changed returning object[] to string[], bool[]... in
1310 * ItemReference.cs: Fixed for item references without custom
1312 * BatchingImpl.cs: Added real inputs/outputs checking.
1313 * Engine.cs: Moved global properties setting.
1314 * Project.cs: Moved global properties setting.
1316 2005-08-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1318 * Target.cs: Added checks for target existence.
1319 * BuildItemGroup.cs: Changed to use transforms.
1320 * MetadataReference.cs: Wrote real implementation.
1321 * ItemReference.cs: Rewritten to use transforms.
1322 * BuildItem.cs: Changes for transforms and metadata.
1323 * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
1325 * Project.cs: Fixed project importing.
1326 * ImportedProject.cs: Changed to throw exceptions instead of returning
1329 2005-08-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1331 * Engine.cs: Removed FIXME.
1332 * Project.cs: Splitted ProcessElements and added project importing.
1333 * ImportedProject.cs: Rewritten.
1335 2005-08-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1337 * TaskElement.cs: Added getting of objects of every type.
1338 * BuildItemGroup.cs: Added ToITaskItemArray ().
1339 * Expression.cs: Implemented part that is not using metadata.
1340 * ItemReference.cs: Implemented parsing item references. Need to fix
1342 * BuildItem.cs: Fixed ToITaskItem ().
1343 * PropertyReference.cs: Implemented parsing property references. This
1344 also needs validity checking.
1346 2005-08-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1348 * TaskElement.cs: Added Output element handling.
1349 * Target.cs: Cleaned up.
1350 * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1351 * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1352 ItemReference.cs, ChangeType.cs: Added.
1353 * BuildItem.cs: Added creating BuildItem from TaskItem.
1354 * BuildPropertyGroup.cs: Small changes.
1355 * BatchingImpl.cs: Fixed to return real task execution result.
1356 * BuildProperty.cs: Fixed FinalValue property.
1357 * Engine.cs: Reformatted logging.
1358 * Project.cs: Added check to EvaluateProperty.
1360 2005-08-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1362 * TaskElement.cs: Added part of execution engine.
1363 * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1364 * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1365 * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1366 * BuildItem.cs: Added handling of built-in metadata and referencing
1367 Items by name not FullName.
1368 * BatchingImpl.cs: Added temporary task "batching".
1369 * ConsoleLogger.cs: Added temporary workaround to not show sender.
1370 * Project.cs: Added Evaluate. It will be moved to separate class.
1372 2005-08-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1374 * EventSource.cs, Engine.cs: Added CriticalEvents.
1375 * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1376 Project.cs: Added some support for items.
1377 * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1379 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1381 * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1384 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1386 * BatchingImpl.cs: Added.
1387 * BuildWhen.cs, BuildEngine.cs, Target.cs,
1388 BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1389 BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1390 TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1391 GroupingCollection.cs: Updated.
1393 2005-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1395 * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1396 BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1397 BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1398 BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1399 EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1400 GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1401 InternalLoggerException.cs, InvalidProjectFileException.cs,
1402 ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1403 ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1404 TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1405 TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1406 Initial check-in of implementations.
1408 2005-07-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1410 * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1411 IBuildItemGroupCollection.cs, IBuildProperty.cs,
1412 IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1413 ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1414 IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1415 IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1416 Initial check-in of interfaces and a syntax file, real classes are
1417 changing a lot so I'll wait a moment with checking them in.