1 2009-09-24 Ankit Jain <jankit@novell.com>
3 * Project.cs (Load): Emit the .sln.proj file only if env var
4 XBUILD_EMIT_SOLUTION is set.
6 2009-09-24 Ankit Jain <jankit@novell.com>
8 * Project.cs (GetKeyForTarget): Make target name, case insensitive.
10 2009-09-24 Ankit Jain <jankit@novell.com>
12 * Project.cs (InitializeProperties): Set 'MSBuildProjectDefaultTargets'
15 2009-09-10 Ankit Jain <jankit@novell.com>
17 * BuildItem.cs (Evaluate): Metadata from "Include" should be,
18 preserved, so use ConvertTo ITaskItem, rather than string.
19 Ensure that the new items have the metadata from references _in_
20 Include, and the metadata of _this_ builditem.
21 * DirectoryScanner.cs (Includes): Change to a array of ITaskItem.
22 (MatchedFilenames): Rename to ..
23 (MatchedItems): .. this, and change type of array of ITaskItem.
24 Ensure that metadata of items in Includes are retained in the
27 * BuildItemGroup.cs (ConvertoToITaskItemArray): Add 'separator'
28 param. If separator is present, then just return a "Join'ed"
29 string as the single task item.
30 * ItemReference.cs: Track api changes.
32 * BuildProperty.cs (ConvertToITaskItemArray): Split the value,
33 as we need separate task items.
35 2009-09-01 Ankit Jain <jankit@novell.com>
38 * Project.cs (BuildTarget): Move caching of target outputs to ..
39 * Target.cs: .. here. Move LogTargetSkipped also here.
40 Ensure that caching happens for target dependencies also.
42 2009-09-01 Ankit Jain <jankit@novell.com>
44 * DirectoryScanner.cs (Scan): Ignore empty entries in includes and
47 2009-09-01 Ankit Jain <jankit@novell.com>
49 * Expression.cs (ParseOptions): New enum. Replace the bool params
50 of exression.Parse with this. Add option to control expansion of
52 (CopyToExpressionCollection): Track api changes.
54 Update all expr.Parse calls to use the new enum.
55 * BuildItem.cs, BuildProperty.cs, BuildTask.cs, Import.cs,
56 Target.cs, TargetBatchingImpl.cs, UsingTask.cs: Track api changes.
58 * BatchingImplBase.cs: Track api changes. Allow metadata refs
60 * ConditionFactorExpression.cs: Allow metadata refs in conditions.
61 * ItemReference.cs: Allow metadata in transforms.
62 * TaskEngine.cs: Allow metadata refs.
64 * MetadataReference.cs (.ctor): Add a 'original string' param.
66 2009-08-29 Ankit Jain <jankit@novell.com>
68 * Expression.cs (ExpressionOptions): New.
70 Introduce a ExpressionOptions argument to all ConvertTo*
71 methods. Implement the rule: in evaluation phase, expand
72 all items completely, but dont expand item refs in properties.
73 At other times, expand the item refs in the properties.
74 See comments in Expression.cs, for a full explanation.
75 * BuildItem.cs: Track api changes.
76 * BuildItemGroup.cs: Likewise.
77 * BuildProperty.cs: Track api changes. Handle self-references.
78 * BuildTask.cs: Track api changes.
79 * IReference.cs: Add ExpressionOptions param.
80 * ItemReference.cs: Track api changes.
81 * PropertyReference.cs: Likewise.
82 * MetadataReference.cs: Likewise.
83 * ExpressionCollection.cs: Track api changes. Add support for
84 converting all primitive types and DateTime, instead of a fixed
86 * Project.cs (GetMetadataBatched): Use the evaluated metadata.
87 * TaskBatchingImpl.cs: Handle the case when batching is required,
88 but no items are available.
90 * TaskEngine.cs: Throw on unsupported types. Correctly handle
91 properties in case of empty values.
93 2009-08-26 Ankit Jain <jankit@novell.com>
95 * Expression.cs: Correctly handle a item reference with transform
96 when allowItems is false. If item ref is ignored, then the transform
97 will get incorrectly matched as a metadata ref.
98 * ItemReference.cs (.ctor): Add a @original_string param.
100 2009-08-26 Ankit Jain <jankit@novell.com>
102 * Utilities.cs (UnescapeFromXml): New. From md.
103 * BuildProperty.cs (.ctor): Unescape xml codes from the InnerXml
104 of the property element.
106 2009-08-26 Ankit Jain <jankit@novell.com>
108 * BuildProperty.cs (ConvertToString): New.
109 (ConvertoToITaskItemArray): New. Parse the property value.
110 * PropertyReference.cs (ConvertToString): Use BuildProperty's
112 (ConvertoToITaskItemArray): Likewise.
114 2009-08-21 Ankit Jain <jankit@novell.com>
116 * Engine.cs (EndProjectBuild): Use the @succeeded argument
117 instead of hardcoding 'true'.
118 * Target.cs (Build): Add an overload to return executeOnErrors
119 value for the target executed. If building dependencies fails,
120 and executeOnErrors is true, then execute OnError tasks.
121 Add the new param to ..
122 (BuildDependencies): this, ..
124 (GetDependencies): Improve error message and variable name.
125 (ExecuteOnErrors): Honor OnError tag's Condition also.
126 * TaskBatchingImpl.cs (Run): Correctly set executeOnErrors param.
128 2009-08-20 Ankit Jain <jankit@novell.com>
131 * Project.cs (Load): Add support for loading .sln files.
133 2009-08-20 Ankit Jain <jankit@novell.com>
135 * BuildTask.cs (Execute): Use task_logger only after the task
136 has been initialized. Catch and report task loading errors.
137 * Target.cs (DoBuild): Dont rethrow the exception, and emit
138 the stacktrace as a low importance message.
140 2009-08-18 Ankit Jain <jankit@novell.com>
142 * BatchingImplBase.cs: Make the item name lookups and metadata be case
144 * TaskDatabase.cs: Likewise.
145 * TaskEngine.cs: Make property name looks, case insensitive.
147 2009-08-09 Miguel de Icaza <miguel@novell.com>
149 * ConsoleLogger.cs: Change the format of the error and warnings
150 strings to work when invoked inside Emacs by not rendering the
151 column if available, by using lowercase "error"/"warning" strings
152 instead of camelcased versions and to not have unnecessary padding.
154 2009-07-31 Ankit Jain <jankit@novell.com>
156 * ConsoleLogger.cs: Keep track of all the errors and warnings
157 and show them at the end.
159 2009-07-31 Ankit Jain <jankit@novell.com>
161 * Target.cs (Build): Log a message if a target is skipped.
163 * BuildTask.cs (Execute): Log error if task execution fails.
165 2009-07-30 Ankit Jain <jankit@novell.com>
167 * Engine.cs (.ctor): Set default BinPath. Currently this assumes
168 v2.0, this will change when multi-targeting lands.
170 2009-07-30 Ankit Jain <jankit@novell.com>
172 * Project.cs (InitializeProperties) Set 'MSBuildProjectFile' and
173 'MSBuildProjectName' properties.
175 2009-07-28 Ankit Jain <jankit@novell.com>
177 * TaskEngine.cs (Prepare): Fix formatting mistake.
178 * ConsoleLogger.cs: Emit "-- FAILED" also when project/target building
179 fails. Also, emit result of project at Normal verbosity level.
181 2009-07-23 Ankit Jain <jankit@novell.com>
184 * Project.cs (ExtensionsPath): New.
185 (InitializeProperties): Set "MSBuildExtensionsPath" property.
187 2009-06-12 Ankit Jain <jankit@novell.com>
190 * ExpressionCollection.cs (ConvertToITaskItemArray): Whitespace around a
191 itemref is allowed if the prev/next element is ";".
193 2009-06-12 Ankit Jain <jankit@novell.com>
195 * Utilities.cs (FromMSBuildPath): Return null if the path contains
196 "drive:" only on windows.
198 2009-06-07 Ankit Jain <jankit@novell.com>
200 * Target.cs (Outputs): Use ITaskItem[] for conversion, to retain
203 2009-05-29 Ankit Jain <jankit@novell.com>
205 Correctly handle global properties. Correctly log
206 project/build events.
208 * BuildPropertyGroup.cs (Clone): Implement.
209 * Engine.cs (globalProperties): Rename to ..
210 (global_properties): .. this.
211 (currentlyBuildingProjectsStack): New. Used to correctly
212 log and raise project/build start/finish events.
213 (BuildProjectFile): Override any project global properties
214 with explicitly specified ones, here in the param @globalProperties.
215 Mark project for reevaluation, which will update the engine's
216 global properties also.
217 Reset both engine and project's old global properties at the end.
218 (UnregisterAllLoggers): Log build finished only if we are currently
220 (StartBuild): Rename to ..
221 (StartProjectBuild): .. this. Keeps track of the projects being built
222 in the new stack, and logs project and build events accordingly.
223 (EndProjectBuild): New. Uses the stack to keep track of projects
224 finishing builds, and raises project and build events accordingly.
225 (LogProjectStarted): Move here from Project.cs
226 (LogProjectFinished): Likewise.
228 * Project.cs (Build): Log start of project build.
229 Set current directory to the project file's dir, and reset at end.
230 (BuildInternal): Don't log here, its done in Build.
231 (BuildTarget): Already built targets are keyed by the set of global
232 properties that they were built with.
233 (GlobalPropertiesToString): New.
234 (ResetBuildStatus): 'building' must be true to allow built targets to be reset.
235 (RemoveBuiltTargets): Initialize builtTargetKeys in .ctor
236 (Evaluate): Remove built targets only if we are currently building and
237 build settings are None.
238 Merge project's global properties with those of the parent engine.
239 Add missing properties from engine's global properties.
240 (LogTargetSkipped): Fix format string, add the reqd argument.
242 2009-05-29 Ankit Jain <jankit@novell.com>
244 * ConditionFunctionExpression.cs: Add 'HasTrailingSlash' function.
245 (HasTrailingSlash): New.
247 2009-05-12 Ankit Jain <jankit@novell.com>
249 * Project.cs (.ctor): Init timeOfLastDirty.
251 2009-05-05 Miguel de Icaza <miguel@novell.com>
253 * Contribution from Martin Brenn to fix #498154.
255 2009-04-27 Ankit Jain <jankit@novell.com>
258 * Engine.cs (BuildProjectFile): Set project's GlobalProperties to the
259 one passed as argument.
261 2009-04-27 Ankit Jain <jankit@novell.com>
263 * TaskEngine.cs (Prepare): Emit a useful error message property value
264 can't be converted to required type.
266 2009-04-27 Ankit Jain <jankit@novell.com>
268 * ExpressionCollection.cs (ConvertToObject): Allow true/on/yes
269 as valid true values for bool, and corresponding for false.
271 2009-03-27 Jonathan Chambers <joncham@gmail.com>
273 * BuildWhen.cs: Add basic implementation.
274 * BuildChoose.cs: Add basic implementation.
275 * BuildItem.cs (AddEvaluatedItem): Add BuiltItem to
276 EvaluatedItemsIgnoringCondition.
277 * GroupingCollection.cs: Add evaluation of BuildChoose items.
279 2009-03-26 Jonathan Chambers <joncham@gmail.com>
281 * TaskDatabase.cs (RegisterTask): Search for class by name
282 if task was not found using GetType (which uses namespace).
284 2009-02-26 Ankit Jain <jankit@novell.com>
286 * Target.cs: Handle target with no tasks. Log errors.
288 2009-02-24 Ankit Jain <jankit@novell.com>
290 Lazily load UsingTask tasks.
291 * UsingTask.cs (Evaluate): Register 'this' with task database,
292 but don't load it yet. Register only if condition evaluates to true.
293 Move the load logic to ..
294 (Load): .. here. Register with the specified task database.
295 * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance
296 in a table keyed by task name, but don't load it yet.
297 (GetTypeFromClassName): Try to load UsingTask if task is not already
298 loaded. Move loading logic to ..
299 (GetTypeFromClassNameInternal): .. here.
300 (CopyTasks): Copy the usingTasks table also.
302 2009-02-23 Ankit Jain <jankit@novell.com>
304 * BuildItem.cs (AddMetadata): Allow overwriting older values.
306 2009-02-22 Ankit Jain <jankit@novell.com>
308 * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode
309 instead of XmlElement. Eg. XmlComment
311 2009-02-21 Ankit Jain <jankit@novell.com>
313 * Utilities.cs (FromMSBuildPath): Copy from monodevelop.
314 * Project.cs (Load): Use FromMSBuildPath on the path.
315 (InitializeProperties): Set "MSBuildToolsPath" also.
317 2009-02-20 Ankit Jain <jankit@novell.com>
320 * ConditionTokenizer.cs: Handle unquoted item references (with or w/o
321 transforms) in conditions.
322 * ConditionParser.cs: Parse unquoted item, property references.
323 eg. Condition = " @(Foo->'%(Extension)') == '.exe' "
324 * Token.cs (Token.ToString): Override.
325 (TokenType.Transform): Uncomment.
327 2009-02-12 Jonathan Chambers <joncham@gmail.com>
329 * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
330 no XmlElement.InnerText. This allows properties to be additional
333 2009-02-01 Ankit Jain <jankit@novell.com>
335 * BuildEngine.cs (BuildProjectFile): Use
336 BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
337 * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
338 built. Move logging of project start/finish to ..
339 * Project.cs: .. here. Build a target only if hasn't been built already.
340 Keep track of target outputs, and return those even if an already built
341 target has been invoked again.
342 Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
344 2009-01-31 Ankit Jain <jankit@novell.com>
346 * BatchingImpl.cs: Split into ..
347 * BatchingImplBase.cs: .. this,
348 * TaskBatchingImpl.cs: .. this ..
349 * TargetBatchingImpl.cs: .. and this. Implement target batching here.
351 * Target.cs (DoBuild): Use TargetBatchingImpl for building.
352 (Log*): Move to TargetBatchingImpl .
356 2009-01-30 Ankit Jain <jankit@novell.com>
358 * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
361 2009-01-29 Ankit Jain <jankit@novell.com>
363 * BuildItem.cs (child_items): Change type from BuildItemGroup to
365 (HasParent): Rename to ..
366 (HasParentItem): .. this.
367 (ParentItemGroup): Add setter.
369 * BuildItemGroup.cs (.ctor): Add overload with @project param.
371 (AddItem): Correctly set the ParentItemGroup for new build items.
372 (ParentProject): Add setter.
373 * Project.cs: Set the project for new BuildItemGroup instances.
374 * TaskEngine.cs (PublishItemGroup): Likewise.
376 2009-01-06 Ankit Jain <jankit@novell.com>
378 * Project.cs (Build): Honor InitialTargets list.
380 2009-01-06 Ankit Jain <jankit@novell.com>
382 * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
383 the property type also.
384 * MSBuild.cs (Execute): Parse 'Properties' task param to set global
387 2009-01-06 Ankit Jain <jankit@novell.com>
389 * Project.cs (Build): Correctly handle null targetNames argument.
391 2009-01-06 Ankit Jain <jankit@novell.com>
393 * Engine.cs (LogProjectStarted): Add a null check.
395 2009-01-01 Ankit Jain <jankit@novell.com>
397 * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
398 * ChangeType (ToBuildItemGroup): Add 'split' param.
400 * Expression.cs (Parse): Add a new overload with a 'split' param.
401 * ExpressionCollection.cs (Add): Add new overload for IReference,
402 remove the ones for Item/Metadata/PropertyReference.
403 (ConvertToArray): Implement correctly.
404 (ConvertToString): Track api changes.
405 (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
406 (ConvertToITaskItemArray): Implement support for concat'ing expressions.
407 (AddItemsToArray): New.
408 (ConvertToITaskItemArrayFromString): Refactor a bit.
409 (ThrowCantConcatError): New.
410 * ItemReference.cs: Update.
411 * MetadataReference.cs: Update.
412 * PropertyReference.cs (ConvertToITaskItemArray): Implement.
414 * BuildPropertyGroup.cs: Track api changes.
415 * TaskEngine.cs (PublishOutput): Improve exception message.
416 * Project.cs (DoLoad): Improve exception message. Add a null check.
418 2008-12-30 Ankit Jain <jankit@novell.com>
420 * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
421 metadata values for unqualified references.
422 (BuildItemGroupToITaskItemArray): Rename to ..
423 (BuildItemGroupToITaskItems): .. this.
426 2008-12-18 Ankit Jain <jankit@novell.com>
428 * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
430 2008-12-17 Ankit Jain <jankit@novell.com>
432 * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
433 only one instance of unique metadata value is required.
435 2008-11-22 Ankit Jain <jankit@novell.com>
437 * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
439 * MetadataReference.cs (ConvertToITaskItemArray): New.
440 * Project.cs (GetAllItemGroups): New.
442 2008-11-21 Ankit Jain <jankit@novell.com>
444 * BatchingImpl.cs: Add task batching implementation.
445 * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
446 * ExpressionCollection.cs (Count): New.
447 (ConvertToString): Handle MetadataReference.
448 * ItemReference.cs (ConvertToString):
449 (ConvertToITaskItemArray): Use the batching api.
451 * MetadataReference.cs (ConvertToString): New.
453 * Project.cs: Add api for accessing batched items and metadata.
454 * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
457 2008-10-01 Ankit Jain <jankit@novell.com>
459 * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
460 (BuildProjectFile): If filename is null (project.LoadXml) then use
462 * BuildTask.cs (InitializeTask): Track api change.
463 * Expression.cs (Parse): Skip empty entries in the expression.
465 2008-09-24 Ankit Jain <jankit@novell.com>
467 * Engine.cs: Add argument checks.
468 * Project.cs: Likewise.
470 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
472 * Project.cs (Build): Add outputs to targetOutputs.
474 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
476 * ExpressionCollection.cs (ConvertToArray): Simplify.
478 2007-03-05 Marek Sieradzki <marek.sieradzki@gmail.com>
480 * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
481 simplified. It still needs tests and refactoring.
483 2007-02-22 Marek Sieradzki <marek.sieradzki@gmail.com>
485 * BuildEngine.cs (BuildProjectFile): Don't crash on null
488 * Target.cs: Add Outputs property.
490 2007-02-20 Marek Sieradzki <marek.sieradzki@gmail.com>
492 * Target.cs (Build): Split to GetDependencies () and BuildDependencies
493 (). Support condition.
495 * BatchingImpl.cs (BatchBuildTask): Simplify.
497 2007-02-18 Marek Sieradzki <marek.sieradzki@gmail.com>
499 * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
502 * ConditionFunctionExpression.cs: Removed warnings.
504 * BuildTask.cs (Execute): Write exceptions to std err (they should be
505 logged but it's better than swallowing).
507 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
509 * ConditionTokenizer.cs: Add Putback ().
511 * ConditionParser.cs: Add parsing of functions.
513 * ConditionFunctionExpression.cs: Add.
515 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
517 * BuildPropertyGroup (SetProperty): Throw an exception when trying to
518 set property in persisted property group.
520 2007-01-29 Marek Sieradzki <marek.sieradzki@gmail.com>
522 * BuildTask.cs (Execute): Log errors that happen when invoking ITask
525 * ConsoleLogger.cs (TargetFinishedHandler)
526 (TaskFinishedHandler): Increment error count.
528 2007-01-28 Marek Sieradzki <marek.sieradzki@gmail.com>
530 * BuildItem.cs (RemoveMetadata): Remove from XML.
531 (SetMetadata): Trigger project reevaluation.
533 2007-01-26 Marek Sieradzki <marek.sieradzki@gmail.com>
535 * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
538 2007-01-23 Marek Sieradzki <marek.sieradzki@gmail.com>
540 * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
541 TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
542 BatchingImpl.cs, BuildProperty.cs: Track API changes.
544 * Expression.cs (Parse): Added allowItems parameter and made regexes
547 * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
548 will try to import a.ext when given a.EXT.
550 2007-01-21 Marek Sieradzki <marek.sieradzki@gmail.com>
552 * BuildItemGroup.cs: Store information saying what is the last item
553 group that contains build item name.
555 * Project.cs (Build): Pass empty array (build default targets).
557 2007-01-19 Marek Sieradzki <marek.sieradzki@gmail.com>
559 * Token.cs: Commented Transform and LiteralSubExpression and added
562 * ConditionParser.cs: Removed redundant casts, rewrote
563 ParseFactorExpression () and added parsing of '!'.
565 * ConditionTokenizer.cs: Always skip whitespaces when getting next
566 token (no IgnoreWhiteSpace property). Don't create a token from '->'.
567 Moved ReadChar () in front of all ifs.
569 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
571 * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
572 from XML. (not to escape items that have parents twice).
574 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
576 * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
577 (Project): Renamed to ParentProject.
579 * BuildItem.cs (ctor)
580 (CopyCustomMetadata): Add null check.
582 * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
583 (RemoveProperty): Added null check.
585 * TargetCollection.cs (RemoveTarget): Added null check.
587 * Engine.cs (UnloadProject): Added null check.
589 * GroupingCollection.cs (Remove): Check if removed group belongs to
592 * Project.cs (AddNewItem): Implemented.
593 (RemoveItem): Reorganized.
594 (SetProjectExtensions): Added null check.
596 2007-01-14 Marek Sieradzki <marek.sieradzki@gmail.com>
598 * BuildItemGroup.cs (Detach): Added.
600 (RemoveItemAt): Used Detach ().
602 * BuildItem.cs: Made FromXml and HasParent internal and added
603 ParentItem and ParentItemGroup properties (internal).
606 * GroupingCollection.cs (Remove): Used Detach ().
608 * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
610 (GetEvaluatedItemsByNameIgnoringCondition)
611 (GetEvaluatedItemsByName)
612 (GetEvaluatedProperty): Reevaluate if needed.
614 (RemoveAllItemGroups)
615 (RemoveAllPropertyGroups): Implemented.
616 (DoLoad): Added closing of TextReader.
618 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
620 * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
621 change but just mark that it needs it.
623 * Project.cs: Reevaluate when it needs reevaluation and one of
624 Evaluated* properties is used.
626 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
628 * Target.cs: Throw an exception when <OnError> is not last element in
631 * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
633 * TargetCollection.cs: If a target is already there replace it with
636 * BuildProperty.cs: Added XmlElement property.
638 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
640 * ImportCollection.cs: Don't add imports that are already added.
642 * BuildItemGroup.cs: MonoTODOs.
644 * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
645 condition can't be evaluated to bool.
647 * BuildPropertyGroup.cs (Evaluate): Simplify.
649 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
651 * BuildWhen.cs: Moved BindToXml () code to ctor.
653 * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
654 property needed for removing groups.
656 * Engine.cs: Added StartBuild () that logs build start when Build ()
659 * GroupingCollection.cs: Added Remove () for item and property groups.
661 * Project.cs (AddNewImport): Implemented.
662 (AddNewItemGroup): Implemented.
663 (AddNewPropertyGroup): Implemented.
664 (AddNewUsingTaskFromAssemblyFile): Implemented.
665 (AddNewUsingTaskFromAssemblyName): Implemented.
666 (RemoveItemGroup): Implemented.
667 (RemovePropertyGroup): Implemented.
669 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
671 * BuildItemGroup.cs (Clear): Remove from XML.
673 * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
674 to Project.EvaluatedProperties.
675 (Clear): Remove from XML.
677 2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
679 * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
682 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
684 * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
685 Add () calls when processing a project from Import and
686 evaluate_iterator for evaluation.
688 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
690 * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
691 and prepend relative directory of importing project to full path of
694 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
696 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
697 BuildItemGroupCollection.cs, Project.cs: Track API changes.
699 * GroupingCollection.cs: Now it needs Project reference so added it.
701 * BuildTask.cs: Formatting.
703 * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
705 * ConditionParser.cs (ParseAndEvaluate): Added.
707 * BuildItem.cs: Changed exception message.
709 2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
711 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
712 BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
713 GroupingCollection doesn't need Project reference.
715 * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
717 * BuildItemGroup.cs: Added new readOnly parameter to ctor.
718 (Project.EvaluatedItems is a read only item group.)
719 (ReplaceWith): Added.
721 * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
722 global property group causes reevaluation of its project.
724 * Project.cs: ProcessXml () is internal and can be "safely" invoked by
727 * OldExpression.cs: Removed.
729 * BuildProperty.cs (Evaluate): Simplified.
731 * ChangeType.cs (TemporaryTransform): Simplified.
733 * BuildItem.cs: There are now 3 types of build items: from XML, having
734 parent from XML, virtual. Added SplitParentItem ().
736 2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
738 * Utilities.cs: Added Unescape ().
740 * BuildItemGroup.cs, BuildItem.cs: Pass null project to
741 BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
742 groups (at the moment just unescape).
744 * Expression.cs (CopyToExpressionList): Unescape strings.
746 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
748 * Target.cs (ctor): Added ImportedProject argument and removed
750 (AddNewTask): Implemented.
752 * TargetCollection.cs (AddNewTarget): Implemented.
754 * Project.cs: Track API changes.
756 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
758 * Target.cs (Build): Don't throw anything in case of error, just
761 * BuildItemGroup.cs (set_Condition): Throw an exception if group is
764 * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
767 * BuildProperty.cs (ToString): Throw an exception if property is not
769 (op_Explicit): Added a null check.
771 * Engine.cs: Better error message.
773 * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
774 IndexOutOfRangeException.
776 * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
777 (MarkProjectAsDirty): Set time.
779 2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
781 * BuildItemGroup.cs (Clone): Throw exception.
783 * Project.cs (Load): Throw InvalidProjectFileException if anything
786 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
788 * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
789 and ConvertToITaskItemArray ().
791 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
793 * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
794 classes that were public in Beta 2 and aren't used.
796 * Expression.cs: Added replacement for parsing expressions char by
797 char. It uses regexes to find item/property/metadata references in
800 * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
801 Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
802 BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
804 * ConditionRelationalExpression.cs: Formatting.
806 * OldExpression.cs: Commented everything.
808 * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
809 parsing to Expression.
811 * BuildItem.cs: Check if project is from XML in set_Condition and
814 * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
817 * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
818 can evaluate expression in CanEvaluateToBool ().
820 2006-12-12 Marek Sieradzki <marek.sieradzki@gmail.com>
822 * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
823 which item group is imported.
825 * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
827 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
829 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
830 BuildItemGroupCollection.cs: Little changes related to
833 * ImportCollection.cs: Use GroupingCollection not an internal list.
835 * Import.cs (Evaluate): Split to functions and check if
836 EvaluatedProjectPath is empty.
838 * GroupingCollection.cs, Project.cs: Move evaluation to
839 GroupingCollection. Change algorithm to use 2 passes: first for property
840 groups and imports and second for item groups.
842 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
844 * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
845 BuildItemGroup> not IDictionary.
847 * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
848 evaluated to false because we want to add every item to
849 Project.EvaluatedItemsByNameIgnoringCondition.
851 * Project.cs (Build): Don't throw an exception just return false.
852 (GetEvaluatedProperty): Avoid NullReferenceException.
853 (SetProjectExtensions): Implemented.
855 2006-12-08 Marek Sieradzki <marek.sieradzki@gmail.com>
857 * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
859 * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
860 BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
861 Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
863 * ImportCollection.cs: Added a note.
865 2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
867 * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
869 * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
870 (UsingTask[] array, int index)
872 * TaskEngine.cs: Reformatted PublishOutput () and added copying of
873 items to Project.EvaluatedItems in PublishItemGroup ();
875 * BuildItemGroup.cs: Added [MonoTODO].
877 * UsingTask.cs: Used expression for AssemblyFile to get around
878 problems with '\' and '/'.
880 * BuildItem.cs (ctor): Added null checks.
881 (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
882 (SetMetadata): Don't escape evaluatedMetadata and escape
883 unevaluatedMetadata only when treatPropertyValueAsLiteral.
885 * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
886 FromXml () instead of null checks.
887 (SetProperty): Escape propertyValue when it is literal.
889 * BuildProperty.cs: Changed exception message.
891 * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
893 (GetProjectExtensions): Implemented.
895 2006-12-05 Marek Sieradzki <marek.sieradzki@gmail.com>
897 * BuildTask.cs: Remove [MonoTODO], add exception throwing in
898 GetParameterValue (), use expressions in ContinueOnError.
899 * ConditionFactorException.cs: Throw InvalidProjectFileException ()
900 instead of InvalidOperationException ().
901 * ImportCollection.cs: Implement CopyTo ().
902 * Target.cs: Remove redundant variables (XmlAttributes), return
903 String.Empty in DependsOnTargets, add a null check in RemoveTask ().
904 * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
905 * Import.cs: Throw an exception when file does not exist.
906 * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
907 * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
908 need to treat item as a token probably
910 2006-12-04 Marek Sieradzki <marek.sieradzki@gmail.com>
912 * Import.cs: Check for project.FullFileName (Path.DirectoryName would
914 * BuildItemGroupCollection.cs: Changed exception types.
916 2006-10-14 Marek Sieradzki <marek.sieradzki@gmail.com>
918 * Engine.cs: Removed redundant cast.
920 * UsingTaskCollection.cs:
924 * TargetCollection.cs: Comment unused variable.
925 * ConditionTokenizer.cs: Simplified checking if current token is a
927 * Target.cs: Removed old code.
929 2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
931 * Target.cs: Changed "" to String.Empty.
932 * TaskEngine.cs: Don't try to convert a parameter to specific type if
933 string was evaluated to String.Empty.
934 * InternalLoggerException.cs:
935 * InvalidProjectFileException.cs: Added LinkDemand before
937 * ConsoleLogger.cs: Changed "" to String.Empty.
938 * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
939 with change to generics).
940 * Project.cs: Made Build () throw more meaningful exception.
942 2006-10-06 Marek Sieradzki <marek.sieradzki@gmail.com>
944 * Target.cs: Reformatted.
945 * TaskEngine.cs: Removed redundant code.
946 * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
947 * Engine.cs: Made BuildProjectFile () load project file if it's not
950 2006-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
952 * ConditionRelationalExpression.cs: Change comparers to case
954 * ImportCollection.cs: Add NotImplementedExceptions.
955 * BuildPropertyGroup.cs: Reformatted a bit.
956 * BuildProperty.cs: The same.
957 * Project.cs: Moved evaluation of imports before evaluation of
958 properties. This may "work" until importing projects is redesigned but
959 probably isn't correct.
961 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
963 * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
965 * BuildItemGroup.cs: Change return to continue.
967 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
969 * ConditionParser.cs: Copyright note.
970 * ExpressionCollection.cs: Fixed arrays passing.
972 2006-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
974 * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
975 Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
976 BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
977 TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
979 2006-06-25 Marek Sieradzki <marek.sieradzki@gmail.com>
981 * Token.cs: Changed names: removed "than".
982 * ConditionRelationalExpression.cs: Added.
983 * ConditionFactorExpression.cs: Added.
984 * BuildItemGroup.cs: Changed Condition property return value to return
985 String.Empty instead of null.
986 * ConditionParser.cs: Added support for parsing relational expressions
988 * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
989 abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
990 and CanEvaluateToBool (), CanEvaluateToNumber () and
991 CanEvaluateToString ().
992 * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
993 appropriately to ConditionExpression base class.
994 * ConditionTokenizer.cs: Added null check and changed names in enums:
996 * ConditionNotExpression.cs: Added.
997 * BatchingImpl.cs: Changed to use BoolEvaluate ().
998 * Project.cs: Added checks for condition.
1000 2006-06-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1002 * ConditionalTokenizer.cs, ConditionalExpression.cs,
1003 ConditionalParser.cs: Changed name,
1005 * ConditionExpression.cs: Added Evaluate ().
1006 * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
1007 * BatchingImpl.cs: Added check if task should be executed.
1009 2006-06-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1011 * UsingTask.cs: Changed properties to return null on empty attribute.
1012 * UsingTaskCollection.cs: Added object to SyncRoot.
1013 * BuildPropertyGroup.cs: Added NotImplementedException throwing.
1015 2006-06-02 Marek Sieradzki <marek.sieradzki@gmail.com>
1017 * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
1018 BuildPropertyGroupCollection.cs: Fixed to match the tests.
1020 2006-05-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1022 * Utilities.cs: Implemented Escape ().
1023 * BuildItem.cs: Added null checks.
1024 * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
1025 * Project.cs: Commented out redundant Evaluate ().
1026 * BuildChoose.cs: Minor changes.
1028 2006-05-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1030 * Token: Added new few missing tokens.
1031 * Target.cs, Project.cs: Patch from Matthew Metnesky.
1032 * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
1033 ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
1034 ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
1035 LiteralTokenizer.cs:
1036 Removed literal expression parsing based on tokenizer and
1037 parser. It needs to be done by regex.
1039 Moved tokenizer to ConditionalTokenizer.cs.
1041 2006-05-05 Marek Sieradzki <marek.sieradzki@gmail.com>
1043 * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
1044 ItemReference.cs, PropertyReference.cs: Changed name of *Reference
1045 methods converting reference to string from ToString () to
1046 ConvertToString () to avoid mistakes like using ToString () provided
1049 2006-05-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1051 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
1052 Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
1053 PropertyReference.cs, BuildProperty.cs: Changed Expression to
1054 OldExpression and changed To* functions to one ConvertTo ().
1055 * TaskEngine.cs: Fixed PublishOutput ().
1056 * OldExpression.cs: Added. It will be temporarily used before
1057 LiteralExpression will be written using Tokenizer.
1058 * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
1059 ExpressionParseException.cs, LiteralExpression.cs: Added.
1061 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1063 * ImportedProject.cs: Removed warning.
1064 * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
1067 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1069 * Project.cs: Removed unnecessary variable.
1070 * Engine.cs: Added fixme.
1072 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1074 * BuildItem.cs: Moved checking if metadata name is reserved to internal
1075 class (Mono.XBuild.Utilities.ReservedNameUtils).
1077 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1079 * BuildTask.cs: Removed unnecessary variable.
1080 * Engine.cs: Added logging of the build start.
1081 * Project.cs: Removed unnecessary variable.
1083 2006-04-07 Marek Sieradzki <marek.sieradzki@gmail.com>
1085 * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
1087 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1089 * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
1091 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1093 * BuildItem.cs: Fix typo?
1095 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1097 * InternalLoggerException.cs, InvalidProjectFileException.cs,
1098 Engine.cs, Project.cs: Coding style fixes.
1100 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1102 * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
1104 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1106 * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
1107 to pass tests. Wrote serialization constructor.
1108 * Engine.cs, Project.cs: Global engine and project unloading, test and
1111 2006-03-28 Marek Sieradzki <marek.sieradzki@gmail.com>
1113 * UsingTask.cs: Formatting changes.
1115 2006-03-27 Crestez Leonard <cdleonard@gmail.com>
1117 * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
1118 to lists instead of hashtables.
1119 * Import.cs: Cleaned up, moved importing from Project.cs
1120 * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
1121 * Engine.cs: Cleaned up properties.
1122 * Project.cs: Moved importing to Import.cs, cleaned up properties,
1123 Separated evaluation and loading.
1125 2006-03-21 Crestez Leonard <cdleonard@gmail.com>
1127 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
1128 BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
1129 Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
1130 binding and evaluation, merge xml binding in constructors.
1131 * DirectoryScanner.cs: Includes CAN be empty.
1132 * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
1133 * ConsoleLogger.cs: Fix compilation warning.
1135 2006-03-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1137 * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
1139 2006-03-18 Marek Sieradzki <marek.sieradzki@gmail.com>
1141 * Engine.cs: API cleanup.
1143 2006-03-18 Crestez Leonard <cdleonard@gmail.com>
1145 * Project.cs: Cleaned up add.
1146 * Expression.cs: Hacked to transform \ and / to path separators.
1147 * BuildPropertyGroup.cs: Small cleanup.
1148 * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
1151 2006-03-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1153 * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
1154 * BuildItem.cs: Updated for new API and fixed crashing on non-existent
1156 * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
1157 BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
1158 Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
1160 * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
1161 * TaskElement.cs: Temporarily removed.
1162 * Xml.cs: Changed to static.
1164 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1166 * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
1167 IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
1168 ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
1169 IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
1170 ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
1171 IBuildPropertyGroupCollection.cs: Removed.
1173 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1175 * BuildItem.cs: Removed IBuildItem references.
1176 * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
1177 IBuildItemGroup references. Changed Evaluate to internal.
1178 * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
1179 reference and hidden constructors.
1180 * BuildProperty.cs: Removed IBuildProperty reference.
1181 * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
1182 IBuildPropertyGroup references. Changed Evaluate to internal.
1183 * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
1184 reference and hidden constructors.
1185 * ConsoleLogger.cs: Updated names of event handlers.
1186 * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
1187 Escape. Added UnloadAllProjects () and UnloadProject ().
1188 * FileLogger.cs: Removed ApplyParameter ().
1189 * GroupingCollection.cs: Hidden.
1190 * InvalidProjectFileException.cs: Removed HasBeenLogged property.
1191 * ItemPropertyGroupingBase.cs: Commented.
1192 * ProcessingPass.cs: Hidden.
1193 * Project.cs: Removed IProject reference. Changed CurrentEncoding to
1195 * Target.cs: Removed ITarget reference.
1196 * TargetCollection.cs: Removed ITargetCollection reference.
1197 * TaskElement.cs: Removed ITaskElement reference.
1198 * TaskEngineAssemblyResolver.cs: Hidden.
1199 * Utilities.cs: Made static class, removed CheckPath (),
1200 ValidateCulture (), GetSupportedCultures () and added Escape ().
1202 2006-02-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1204 * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
1207 2005-09-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1209 * Project.cs: Added MonoTODO attributes.
1210 * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
1211 ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
1212 IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
1213 BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
1214 SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
1215 BuildItemGroup.cs, InvalidProjectFileException.cs,
1216 BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
1217 Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
1218 PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
1219 ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
1220 IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
1221 IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
1222 ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
1223 ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
1224 IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
1225 IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
1226 BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
1227 ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
1229 2005-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
1231 * TaskDatabase.cs: Change Shared to Framework.
1232 * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
1233 CaseInsensitiveHashCodeProvider
1235 2005-09-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1237 * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
1238 * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
1241 2005-09-09 Marek Sieradzki <marek.sieradzki@gmail.com>
1243 * InternalLoggerException.cs: Changed protected fields to private.
1245 2005-09-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1247 * Engine.cs: Added check for globalProperties.
1248 * Project.cs: Added using path from importedProject.FullFileName when
1249 adding UsingTask elements.
1251 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1253 * TaskElement.cs: Changed ReflectedType to PropertyType.
1254 * ChangeType.cs (TransformToString): Changed to pass proper Type to
1257 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1259 * BuildPropertyGroup.cs: Added check for PropertyType when adding a
1261 * BuildProperty.cs: Organized PropertyType enum.
1262 * Engine.cs: Added setting CommandLine PropertyType of global
1265 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1267 * InvalidProjectFileException.cs: Changed Message property.
1268 * ChangeType.cs (TransformToString): Added separator between items.
1269 * TaskEngineAssemblyResolver.cs: Formatting.
1271 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1273 * DirectoryScanner.cs: Added.
1274 * BuildItem.cs: Moved file scanning code to DirectoryScanner.
1275 * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
1276 * Project.cs: Removed Evalute* ().
1278 2005-08-30 Marek Sieradzki <marek.sieradzki@gmail.com>
1280 * Target.cs: Formatting.
1281 * Expression.cs: Added check if array == null.
1282 * BuildItem.cs: Removed 'break' to remove warnings.
1283 * ConsoleLogger.cs: Formatting.
1284 * Engine.cs: Added handling of default target(s).
1285 * Project.cs: Added handling of default target(s).
1287 2005-08-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1289 * TaskElement.cs: Added check for parameters.
1290 * Target.cs: Added logging of target skipping.
1291 * Expression.cs: Changed returning object[] to string[], bool[]... in
1293 * ItemReference.cs: Fixed for item references without custom
1295 * BatchingImpl.cs: Added real inputs/outputs checking.
1296 * Engine.cs: Moved global properties setting.
1297 * Project.cs: Moved global properties setting.
1299 2005-08-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1301 * Target.cs: Added checks for target existence.
1302 * BuildItemGroup.cs: Changed to use transforms.
1303 * MetadataReference.cs: Wrote real implementation.
1304 * ItemReference.cs: Rewritten to use transforms.
1305 * BuildItem.cs: Changes for transforms and metadata.
1306 * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
1308 * Project.cs: Fixed project importing.
1309 * ImportedProject.cs: Changed to throw exceptions instead of returning
1312 2005-08-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1314 * Engine.cs: Removed FIXME.
1315 * Project.cs: Splitted ProcessElements and added project importing.
1316 * ImportedProject.cs: Rewritten.
1318 2005-08-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1320 * TaskElement.cs: Added getting of objects of every type.
1321 * BuildItemGroup.cs: Added ToITaskItemArray ().
1322 * Expression.cs: Implemented part that is not using metadata.
1323 * ItemReference.cs: Implemented parsing item references. Need to fix
1325 * BuildItem.cs: Fixed ToITaskItem ().
1326 * PropertyReference.cs: Implemented parsing property references. This
1327 also needs validity checking.
1329 2005-08-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1331 * TaskElement.cs: Added Output element handling.
1332 * Target.cs: Cleaned up.
1333 * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1334 * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1335 ItemReference.cs, ChangeType.cs: Added.
1336 * BuildItem.cs: Added creating BuildItem from TaskItem.
1337 * BuildPropertyGroup.cs: Small changes.
1338 * BatchingImpl.cs: Fixed to return real task execution result.
1339 * BuildProperty.cs: Fixed FinalValue property.
1340 * Engine.cs: Reformatted logging.
1341 * Project.cs: Added check to EvaluateProperty.
1343 2005-08-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1345 * TaskElement.cs: Added part of execution engine.
1346 * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1347 * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1348 * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1349 * BuildItem.cs: Added handling of built-in metadata and referencing
1350 Items by name not FullName.
1351 * BatchingImpl.cs: Added temporary task "batching".
1352 * ConsoleLogger.cs: Added temporary workaround to not show sender.
1353 * Project.cs: Added Evaluate. It will be moved to separate class.
1355 2005-08-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1357 * EventSource.cs, Engine.cs: Added CriticalEvents.
1358 * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1359 Project.cs: Added some support for items.
1360 * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1362 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1364 * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1367 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1369 * BatchingImpl.cs: Added.
1370 * BuildWhen.cs, BuildEngine.cs, Target.cs,
1371 BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1372 BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1373 TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1374 GroupingCollection.cs: Updated.
1376 2005-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1378 * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1379 BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1380 BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1381 BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1382 EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1383 GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1384 InternalLoggerException.cs, InvalidProjectFileException.cs,
1385 ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1386 ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1387 TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1388 TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1389 Initial check-in of implementations.
1391 2005-07-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1393 * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1394 IBuildItemGroupCollection.cs, IBuildProperty.cs,
1395 IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1396 ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1397 IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1398 IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1399 Initial check-in of interfaces and a syntax file, real classes are
1400 changing a lot so I'll wait a moment with checking them in.