1 2009-10-12 Ankit Jain <jankit@novell.com>
3 * Project.cs (Load): Add argument checks.
5 2009-10-11 Ankit Jain <jankit@novell.com>
7 * ConsoleLogger.cs (no_colors): Rename to ..
8 (use_colors): .. this. Fix the case when XBUILD_COLORS
11 2009-10-11 Ankit Jain <jankit@novell.com>
13 * ConsoleLogger.cs: Use ColorSetter and ColorResetter .
14 Support 'XBUILD_COLORS' to set colors for errors, warnings,
17 2009-10-10 Ankit Jain <jankit@novell.com>
19 * ConsoleLogger.cs (ProjectFinishedHandler): Once projectFailed
20 becomes true, don't reset it. We are looking for "atleast one
23 2009-10-08 Ankit Jain <jankit@novell.com>
25 * DirectoryScanner.cs: Use Path.GetPathRoot, instead of
26 directly using DirectoryInfo ("z:"), that doesn't return
29 2009-10-08 Ankit Jain <jankit@novell.com>
31 * DirectoryScanner.cs: Handle absolute paths. Fix to work
32 correctly on windows. Change order of adding paths to match
33 msbuild, useful to have.
35 2009-10-08 Ankit Jain <jankit@novell.com>
37 * TaskBatchingImpl.cs (ParseTaskAttributes): Parse attributes
38 of the 'Output' element also.
39 * TaskEngine.cs (PublishOutput): Honor condition on 'Output' also.
41 2009-10-07 Ankit Jain <jankit@novell.com>
43 * ConsoleLogger.cs: Mark build as failed, if any project failed.
45 2009-10-06 Ankit Jain <jankit@novell.com>
47 * ConsoleLogger: Improve error reporting. Don't count failed task,
48 target or project as another error. Show "errors" after "warnings",
49 more useful to the user.
50 * Project.cs (BuildTarget): Log error instead of using CWL.
52 2009-10-03 Ankit Jain <jankit@novell.com>
54 * Project.cs (OS): New.
55 (InitializeProperties): Set 'OS' as a pre-defined property, set to
56 'Windows_NT', 'Unix' or 'OSX' depending on the platform.
58 2009-10-02 Ankit Jain <jankit@novell.com>
60 * Expression.cs (Parse): Don't change '/' to '\\', not required.
62 2009-10-01 Ankit Jain <jankit@novell.com>
64 * Project.cs (AddImport): Show the correct source file name, when
65 the import is in the main project file.
67 2009-10-01 Ankit Jain <jankit@novell.com>
70 * Import.cs (.ctor): Evaluate and set EvaluatedProjectPath to
71 the full path of the imported project here itself, instead of ..
73 * ImportCollection.cs (Add): Use import.EvaluatedProjectPath .
75 * Project.cs (AddImport): Don't process if condition is false.
76 Warn if a circular reference is detected, and ignore the import.
78 2009-09-29 Ankit Jain <jankit@novell.com>
80 * GroupingCollection.cs (Evaluate): Mark internal.
81 * Project.cs (AddImport): Only evaluate the properties,
82 till before the import.
84 2009-09-29 Ankit Jain <jankit@novell.com>
86 * Project.cs (DoLoad): Don't use XmlReader.Create, for loading
87 the project xml, as returned Xml*Reader normalizes the newlines.
88 Instead directly use the TextReader with XmlDocument.Load ().
90 2009-09-27 Ankit Jain <jankit@novell.com>
92 * ConditionParser.cs: Show the condition being parsed in the
95 2009-09-26 Ankit Jain <jankit@novell.com>
97 * Expression.cs: Allow '-' in item, property and metadata names.
99 2009-09-26 Ankit Jain <jankit@novell.com>
101 * Project.cs (Evaluate): Split into this and ..
102 (PrepareForEvaluate): .. this.
103 (AddImport): Evaluate the current set of properties/items etc,
104 before processing the imported project. Honor the Condition
106 (ProcessProjectAttributes): Update MSBuildProjectDefaultTargets
108 * GroupingCollection.cs (Evaluate): Don't evaluate Imports here.
109 * BuildItemGroup.cs (Evaluate): Evaluate only once.
110 * BuildPropertyGroup.cs (Evaluate): Evaluate only once.
112 2009-09-26 Ankit Jain <jankit@novell.com>
114 * Project.cs: Get InitialTargets from the imported projects also.
115 The combined list of targets are executed, in the order they were
117 DefaultTargets are also read in from imported projects, and the first
118 non-empty DefaultTargets found is used.
120 2009-09-25 Ankit Jain <jankit@novell.com>
122 * Project.cs (BuildTarget): Handle skipped targets.
124 2009-09-25 Ankit Jain <jankit@novell.com>
126 * Project.cs (DoLoad): If a VS2003 project is detected, then throw
127 InvalidProjectFileException with useful error.
129 2009-09-24 Ankit Jain <jankit@novell.com>
131 * Project.cs (Load): Emit the .sln.proj file only if env var
132 XBUILD_EMIT_SOLUTION is set.
134 2009-09-24 Ankit Jain <jankit@novell.com>
136 * Project.cs (GetKeyForTarget): Make target name, case insensitive.
138 2009-09-24 Ankit Jain <jankit@novell.com>
140 * Project.cs (InitializeProperties): Set 'MSBuildProjectDefaultTargets'
143 2009-09-10 Ankit Jain <jankit@novell.com>
145 * BuildItem.cs (Evaluate): Metadata from "Include" should be,
146 preserved, so use ConvertTo ITaskItem, rather than string.
147 Ensure that the new items have the metadata from references _in_
148 Include, and the metadata of _this_ builditem.
149 * DirectoryScanner.cs (Includes): Change to a array of ITaskItem.
150 (MatchedFilenames): Rename to ..
151 (MatchedItems): .. this, and change type of array of ITaskItem.
152 Ensure that metadata of items in Includes are retained in the
155 * BuildItemGroup.cs (ConvertoToITaskItemArray): Add 'separator'
156 param. If separator is present, then just return a "Join'ed"
157 string as the single task item.
158 * ItemReference.cs: Track api changes.
160 * BuildProperty.cs (ConvertToITaskItemArray): Split the value,
161 as we need separate task items.
163 2009-09-01 Ankit Jain <jankit@novell.com>
166 * Project.cs (BuildTarget): Move caching of target outputs to ..
167 * Target.cs: .. here. Move LogTargetSkipped also here.
168 Ensure that caching happens for target dependencies also.
170 2009-09-01 Ankit Jain <jankit@novell.com>
172 * DirectoryScanner.cs (Scan): Ignore empty entries in includes and
175 2009-09-01 Ankit Jain <jankit@novell.com>
177 * Expression.cs (ParseOptions): New enum. Replace the bool params
178 of exression.Parse with this. Add option to control expansion of
180 (CopyToExpressionCollection): Track api changes.
182 Update all expr.Parse calls to use the new enum.
183 * BuildItem.cs, BuildProperty.cs, BuildTask.cs, Import.cs,
184 Target.cs, TargetBatchingImpl.cs, UsingTask.cs: Track api changes.
186 * BatchingImplBase.cs: Track api changes. Allow metadata refs
188 * ConditionFactorExpression.cs: Allow metadata refs in conditions.
189 * ItemReference.cs: Allow metadata in transforms.
190 * TaskEngine.cs: Allow metadata refs.
192 * MetadataReference.cs (.ctor): Add a 'original string' param.
194 2009-08-29 Ankit Jain <jankit@novell.com>
196 * Expression.cs (ExpressionOptions): New.
198 Introduce a ExpressionOptions argument to all ConvertTo*
199 methods. Implement the rule: in evaluation phase, expand
200 all items completely, but dont expand item refs in properties.
201 At other times, expand the item refs in the properties.
202 See comments in Expression.cs, for a full explanation.
203 * BuildItem.cs: Track api changes.
204 * BuildItemGroup.cs: Likewise.
205 * BuildProperty.cs: Track api changes. Handle self-references.
206 * BuildTask.cs: Track api changes.
207 * IReference.cs: Add ExpressionOptions param.
208 * ItemReference.cs: Track api changes.
209 * PropertyReference.cs: Likewise.
210 * MetadataReference.cs: Likewise.
211 * ExpressionCollection.cs: Track api changes. Add support for
212 converting all primitive types and DateTime, instead of a fixed
214 * Project.cs (GetMetadataBatched): Use the evaluated metadata.
215 * TaskBatchingImpl.cs: Handle the case when batching is required,
216 but no items are available.
218 * TaskEngine.cs: Throw on unsupported types. Correctly handle
219 properties in case of empty values.
221 2009-08-26 Ankit Jain <jankit@novell.com>
223 * Expression.cs: Correctly handle a item reference with transform
224 when allowItems is false. If item ref is ignored, then the transform
225 will get incorrectly matched as a metadata ref.
226 * ItemReference.cs (.ctor): Add a @original_string param.
228 2009-08-26 Ankit Jain <jankit@novell.com>
230 * Utilities.cs (UnescapeFromXml): New. From md.
231 * BuildProperty.cs (.ctor): Unescape xml codes from the InnerXml
232 of the property element.
234 2009-08-26 Ankit Jain <jankit@novell.com>
236 * BuildProperty.cs (ConvertToString): New.
237 (ConvertoToITaskItemArray): New. Parse the property value.
238 * PropertyReference.cs (ConvertToString): Use BuildProperty's
240 (ConvertoToITaskItemArray): Likewise.
242 2009-08-21 Ankit Jain <jankit@novell.com>
244 * Engine.cs (EndProjectBuild): Use the @succeeded argument
245 instead of hardcoding 'true'.
246 * Target.cs (Build): Add an overload to return executeOnErrors
247 value for the target executed. If building dependencies fails,
248 and executeOnErrors is true, then execute OnError tasks.
249 Add the new param to ..
250 (BuildDependencies): this, ..
252 (GetDependencies): Improve error message and variable name.
253 (ExecuteOnErrors): Honor OnError tag's Condition also.
254 * TaskBatchingImpl.cs (Run): Correctly set executeOnErrors param.
256 2009-08-20 Ankit Jain <jankit@novell.com>
259 * Project.cs (Load): Add support for loading .sln files.
261 2009-08-20 Ankit Jain <jankit@novell.com>
263 * BuildTask.cs (Execute): Use task_logger only after the task
264 has been initialized. Catch and report task loading errors.
265 * Target.cs (DoBuild): Dont rethrow the exception, and emit
266 the stacktrace as a low importance message.
268 2009-08-18 Ankit Jain <jankit@novell.com>
270 * BatchingImplBase.cs: Make the item name lookups and metadata be case
272 * TaskDatabase.cs: Likewise.
273 * TaskEngine.cs: Make property name looks, case insensitive.
275 2009-08-09 Miguel de Icaza <miguel@novell.com>
277 * ConsoleLogger.cs: Change the format of the error and warnings
278 strings to work when invoked inside Emacs by not rendering the
279 column if available, by using lowercase "error"/"warning" strings
280 instead of camelcased versions and to not have unnecessary padding.
282 2009-07-31 Ankit Jain <jankit@novell.com>
284 * ConsoleLogger.cs: Keep track of all the errors and warnings
285 and show them at the end.
287 2009-07-31 Ankit Jain <jankit@novell.com>
289 * Target.cs (Build): Log a message if a target is skipped.
291 * BuildTask.cs (Execute): Log error if task execution fails.
293 2009-07-30 Ankit Jain <jankit@novell.com>
295 * Engine.cs (.ctor): Set default BinPath. Currently this assumes
296 v2.0, this will change when multi-targeting lands.
298 2009-07-30 Ankit Jain <jankit@novell.com>
300 * Project.cs (InitializeProperties) Set 'MSBuildProjectFile' and
301 'MSBuildProjectName' properties.
303 2009-07-28 Ankit Jain <jankit@novell.com>
305 * TaskEngine.cs (Prepare): Fix formatting mistake.
306 * ConsoleLogger.cs: Emit "-- FAILED" also when project/target building
307 fails. Also, emit result of project at Normal verbosity level.
309 2009-07-23 Ankit Jain <jankit@novell.com>
312 * Project.cs (ExtensionsPath): New.
313 (InitializeProperties): Set "MSBuildExtensionsPath" property.
315 2009-06-12 Ankit Jain <jankit@novell.com>
318 * ExpressionCollection.cs (ConvertToITaskItemArray): Whitespace around a
319 itemref is allowed if the prev/next element is ";".
321 2009-06-12 Ankit Jain <jankit@novell.com>
323 * Utilities.cs (FromMSBuildPath): Return null if the path contains
324 "drive:" only on windows.
326 2009-06-07 Ankit Jain <jankit@novell.com>
328 * Target.cs (Outputs): Use ITaskItem[] for conversion, to retain
331 2009-05-29 Ankit Jain <jankit@novell.com>
333 Correctly handle global properties. Correctly log
334 project/build events.
336 * BuildPropertyGroup.cs (Clone): Implement.
337 * Engine.cs (globalProperties): Rename to ..
338 (global_properties): .. this.
339 (currentlyBuildingProjectsStack): New. Used to correctly
340 log and raise project/build start/finish events.
341 (BuildProjectFile): Override any project global properties
342 with explicitly specified ones, here in the param @globalProperties.
343 Mark project for reevaluation, which will update the engine's
344 global properties also.
345 Reset both engine and project's old global properties at the end.
346 (UnregisterAllLoggers): Log build finished only if we are currently
348 (StartBuild): Rename to ..
349 (StartProjectBuild): .. this. Keeps track of the projects being built
350 in the new stack, and logs project and build events accordingly.
351 (EndProjectBuild): New. Uses the stack to keep track of projects
352 finishing builds, and raises project and build events accordingly.
353 (LogProjectStarted): Move here from Project.cs
354 (LogProjectFinished): Likewise.
356 * Project.cs (Build): Log start of project build.
357 Set current directory to the project file's dir, and reset at end.
358 (BuildInternal): Don't log here, its done in Build.
359 (BuildTarget): Already built targets are keyed by the set of global
360 properties that they were built with.
361 (GlobalPropertiesToString): New.
362 (ResetBuildStatus): 'building' must be true to allow built targets to be reset.
363 (RemoveBuiltTargets): Initialize builtTargetKeys in .ctor
364 (Evaluate): Remove built targets only if we are currently building and
365 build settings are None.
366 Merge project's global properties with those of the parent engine.
367 Add missing properties from engine's global properties.
368 (LogTargetSkipped): Fix format string, add the reqd argument.
370 2009-05-29 Ankit Jain <jankit@novell.com>
372 * ConditionFunctionExpression.cs: Add 'HasTrailingSlash' function.
373 (HasTrailingSlash): New.
375 2009-05-12 Ankit Jain <jankit@novell.com>
377 * Project.cs (.ctor): Init timeOfLastDirty.
379 2009-05-05 Miguel de Icaza <miguel@novell.com>
381 * Contribution from Martin Brenn to fix #498154.
383 2009-04-27 Ankit Jain <jankit@novell.com>
386 * Engine.cs (BuildProjectFile): Set project's GlobalProperties to the
387 one passed as argument.
389 2009-04-27 Ankit Jain <jankit@novell.com>
391 * TaskEngine.cs (Prepare): Emit a useful error message property value
392 can't be converted to required type.
394 2009-04-27 Ankit Jain <jankit@novell.com>
396 * ExpressionCollection.cs (ConvertToObject): Allow true/on/yes
397 as valid true values for bool, and corresponding for false.
399 2009-03-27 Jonathan Chambers <joncham@gmail.com>
401 * BuildWhen.cs: Add basic implementation.
402 * BuildChoose.cs: Add basic implementation.
403 * BuildItem.cs (AddEvaluatedItem): Add BuiltItem to
404 EvaluatedItemsIgnoringCondition.
405 * GroupingCollection.cs: Add evaluation of BuildChoose items.
407 2009-03-26 Jonathan Chambers <joncham@gmail.com>
409 * TaskDatabase.cs (RegisterTask): Search for class by name
410 if task was not found using GetType (which uses namespace).
412 2009-02-26 Ankit Jain <jankit@novell.com>
414 * Target.cs: Handle target with no tasks. Log errors.
416 2009-02-24 Ankit Jain <jankit@novell.com>
418 Lazily load UsingTask tasks.
419 * UsingTask.cs (Evaluate): Register 'this' with task database,
420 but don't load it yet. Register only if condition evaluates to true.
421 Move the load logic to ..
422 (Load): .. here. Register with the specified task database.
423 * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance
424 in a table keyed by task name, but don't load it yet.
425 (GetTypeFromClassName): Try to load UsingTask if task is not already
426 loaded. Move loading logic to ..
427 (GetTypeFromClassNameInternal): .. here.
428 (CopyTasks): Copy the usingTasks table also.
430 2009-02-23 Ankit Jain <jankit@novell.com>
432 * BuildItem.cs (AddMetadata): Allow overwriting older values.
434 2009-02-22 Ankit Jain <jankit@novell.com>
436 * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode
437 instead of XmlElement. Eg. XmlComment
439 2009-02-21 Ankit Jain <jankit@novell.com>
441 * Utilities.cs (FromMSBuildPath): Copy from monodevelop.
442 * Project.cs (Load): Use FromMSBuildPath on the path.
443 (InitializeProperties): Set "MSBuildToolsPath" also.
445 2009-02-20 Ankit Jain <jankit@novell.com>
448 * ConditionTokenizer.cs: Handle unquoted item references (with or w/o
449 transforms) in conditions.
450 * ConditionParser.cs: Parse unquoted item, property references.
451 eg. Condition = " @(Foo->'%(Extension)') == '.exe' "
452 * Token.cs (Token.ToString): Override.
453 (TokenType.Transform): Uncomment.
455 2009-02-12 Jonathan Chambers <joncham@gmail.com>
457 * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
458 no XmlElement.InnerText. This allows properties to be additional
461 2009-02-01 Ankit Jain <jankit@novell.com>
463 * BuildEngine.cs (BuildProjectFile): Use
464 BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
465 * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
466 built. Move logging of project start/finish to ..
467 * Project.cs: .. here. Build a target only if hasn't been built already.
468 Keep track of target outputs, and return those even if an already built
469 target has been invoked again.
470 Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
472 2009-01-31 Ankit Jain <jankit@novell.com>
474 * BatchingImpl.cs: Split into ..
475 * BatchingImplBase.cs: .. this,
476 * TaskBatchingImpl.cs: .. this ..
477 * TargetBatchingImpl.cs: .. and this. Implement target batching here.
479 * Target.cs (DoBuild): Use TargetBatchingImpl for building.
480 (Log*): Move to TargetBatchingImpl .
484 2009-01-30 Ankit Jain <jankit@novell.com>
486 * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
489 2009-01-29 Ankit Jain <jankit@novell.com>
491 * BuildItem.cs (child_items): Change type from BuildItemGroup to
493 (HasParent): Rename to ..
494 (HasParentItem): .. this.
495 (ParentItemGroup): Add setter.
497 * BuildItemGroup.cs (.ctor): Add overload with @project param.
499 (AddItem): Correctly set the ParentItemGroup for new build items.
500 (ParentProject): Add setter.
501 * Project.cs: Set the project for new BuildItemGroup instances.
502 * TaskEngine.cs (PublishItemGroup): Likewise.
504 2009-01-06 Ankit Jain <jankit@novell.com>
506 * Project.cs (Build): Honor InitialTargets list.
508 2009-01-06 Ankit Jain <jankit@novell.com>
510 * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
511 the property type also.
512 * MSBuild.cs (Execute): Parse 'Properties' task param to set global
515 2009-01-06 Ankit Jain <jankit@novell.com>
517 * Project.cs (Build): Correctly handle null targetNames argument.
519 2009-01-06 Ankit Jain <jankit@novell.com>
521 * Engine.cs (LogProjectStarted): Add a null check.
523 2009-01-01 Ankit Jain <jankit@novell.com>
525 * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
526 * ChangeType (ToBuildItemGroup): Add 'split' param.
528 * Expression.cs (Parse): Add a new overload with a 'split' param.
529 * ExpressionCollection.cs (Add): Add new overload for IReference,
530 remove the ones for Item/Metadata/PropertyReference.
531 (ConvertToArray): Implement correctly.
532 (ConvertToString): Track api changes.
533 (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
534 (ConvertToITaskItemArray): Implement support for concat'ing expressions.
535 (AddItemsToArray): New.
536 (ConvertToITaskItemArrayFromString): Refactor a bit.
537 (ThrowCantConcatError): New.
538 * ItemReference.cs: Update.
539 * MetadataReference.cs: Update.
540 * PropertyReference.cs (ConvertToITaskItemArray): Implement.
542 * BuildPropertyGroup.cs: Track api changes.
543 * TaskEngine.cs (PublishOutput): Improve exception message.
544 * Project.cs (DoLoad): Improve exception message. Add a null check.
546 2008-12-30 Ankit Jain <jankit@novell.com>
548 * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
549 metadata values for unqualified references.
550 (BuildItemGroupToITaskItemArray): Rename to ..
551 (BuildItemGroupToITaskItems): .. this.
554 2008-12-18 Ankit Jain <jankit@novell.com>
556 * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
558 2008-12-17 Ankit Jain <jankit@novell.com>
560 * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
561 only one instance of unique metadata value is required.
563 2008-11-22 Ankit Jain <jankit@novell.com>
565 * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
567 * MetadataReference.cs (ConvertToITaskItemArray): New.
568 * Project.cs (GetAllItemGroups): New.
570 2008-11-21 Ankit Jain <jankit@novell.com>
572 * BatchingImpl.cs: Add task batching implementation.
573 * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
574 * ExpressionCollection.cs (Count): New.
575 (ConvertToString): Handle MetadataReference.
576 * ItemReference.cs (ConvertToString):
577 (ConvertToITaskItemArray): Use the batching api.
579 * MetadataReference.cs (ConvertToString): New.
581 * Project.cs: Add api for accessing batched items and metadata.
582 * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
585 2008-10-01 Ankit Jain <jankit@novell.com>
587 * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
588 (BuildProjectFile): If filename is null (project.LoadXml) then use
590 * BuildTask.cs (InitializeTask): Track api change.
591 * Expression.cs (Parse): Skip empty entries in the expression.
593 2008-09-24 Ankit Jain <jankit@novell.com>
595 * Engine.cs: Add argument checks.
596 * Project.cs: Likewise.
598 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
600 * Project.cs (Build): Add outputs to targetOutputs.
602 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
604 * ExpressionCollection.cs (ConvertToArray): Simplify.
606 2007-03-05 Marek Sieradzki <marek.sieradzki@gmail.com>
608 * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
609 simplified. It still needs tests and refactoring.
611 2007-02-22 Marek Sieradzki <marek.sieradzki@gmail.com>
613 * BuildEngine.cs (BuildProjectFile): Don't crash on null
616 * Target.cs: Add Outputs property.
618 2007-02-20 Marek Sieradzki <marek.sieradzki@gmail.com>
620 * Target.cs (Build): Split to GetDependencies () and BuildDependencies
621 (). Support condition.
623 * BatchingImpl.cs (BatchBuildTask): Simplify.
625 2007-02-18 Marek Sieradzki <marek.sieradzki@gmail.com>
627 * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
630 * ConditionFunctionExpression.cs: Removed warnings.
632 * BuildTask.cs (Execute): Write exceptions to std err (they should be
633 logged but it's better than swallowing).
635 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
637 * ConditionTokenizer.cs: Add Putback ().
639 * ConditionParser.cs: Add parsing of functions.
641 * ConditionFunctionExpression.cs: Add.
643 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
645 * BuildPropertyGroup (SetProperty): Throw an exception when trying to
646 set property in persisted property group.
648 2007-01-29 Marek Sieradzki <marek.sieradzki@gmail.com>
650 * BuildTask.cs (Execute): Log errors that happen when invoking ITask
653 * ConsoleLogger.cs (TargetFinishedHandler)
654 (TaskFinishedHandler): Increment error count.
656 2007-01-28 Marek Sieradzki <marek.sieradzki@gmail.com>
658 * BuildItem.cs (RemoveMetadata): Remove from XML.
659 (SetMetadata): Trigger project reevaluation.
661 2007-01-26 Marek Sieradzki <marek.sieradzki@gmail.com>
663 * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
666 2007-01-23 Marek Sieradzki <marek.sieradzki@gmail.com>
668 * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
669 TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
670 BatchingImpl.cs, BuildProperty.cs: Track API changes.
672 * Expression.cs (Parse): Added allowItems parameter and made regexes
675 * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
676 will try to import a.ext when given a.EXT.
678 2007-01-21 Marek Sieradzki <marek.sieradzki@gmail.com>
680 * BuildItemGroup.cs: Store information saying what is the last item
681 group that contains build item name.
683 * Project.cs (Build): Pass empty array (build default targets).
685 2007-01-19 Marek Sieradzki <marek.sieradzki@gmail.com>
687 * Token.cs: Commented Transform and LiteralSubExpression and added
690 * ConditionParser.cs: Removed redundant casts, rewrote
691 ParseFactorExpression () and added parsing of '!'.
693 * ConditionTokenizer.cs: Always skip whitespaces when getting next
694 token (no IgnoreWhiteSpace property). Don't create a token from '->'.
695 Moved ReadChar () in front of all ifs.
697 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
699 * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
700 from XML. (not to escape items that have parents twice).
702 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
704 * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
705 (Project): Renamed to ParentProject.
707 * BuildItem.cs (ctor)
708 (CopyCustomMetadata): Add null check.
710 * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
711 (RemoveProperty): Added null check.
713 * TargetCollection.cs (RemoveTarget): Added null check.
715 * Engine.cs (UnloadProject): Added null check.
717 * GroupingCollection.cs (Remove): Check if removed group belongs to
720 * Project.cs (AddNewItem): Implemented.
721 (RemoveItem): Reorganized.
722 (SetProjectExtensions): Added null check.
724 2007-01-14 Marek Sieradzki <marek.sieradzki@gmail.com>
726 * BuildItemGroup.cs (Detach): Added.
728 (RemoveItemAt): Used Detach ().
730 * BuildItem.cs: Made FromXml and HasParent internal and added
731 ParentItem and ParentItemGroup properties (internal).
734 * GroupingCollection.cs (Remove): Used Detach ().
736 * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
738 (GetEvaluatedItemsByNameIgnoringCondition)
739 (GetEvaluatedItemsByName)
740 (GetEvaluatedProperty): Reevaluate if needed.
742 (RemoveAllItemGroups)
743 (RemoveAllPropertyGroups): Implemented.
744 (DoLoad): Added closing of TextReader.
746 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
748 * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
749 change but just mark that it needs it.
751 * Project.cs: Reevaluate when it needs reevaluation and one of
752 Evaluated* properties is used.
754 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
756 * Target.cs: Throw an exception when <OnError> is not last element in
759 * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
761 * TargetCollection.cs: If a target is already there replace it with
764 * BuildProperty.cs: Added XmlElement property.
766 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
768 * ImportCollection.cs: Don't add imports that are already added.
770 * BuildItemGroup.cs: MonoTODOs.
772 * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
773 condition can't be evaluated to bool.
775 * BuildPropertyGroup.cs (Evaluate): Simplify.
777 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
779 * BuildWhen.cs: Moved BindToXml () code to ctor.
781 * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
782 property needed for removing groups.
784 * Engine.cs: Added StartBuild () that logs build start when Build ()
787 * GroupingCollection.cs: Added Remove () for item and property groups.
789 * Project.cs (AddNewImport): Implemented.
790 (AddNewItemGroup): Implemented.
791 (AddNewPropertyGroup): Implemented.
792 (AddNewUsingTaskFromAssemblyFile): Implemented.
793 (AddNewUsingTaskFromAssemblyName): Implemented.
794 (RemoveItemGroup): Implemented.
795 (RemovePropertyGroup): Implemented.
797 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
799 * BuildItemGroup.cs (Clear): Remove from XML.
801 * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
802 to Project.EvaluatedProperties.
803 (Clear): Remove from XML.
805 2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
807 * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
810 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
812 * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
813 Add () calls when processing a project from Import and
814 evaluate_iterator for evaluation.
816 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
818 * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
819 and prepend relative directory of importing project to full path of
822 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
824 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
825 BuildItemGroupCollection.cs, Project.cs: Track API changes.
827 * GroupingCollection.cs: Now it needs Project reference so added it.
829 * BuildTask.cs: Formatting.
831 * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
833 * ConditionParser.cs (ParseAndEvaluate): Added.
835 * BuildItem.cs: Changed exception message.
837 2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
839 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
840 BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
841 GroupingCollection doesn't need Project reference.
843 * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
845 * BuildItemGroup.cs: Added new readOnly parameter to ctor.
846 (Project.EvaluatedItems is a read only item group.)
847 (ReplaceWith): Added.
849 * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
850 global property group causes reevaluation of its project.
852 * Project.cs: ProcessXml () is internal and can be "safely" invoked by
855 * OldExpression.cs: Removed.
857 * BuildProperty.cs (Evaluate): Simplified.
859 * ChangeType.cs (TemporaryTransform): Simplified.
861 * BuildItem.cs: There are now 3 types of build items: from XML, having
862 parent from XML, virtual. Added SplitParentItem ().
864 2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
866 * Utilities.cs: Added Unescape ().
868 * BuildItemGroup.cs, BuildItem.cs: Pass null project to
869 BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
870 groups (at the moment just unescape).
872 * Expression.cs (CopyToExpressionList): Unescape strings.
874 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
876 * Target.cs (ctor): Added ImportedProject argument and removed
878 (AddNewTask): Implemented.
880 * TargetCollection.cs (AddNewTarget): Implemented.
882 * Project.cs: Track API changes.
884 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
886 * Target.cs (Build): Don't throw anything in case of error, just
889 * BuildItemGroup.cs (set_Condition): Throw an exception if group is
892 * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
895 * BuildProperty.cs (ToString): Throw an exception if property is not
897 (op_Explicit): Added a null check.
899 * Engine.cs: Better error message.
901 * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
902 IndexOutOfRangeException.
904 * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
905 (MarkProjectAsDirty): Set time.
907 2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
909 * BuildItemGroup.cs (Clone): Throw exception.
911 * Project.cs (Load): Throw InvalidProjectFileException if anything
914 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
916 * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
917 and ConvertToITaskItemArray ().
919 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
921 * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
922 classes that were public in Beta 2 and aren't used.
924 * Expression.cs: Added replacement for parsing expressions char by
925 char. It uses regexes to find item/property/metadata references in
928 * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
929 Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
930 BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
932 * ConditionRelationalExpression.cs: Formatting.
934 * OldExpression.cs: Commented everything.
936 * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
937 parsing to Expression.
939 * BuildItem.cs: Check if project is from XML in set_Condition and
942 * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
945 * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
946 can evaluate expression in CanEvaluateToBool ().
948 2006-12-12 Marek Sieradzki <marek.sieradzki@gmail.com>
950 * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
951 which item group is imported.
953 * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
955 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
957 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
958 BuildItemGroupCollection.cs: Little changes related to
961 * ImportCollection.cs: Use GroupingCollection not an internal list.
963 * Import.cs (Evaluate): Split to functions and check if
964 EvaluatedProjectPath is empty.
966 * GroupingCollection.cs, Project.cs: Move evaluation to
967 GroupingCollection. Change algorithm to use 2 passes: first for property
968 groups and imports and second for item groups.
970 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
972 * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
973 BuildItemGroup> not IDictionary.
975 * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
976 evaluated to false because we want to add every item to
977 Project.EvaluatedItemsByNameIgnoringCondition.
979 * Project.cs (Build): Don't throw an exception just return false.
980 (GetEvaluatedProperty): Avoid NullReferenceException.
981 (SetProjectExtensions): Implemented.
983 2006-12-08 Marek Sieradzki <marek.sieradzki@gmail.com>
985 * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
987 * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
988 BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
989 Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
991 * ImportCollection.cs: Added a note.
993 2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
995 * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
997 * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
998 (UsingTask[] array, int index)
1000 * TaskEngine.cs: Reformatted PublishOutput () and added copying of
1001 items to Project.EvaluatedItems in PublishItemGroup ();
1003 * BuildItemGroup.cs: Added [MonoTODO].
1005 * UsingTask.cs: Used expression for AssemblyFile to get around
1006 problems with '\' and '/'.
1008 * BuildItem.cs (ctor): Added null checks.
1009 (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
1010 (SetMetadata): Don't escape evaluatedMetadata and escape
1011 unevaluatedMetadata only when treatPropertyValueAsLiteral.
1013 * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
1014 FromXml () instead of null checks.
1015 (SetProperty): Escape propertyValue when it is literal.
1017 * BuildProperty.cs: Changed exception message.
1019 * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
1021 (GetProjectExtensions): Implemented.
1023 2006-12-05 Marek Sieradzki <marek.sieradzki@gmail.com>
1025 * BuildTask.cs: Remove [MonoTODO], add exception throwing in
1026 GetParameterValue (), use expressions in ContinueOnError.
1027 * ConditionFactorException.cs: Throw InvalidProjectFileException ()
1028 instead of InvalidOperationException ().
1029 * ImportCollection.cs: Implement CopyTo ().
1030 * Target.cs: Remove redundant variables (XmlAttributes), return
1031 String.Empty in DependsOnTargets, add a null check in RemoveTask ().
1032 * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
1033 * Import.cs: Throw an exception when file does not exist.
1034 * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
1035 * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
1036 need to treat item as a token probably
1038 2006-12-04 Marek Sieradzki <marek.sieradzki@gmail.com>
1040 * Import.cs: Check for project.FullFileName (Path.DirectoryName would
1041 throw an exception).
1042 * BuildItemGroupCollection.cs: Changed exception types.
1044 2006-10-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1046 * Engine.cs: Removed redundant cast.
1048 * UsingTaskCollection.cs:
1052 * TargetCollection.cs: Comment unused variable.
1053 * ConditionTokenizer.cs: Simplified checking if current token is a
1055 * Target.cs: Removed old code.
1057 2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
1059 * Target.cs: Changed "" to String.Empty.
1060 * TaskEngine.cs: Don't try to convert a parameter to specific type if
1061 string was evaluated to String.Empty.
1062 * InternalLoggerException.cs:
1063 * InvalidProjectFileException.cs: Added LinkDemand before
1065 * ConsoleLogger.cs: Changed "" to String.Empty.
1066 * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
1067 with change to generics).
1068 * Project.cs: Made Build () throw more meaningful exception.
1070 2006-10-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1072 * Target.cs: Reformatted.
1073 * TaskEngine.cs: Removed redundant code.
1074 * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
1075 * Engine.cs: Made BuildProjectFile () load project file if it's not
1078 2006-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
1080 * ConditionRelationalExpression.cs: Change comparers to case
1082 * ImportCollection.cs: Add NotImplementedExceptions.
1083 * BuildPropertyGroup.cs: Reformatted a bit.
1084 * BuildProperty.cs: The same.
1085 * Project.cs: Moved evaluation of imports before evaluation of
1086 properties. This may "work" until importing projects is redesigned but
1087 probably isn't correct.
1089 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1091 * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
1093 * BuildItemGroup.cs: Change return to continue.
1095 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1097 * ConditionParser.cs: Copyright note.
1098 * ExpressionCollection.cs: Fixed arrays passing.
1100 2006-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1102 * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
1103 Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
1104 BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
1105 TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
1107 2006-06-25 Marek Sieradzki <marek.sieradzki@gmail.com>
1109 * Token.cs: Changed names: removed "than".
1110 * ConditionRelationalExpression.cs: Added.
1111 * ConditionFactorExpression.cs: Added.
1112 * BuildItemGroup.cs: Changed Condition property return value to return
1113 String.Empty instead of null.
1114 * ConditionParser.cs: Added support for parsing relational expressions
1116 * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
1117 abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
1118 and CanEvaluateToBool (), CanEvaluateToNumber () and
1119 CanEvaluateToString ().
1120 * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
1121 appropriately to ConditionExpression base class.
1122 * ConditionTokenizer.cs: Added null check and changed names in enums:
1124 * ConditionNotExpression.cs: Added.
1125 * BatchingImpl.cs: Changed to use BoolEvaluate ().
1126 * Project.cs: Added checks for condition.
1128 2006-06-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1130 * ConditionalTokenizer.cs, ConditionalExpression.cs,
1131 ConditionalParser.cs: Changed name,
1133 * ConditionExpression.cs: Added Evaluate ().
1134 * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
1135 * BatchingImpl.cs: Added check if task should be executed.
1137 2006-06-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1139 * UsingTask.cs: Changed properties to return null on empty attribute.
1140 * UsingTaskCollection.cs: Added object to SyncRoot.
1141 * BuildPropertyGroup.cs: Added NotImplementedException throwing.
1143 2006-06-02 Marek Sieradzki <marek.sieradzki@gmail.com>
1145 * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
1146 BuildPropertyGroupCollection.cs: Fixed to match the tests.
1148 2006-05-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1150 * Utilities.cs: Implemented Escape ().
1151 * BuildItem.cs: Added null checks.
1152 * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
1153 * Project.cs: Commented out redundant Evaluate ().
1154 * BuildChoose.cs: Minor changes.
1156 2006-05-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1158 * Token: Added new few missing tokens.
1159 * Target.cs, Project.cs: Patch from Matthew Metnesky.
1160 * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
1161 ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
1162 ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
1163 LiteralTokenizer.cs:
1164 Removed literal expression parsing based on tokenizer and
1165 parser. It needs to be done by regex.
1167 Moved tokenizer to ConditionalTokenizer.cs.
1169 2006-05-05 Marek Sieradzki <marek.sieradzki@gmail.com>
1171 * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
1172 ItemReference.cs, PropertyReference.cs: Changed name of *Reference
1173 methods converting reference to string from ToString () to
1174 ConvertToString () to avoid mistakes like using ToString () provided
1177 2006-05-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1179 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
1180 Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
1181 PropertyReference.cs, BuildProperty.cs: Changed Expression to
1182 OldExpression and changed To* functions to one ConvertTo ().
1183 * TaskEngine.cs: Fixed PublishOutput ().
1184 * OldExpression.cs: Added. It will be temporarily used before
1185 LiteralExpression will be written using Tokenizer.
1186 * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
1187 ExpressionParseException.cs, LiteralExpression.cs: Added.
1189 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1191 * ImportedProject.cs: Removed warning.
1192 * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
1195 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1197 * Project.cs: Removed unnecessary variable.
1198 * Engine.cs: Added fixme.
1200 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1202 * BuildItem.cs: Moved checking if metadata name is reserved to internal
1203 class (Mono.XBuild.Utilities.ReservedNameUtils).
1205 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1207 * BuildTask.cs: Removed unnecessary variable.
1208 * Engine.cs: Added logging of the build start.
1209 * Project.cs: Removed unnecessary variable.
1211 2006-04-07 Marek Sieradzki <marek.sieradzki@gmail.com>
1213 * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
1215 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1217 * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
1219 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1221 * BuildItem.cs: Fix typo?
1223 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1225 * InternalLoggerException.cs, InvalidProjectFileException.cs,
1226 Engine.cs, Project.cs: Coding style fixes.
1228 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1230 * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
1232 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1234 * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
1235 to pass tests. Wrote serialization constructor.
1236 * Engine.cs, Project.cs: Global engine and project unloading, test and
1239 2006-03-28 Marek Sieradzki <marek.sieradzki@gmail.com>
1241 * UsingTask.cs: Formatting changes.
1243 2006-03-27 Crestez Leonard <cdleonard@gmail.com>
1245 * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
1246 to lists instead of hashtables.
1247 * Import.cs: Cleaned up, moved importing from Project.cs
1248 * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
1249 * Engine.cs: Cleaned up properties.
1250 * Project.cs: Moved importing to Import.cs, cleaned up properties,
1251 Separated evaluation and loading.
1253 2006-03-21 Crestez Leonard <cdleonard@gmail.com>
1255 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
1256 BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
1257 Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
1258 binding and evaluation, merge xml binding in constructors.
1259 * DirectoryScanner.cs: Includes CAN be empty.
1260 * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
1261 * ConsoleLogger.cs: Fix compilation warning.
1263 2006-03-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1265 * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
1267 2006-03-18 Marek Sieradzki <marek.sieradzki@gmail.com>
1269 * Engine.cs: API cleanup.
1271 2006-03-18 Crestez Leonard <cdleonard@gmail.com>
1273 * Project.cs: Cleaned up add.
1274 * Expression.cs: Hacked to transform \ and / to path separators.
1275 * BuildPropertyGroup.cs: Small cleanup.
1276 * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
1279 2006-03-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1281 * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
1282 * BuildItem.cs: Updated for new API and fixed crashing on non-existent
1284 * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
1285 BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
1286 Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
1288 * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
1289 * TaskElement.cs: Temporarily removed.
1290 * Xml.cs: Changed to static.
1292 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1294 * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
1295 IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
1296 ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
1297 IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
1298 ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
1299 IBuildPropertyGroupCollection.cs: Removed.
1301 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1303 * BuildItem.cs: Removed IBuildItem references.
1304 * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
1305 IBuildItemGroup references. Changed Evaluate to internal.
1306 * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
1307 reference and hidden constructors.
1308 * BuildProperty.cs: Removed IBuildProperty reference.
1309 * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
1310 IBuildPropertyGroup references. Changed Evaluate to internal.
1311 * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
1312 reference and hidden constructors.
1313 * ConsoleLogger.cs: Updated names of event handlers.
1314 * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
1315 Escape. Added UnloadAllProjects () and UnloadProject ().
1316 * FileLogger.cs: Removed ApplyParameter ().
1317 * GroupingCollection.cs: Hidden.
1318 * InvalidProjectFileException.cs: Removed HasBeenLogged property.
1319 * ItemPropertyGroupingBase.cs: Commented.
1320 * ProcessingPass.cs: Hidden.
1321 * Project.cs: Removed IProject reference. Changed CurrentEncoding to
1323 * Target.cs: Removed ITarget reference.
1324 * TargetCollection.cs: Removed ITargetCollection reference.
1325 * TaskElement.cs: Removed ITaskElement reference.
1326 * TaskEngineAssemblyResolver.cs: Hidden.
1327 * Utilities.cs: Made static class, removed CheckPath (),
1328 ValidateCulture (), GetSupportedCultures () and added Escape ().
1330 2006-02-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1332 * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
1335 2005-09-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1337 * Project.cs: Added MonoTODO attributes.
1338 * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
1339 ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
1340 IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
1341 BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
1342 SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
1343 BuildItemGroup.cs, InvalidProjectFileException.cs,
1344 BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
1345 Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
1346 PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
1347 ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
1348 IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
1349 IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
1350 ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
1351 ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
1352 IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
1353 IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
1354 BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
1355 ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
1357 2005-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
1359 * TaskDatabase.cs: Change Shared to Framework.
1360 * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
1361 CaseInsensitiveHashCodeProvider
1363 2005-09-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1365 * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
1366 * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
1369 2005-09-09 Marek Sieradzki <marek.sieradzki@gmail.com>
1371 * InternalLoggerException.cs: Changed protected fields to private.
1373 2005-09-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1375 * Engine.cs: Added check for globalProperties.
1376 * Project.cs: Added using path from importedProject.FullFileName when
1377 adding UsingTask elements.
1379 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1381 * TaskElement.cs: Changed ReflectedType to PropertyType.
1382 * ChangeType.cs (TransformToString): Changed to pass proper Type to
1385 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1387 * BuildPropertyGroup.cs: Added check for PropertyType when adding a
1389 * BuildProperty.cs: Organized PropertyType enum.
1390 * Engine.cs: Added setting CommandLine PropertyType of global
1393 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1395 * InvalidProjectFileException.cs: Changed Message property.
1396 * ChangeType.cs (TransformToString): Added separator between items.
1397 * TaskEngineAssemblyResolver.cs: Formatting.
1399 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1401 * DirectoryScanner.cs: Added.
1402 * BuildItem.cs: Moved file scanning code to DirectoryScanner.
1403 * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
1404 * Project.cs: Removed Evalute* ().
1406 2005-08-30 Marek Sieradzki <marek.sieradzki@gmail.com>
1408 * Target.cs: Formatting.
1409 * Expression.cs: Added check if array == null.
1410 * BuildItem.cs: Removed 'break' to remove warnings.
1411 * ConsoleLogger.cs: Formatting.
1412 * Engine.cs: Added handling of default target(s).
1413 * Project.cs: Added handling of default target(s).
1415 2005-08-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1417 * TaskElement.cs: Added check for parameters.
1418 * Target.cs: Added logging of target skipping.
1419 * Expression.cs: Changed returning object[] to string[], bool[]... in
1421 * ItemReference.cs: Fixed for item references without custom
1423 * BatchingImpl.cs: Added real inputs/outputs checking.
1424 * Engine.cs: Moved global properties setting.
1425 * Project.cs: Moved global properties setting.
1427 2005-08-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1429 * Target.cs: Added checks for target existence.
1430 * BuildItemGroup.cs: Changed to use transforms.
1431 * MetadataReference.cs: Wrote real implementation.
1432 * ItemReference.cs: Rewritten to use transforms.
1433 * BuildItem.cs: Changes for transforms and metadata.
1434 * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
1436 * Project.cs: Fixed project importing.
1437 * ImportedProject.cs: Changed to throw exceptions instead of returning
1440 2005-08-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1442 * Engine.cs: Removed FIXME.
1443 * Project.cs: Splitted ProcessElements and added project importing.
1444 * ImportedProject.cs: Rewritten.
1446 2005-08-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1448 * TaskElement.cs: Added getting of objects of every type.
1449 * BuildItemGroup.cs: Added ToITaskItemArray ().
1450 * Expression.cs: Implemented part that is not using metadata.
1451 * ItemReference.cs: Implemented parsing item references. Need to fix
1453 * BuildItem.cs: Fixed ToITaskItem ().
1454 * PropertyReference.cs: Implemented parsing property references. This
1455 also needs validity checking.
1457 2005-08-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1459 * TaskElement.cs: Added Output element handling.
1460 * Target.cs: Cleaned up.
1461 * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1462 * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1463 ItemReference.cs, ChangeType.cs: Added.
1464 * BuildItem.cs: Added creating BuildItem from TaskItem.
1465 * BuildPropertyGroup.cs: Small changes.
1466 * BatchingImpl.cs: Fixed to return real task execution result.
1467 * BuildProperty.cs: Fixed FinalValue property.
1468 * Engine.cs: Reformatted logging.
1469 * Project.cs: Added check to EvaluateProperty.
1471 2005-08-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1473 * TaskElement.cs: Added part of execution engine.
1474 * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1475 * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1476 * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1477 * BuildItem.cs: Added handling of built-in metadata and referencing
1478 Items by name not FullName.
1479 * BatchingImpl.cs: Added temporary task "batching".
1480 * ConsoleLogger.cs: Added temporary workaround to not show sender.
1481 * Project.cs: Added Evaluate. It will be moved to separate class.
1483 2005-08-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1485 * EventSource.cs, Engine.cs: Added CriticalEvents.
1486 * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1487 Project.cs: Added some support for items.
1488 * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1490 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1492 * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1495 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1497 * BatchingImpl.cs: Added.
1498 * BuildWhen.cs, BuildEngine.cs, Target.cs,
1499 BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1500 BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1501 TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1502 GroupingCollection.cs: Updated.
1504 2005-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1506 * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1507 BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1508 BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1509 BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1510 EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1511 GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1512 InternalLoggerException.cs, InvalidProjectFileException.cs,
1513 ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1514 ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1515 TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1516 TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1517 Initial check-in of implementations.
1519 2005-07-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1521 * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1522 IBuildItemGroupCollection.cs, IBuildProperty.cs,
1523 IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1524 ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1525 IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1526 IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1527 Initial check-in of interfaces and a syntax file, real classes are
1528 changing a lot so I'll wait a moment with checking them in.