1 2009-10-13 Ankit Jain <jankit@novell.com>
4 * ExpressionCollection.cs:
5 * GroupingCollection.cs:
7 * Target.cs: Fix warnings.
9 2009-10-12 Ankit Jain <jankit@novell.com>
11 * Target.cs (TargetFile): New. Gives the name of the file
12 containing the target definition.
13 * BuildEngine.cs (.ctor): Add a 'taskfile' parameters, and
14 return this for ProjectFileOfTaskNode.
15 * BuildTask.cs (LogTaskStarted):
16 (LogTaskFinished): Use parentTarget.ProjectFileOfTaskNode for
18 (InitializeTask): Set BuildEngine's task file to parent target's
20 * Engine.cs (LogProjectStarted): Incase of default targets, set
21 TargetNames to String.Empty .
22 * TargetBatchingImpl.cs (LogTargetStarted):
23 (LogTargetFinished): Use target.TargetFile for the event.
25 * ConsoleLogger.cs: Keep a stack of project/target/task being
26 executed. And corresponding list of errors and warnings.
27 (EventsToString): Stringifies the current "stack", to be used
28 as key to the table of errors/warnings and for show messages
29 at the end of the build.
31 2009-10-12 Ankit Jain <jankit@novell.com>
33 * Project.cs (Load): Add argument checks.
35 2009-10-11 Ankit Jain <jankit@novell.com>
37 * ConsoleLogger.cs (no_colors): Rename to ..
38 (use_colors): .. this. Fix the case when XBUILD_COLORS
41 2009-10-11 Ankit Jain <jankit@novell.com>
43 * ConsoleLogger.cs: Use ColorSetter and ColorResetter .
44 Support 'XBUILD_COLORS' to set colors for errors, warnings,
47 2009-10-10 Ankit Jain <jankit@novell.com>
49 * ConsoleLogger.cs (ProjectFinishedHandler): Once projectFailed
50 becomes true, don't reset it. We are looking for "atleast one
53 2009-10-08 Ankit Jain <jankit@novell.com>
55 * DirectoryScanner.cs: Use Path.GetPathRoot, instead of
56 directly using DirectoryInfo ("z:"), that doesn't return
59 2009-10-08 Ankit Jain <jankit@novell.com>
61 * DirectoryScanner.cs: Handle absolute paths. Fix to work
62 correctly on windows. Change order of adding paths to match
63 msbuild, useful to have.
65 2009-10-08 Ankit Jain <jankit@novell.com>
67 * TaskBatchingImpl.cs (ParseTaskAttributes): Parse attributes
68 of the 'Output' element also.
69 * TaskEngine.cs (PublishOutput): Honor condition on 'Output' also.
71 2009-10-07 Ankit Jain <jankit@novell.com>
73 * ConsoleLogger.cs: Mark build as failed, if any project failed.
75 2009-10-06 Ankit Jain <jankit@novell.com>
77 * ConsoleLogger: Improve error reporting. Don't count failed task,
78 target or project as another error. Show "errors" after "warnings",
79 more useful to the user.
80 * Project.cs (BuildTarget): Log error instead of using CWL.
82 2009-10-03 Ankit Jain <jankit@novell.com>
84 * Project.cs (OS): New.
85 (InitializeProperties): Set 'OS' as a pre-defined property, set to
86 'Windows_NT', 'Unix' or 'OSX' depending on the platform.
88 2009-10-02 Ankit Jain <jankit@novell.com>
90 * Expression.cs (Parse): Don't change '/' to '\\', not required.
92 2009-10-01 Ankit Jain <jankit@novell.com>
94 * Project.cs (AddImport): Show the correct source file name, when
95 the import is in the main project file.
97 2009-10-01 Ankit Jain <jankit@novell.com>
100 * Import.cs (.ctor): Evaluate and set EvaluatedProjectPath to
101 the full path of the imported project here itself, instead of ..
103 * ImportCollection.cs (Add): Use import.EvaluatedProjectPath .
105 * Project.cs (AddImport): Don't process if condition is false.
106 Warn if a circular reference is detected, and ignore the import.
108 2009-09-29 Ankit Jain <jankit@novell.com>
110 * GroupingCollection.cs (Evaluate): Mark internal.
111 * Project.cs (AddImport): Only evaluate the properties,
112 till before the import.
114 2009-09-29 Ankit Jain <jankit@novell.com>
116 * Project.cs (DoLoad): Don't use XmlReader.Create, for loading
117 the project xml, as returned Xml*Reader normalizes the newlines.
118 Instead directly use the TextReader with XmlDocument.Load ().
120 2009-09-27 Ankit Jain <jankit@novell.com>
122 * ConditionParser.cs: Show the condition being parsed in the
125 2009-09-26 Ankit Jain <jankit@novell.com>
127 * Expression.cs: Allow '-' in item, property and metadata names.
129 2009-09-26 Ankit Jain <jankit@novell.com>
131 * Project.cs (Evaluate): Split into this and ..
132 (PrepareForEvaluate): .. this.
133 (AddImport): Evaluate the current set of properties/items etc,
134 before processing the imported project. Honor the Condition
136 (ProcessProjectAttributes): Update MSBuildProjectDefaultTargets
138 * GroupingCollection.cs (Evaluate): Don't evaluate Imports here.
139 * BuildItemGroup.cs (Evaluate): Evaluate only once.
140 * BuildPropertyGroup.cs (Evaluate): Evaluate only once.
142 2009-09-26 Ankit Jain <jankit@novell.com>
144 * Project.cs: Get InitialTargets from the imported projects also.
145 The combined list of targets are executed, in the order they were
147 DefaultTargets are also read in from imported projects, and the first
148 non-empty DefaultTargets found is used.
150 2009-09-25 Ankit Jain <jankit@novell.com>
152 * Project.cs (BuildTarget): Handle skipped targets.
154 2009-09-25 Ankit Jain <jankit@novell.com>
156 * Project.cs (DoLoad): If a VS2003 project is detected, then throw
157 InvalidProjectFileException with useful error.
159 2009-09-24 Ankit Jain <jankit@novell.com>
161 * Project.cs (Load): Emit the .sln.proj file only if env var
162 XBUILD_EMIT_SOLUTION is set.
164 2009-09-24 Ankit Jain <jankit@novell.com>
166 * Project.cs (GetKeyForTarget): Make target name, case insensitive.
168 2009-09-24 Ankit Jain <jankit@novell.com>
170 * Project.cs (InitializeProperties): Set 'MSBuildProjectDefaultTargets'
173 2009-09-10 Ankit Jain <jankit@novell.com>
175 * BuildItem.cs (Evaluate): Metadata from "Include" should be,
176 preserved, so use ConvertTo ITaskItem, rather than string.
177 Ensure that the new items have the metadata from references _in_
178 Include, and the metadata of _this_ builditem.
179 * DirectoryScanner.cs (Includes): Change to a array of ITaskItem.
180 (MatchedFilenames): Rename to ..
181 (MatchedItems): .. this, and change type of array of ITaskItem.
182 Ensure that metadata of items in Includes are retained in the
185 * BuildItemGroup.cs (ConvertoToITaskItemArray): Add 'separator'
186 param. If separator is present, then just return a "Join'ed"
187 string as the single task item.
188 * ItemReference.cs: Track api changes.
190 * BuildProperty.cs (ConvertToITaskItemArray): Split the value,
191 as we need separate task items.
193 2009-09-01 Ankit Jain <jankit@novell.com>
196 * Project.cs (BuildTarget): Move caching of target outputs to ..
197 * Target.cs: .. here. Move LogTargetSkipped also here.
198 Ensure that caching happens for target dependencies also.
200 2009-09-01 Ankit Jain <jankit@novell.com>
202 * DirectoryScanner.cs (Scan): Ignore empty entries in includes and
205 2009-09-01 Ankit Jain <jankit@novell.com>
207 * Expression.cs (ParseOptions): New enum. Replace the bool params
208 of exression.Parse with this. Add option to control expansion of
210 (CopyToExpressionCollection): Track api changes.
212 Update all expr.Parse calls to use the new enum.
213 * BuildItem.cs, BuildProperty.cs, BuildTask.cs, Import.cs,
214 Target.cs, TargetBatchingImpl.cs, UsingTask.cs: Track api changes.
216 * BatchingImplBase.cs: Track api changes. Allow metadata refs
218 * ConditionFactorExpression.cs: Allow metadata refs in conditions.
219 * ItemReference.cs: Allow metadata in transforms.
220 * TaskEngine.cs: Allow metadata refs.
222 * MetadataReference.cs (.ctor): Add a 'original string' param.
224 2009-08-29 Ankit Jain <jankit@novell.com>
226 * Expression.cs (ExpressionOptions): New.
228 Introduce a ExpressionOptions argument to all ConvertTo*
229 methods. Implement the rule: in evaluation phase, expand
230 all items completely, but dont expand item refs in properties.
231 At other times, expand the item refs in the properties.
232 See comments in Expression.cs, for a full explanation.
233 * BuildItem.cs: Track api changes.
234 * BuildItemGroup.cs: Likewise.
235 * BuildProperty.cs: Track api changes. Handle self-references.
236 * BuildTask.cs: Track api changes.
237 * IReference.cs: Add ExpressionOptions param.
238 * ItemReference.cs: Track api changes.
239 * PropertyReference.cs: Likewise.
240 * MetadataReference.cs: Likewise.
241 * ExpressionCollection.cs: Track api changes. Add support for
242 converting all primitive types and DateTime, instead of a fixed
244 * Project.cs (GetMetadataBatched): Use the evaluated metadata.
245 * TaskBatchingImpl.cs: Handle the case when batching is required,
246 but no items are available.
248 * TaskEngine.cs: Throw on unsupported types. Correctly handle
249 properties in case of empty values.
251 2009-08-26 Ankit Jain <jankit@novell.com>
253 * Expression.cs: Correctly handle a item reference with transform
254 when allowItems is false. If item ref is ignored, then the transform
255 will get incorrectly matched as a metadata ref.
256 * ItemReference.cs (.ctor): Add a @original_string param.
258 2009-08-26 Ankit Jain <jankit@novell.com>
260 * Utilities.cs (UnescapeFromXml): New. From md.
261 * BuildProperty.cs (.ctor): Unescape xml codes from the InnerXml
262 of the property element.
264 2009-08-26 Ankit Jain <jankit@novell.com>
266 * BuildProperty.cs (ConvertToString): New.
267 (ConvertoToITaskItemArray): New. Parse the property value.
268 * PropertyReference.cs (ConvertToString): Use BuildProperty's
270 (ConvertoToITaskItemArray): Likewise.
272 2009-08-21 Ankit Jain <jankit@novell.com>
274 * Engine.cs (EndProjectBuild): Use the @succeeded argument
275 instead of hardcoding 'true'.
276 * Target.cs (Build): Add an overload to return executeOnErrors
277 value for the target executed. If building dependencies fails,
278 and executeOnErrors is true, then execute OnError tasks.
279 Add the new param to ..
280 (BuildDependencies): this, ..
282 (GetDependencies): Improve error message and variable name.
283 (ExecuteOnErrors): Honor OnError tag's Condition also.
284 * TaskBatchingImpl.cs (Run): Correctly set executeOnErrors param.
286 2009-08-20 Ankit Jain <jankit@novell.com>
289 * Project.cs (Load): Add support for loading .sln files.
291 2009-08-20 Ankit Jain <jankit@novell.com>
293 * BuildTask.cs (Execute): Use task_logger only after the task
294 has been initialized. Catch and report task loading errors.
295 * Target.cs (DoBuild): Dont rethrow the exception, and emit
296 the stacktrace as a low importance message.
298 2009-08-18 Ankit Jain <jankit@novell.com>
300 * BatchingImplBase.cs: Make the item name lookups and metadata be case
302 * TaskDatabase.cs: Likewise.
303 * TaskEngine.cs: Make property name looks, case insensitive.
305 2009-08-09 Miguel de Icaza <miguel@novell.com>
307 * ConsoleLogger.cs: Change the format of the error and warnings
308 strings to work when invoked inside Emacs by not rendering the
309 column if available, by using lowercase "error"/"warning" strings
310 instead of camelcased versions and to not have unnecessary padding.
312 2009-07-31 Ankit Jain <jankit@novell.com>
314 * ConsoleLogger.cs: Keep track of all the errors and warnings
315 and show them at the end.
317 2009-07-31 Ankit Jain <jankit@novell.com>
319 * Target.cs (Build): Log a message if a target is skipped.
321 * BuildTask.cs (Execute): Log error if task execution fails.
323 2009-07-30 Ankit Jain <jankit@novell.com>
325 * Engine.cs (.ctor): Set default BinPath. Currently this assumes
326 v2.0, this will change when multi-targeting lands.
328 2009-07-30 Ankit Jain <jankit@novell.com>
330 * Project.cs (InitializeProperties) Set 'MSBuildProjectFile' and
331 'MSBuildProjectName' properties.
333 2009-07-28 Ankit Jain <jankit@novell.com>
335 * TaskEngine.cs (Prepare): Fix formatting mistake.
336 * ConsoleLogger.cs: Emit "-- FAILED" also when project/target building
337 fails. Also, emit result of project at Normal verbosity level.
339 2009-07-23 Ankit Jain <jankit@novell.com>
342 * Project.cs (ExtensionsPath): New.
343 (InitializeProperties): Set "MSBuildExtensionsPath" property.
345 2009-06-12 Ankit Jain <jankit@novell.com>
348 * ExpressionCollection.cs (ConvertToITaskItemArray): Whitespace around a
349 itemref is allowed if the prev/next element is ";".
351 2009-06-12 Ankit Jain <jankit@novell.com>
353 * Utilities.cs (FromMSBuildPath): Return null if the path contains
354 "drive:" only on windows.
356 2009-06-07 Ankit Jain <jankit@novell.com>
358 * Target.cs (Outputs): Use ITaskItem[] for conversion, to retain
361 2009-05-29 Ankit Jain <jankit@novell.com>
363 Correctly handle global properties. Correctly log
364 project/build events.
366 * BuildPropertyGroup.cs (Clone): Implement.
367 * Engine.cs (globalProperties): Rename to ..
368 (global_properties): .. this.
369 (currentlyBuildingProjectsStack): New. Used to correctly
370 log and raise project/build start/finish events.
371 (BuildProjectFile): Override any project global properties
372 with explicitly specified ones, here in the param @globalProperties.
373 Mark project for reevaluation, which will update the engine's
374 global properties also.
375 Reset both engine and project's old global properties at the end.
376 (UnregisterAllLoggers): Log build finished only if we are currently
378 (StartBuild): Rename to ..
379 (StartProjectBuild): .. this. Keeps track of the projects being built
380 in the new stack, and logs project and build events accordingly.
381 (EndProjectBuild): New. Uses the stack to keep track of projects
382 finishing builds, and raises project and build events accordingly.
383 (LogProjectStarted): Move here from Project.cs
384 (LogProjectFinished): Likewise.
386 * Project.cs (Build): Log start of project build.
387 Set current directory to the project file's dir, and reset at end.
388 (BuildInternal): Don't log here, its done in Build.
389 (BuildTarget): Already built targets are keyed by the set of global
390 properties that they were built with.
391 (GlobalPropertiesToString): New.
392 (ResetBuildStatus): 'building' must be true to allow built targets to be reset.
393 (RemoveBuiltTargets): Initialize builtTargetKeys in .ctor
394 (Evaluate): Remove built targets only if we are currently building and
395 build settings are None.
396 Merge project's global properties with those of the parent engine.
397 Add missing properties from engine's global properties.
398 (LogTargetSkipped): Fix format string, add the reqd argument.
400 2009-05-29 Ankit Jain <jankit@novell.com>
402 * ConditionFunctionExpression.cs: Add 'HasTrailingSlash' function.
403 (HasTrailingSlash): New.
405 2009-05-12 Ankit Jain <jankit@novell.com>
407 * Project.cs (.ctor): Init timeOfLastDirty.
409 2009-05-05 Miguel de Icaza <miguel@novell.com>
411 * Contribution from Martin Brenn to fix #498154.
413 2009-04-27 Ankit Jain <jankit@novell.com>
416 * Engine.cs (BuildProjectFile): Set project's GlobalProperties to the
417 one passed as argument.
419 2009-04-27 Ankit Jain <jankit@novell.com>
421 * TaskEngine.cs (Prepare): Emit a useful error message property value
422 can't be converted to required type.
424 2009-04-27 Ankit Jain <jankit@novell.com>
426 * ExpressionCollection.cs (ConvertToObject): Allow true/on/yes
427 as valid true values for bool, and corresponding for false.
429 2009-03-27 Jonathan Chambers <joncham@gmail.com>
431 * BuildWhen.cs: Add basic implementation.
432 * BuildChoose.cs: Add basic implementation.
433 * BuildItem.cs (AddEvaluatedItem): Add BuiltItem to
434 EvaluatedItemsIgnoringCondition.
435 * GroupingCollection.cs: Add evaluation of BuildChoose items.
437 2009-03-26 Jonathan Chambers <joncham@gmail.com>
439 * TaskDatabase.cs (RegisterTask): Search for class by name
440 if task was not found using GetType (which uses namespace).
442 2009-02-26 Ankit Jain <jankit@novell.com>
444 * Target.cs: Handle target with no tasks. Log errors.
446 2009-02-24 Ankit Jain <jankit@novell.com>
448 Lazily load UsingTask tasks.
449 * UsingTask.cs (Evaluate): Register 'this' with task database,
450 but don't load it yet. Register only if condition evaluates to true.
451 Move the load logic to ..
452 (Load): .. here. Register with the specified task database.
453 * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance
454 in a table keyed by task name, but don't load it yet.
455 (GetTypeFromClassName): Try to load UsingTask if task is not already
456 loaded. Move loading logic to ..
457 (GetTypeFromClassNameInternal): .. here.
458 (CopyTasks): Copy the usingTasks table also.
460 2009-02-23 Ankit Jain <jankit@novell.com>
462 * BuildItem.cs (AddMetadata): Allow overwriting older values.
464 2009-02-22 Ankit Jain <jankit@novell.com>
466 * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode
467 instead of XmlElement. Eg. XmlComment
469 2009-02-21 Ankit Jain <jankit@novell.com>
471 * Utilities.cs (FromMSBuildPath): Copy from monodevelop.
472 * Project.cs (Load): Use FromMSBuildPath on the path.
473 (InitializeProperties): Set "MSBuildToolsPath" also.
475 2009-02-20 Ankit Jain <jankit@novell.com>
478 * ConditionTokenizer.cs: Handle unquoted item references (with or w/o
479 transforms) in conditions.
480 * ConditionParser.cs: Parse unquoted item, property references.
481 eg. Condition = " @(Foo->'%(Extension)') == '.exe' "
482 * Token.cs (Token.ToString): Override.
483 (TokenType.Transform): Uncomment.
485 2009-02-12 Jonathan Chambers <joncham@gmail.com>
487 * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
488 no XmlElement.InnerText. This allows properties to be additional
491 2009-02-01 Ankit Jain <jankit@novell.com>
493 * BuildEngine.cs (BuildProjectFile): Use
494 BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
495 * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
496 built. Move logging of project start/finish to ..
497 * Project.cs: .. here. Build a target only if hasn't been built already.
498 Keep track of target outputs, and return those even if an already built
499 target has been invoked again.
500 Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
502 2009-01-31 Ankit Jain <jankit@novell.com>
504 * BatchingImpl.cs: Split into ..
505 * BatchingImplBase.cs: .. this,
506 * TaskBatchingImpl.cs: .. this ..
507 * TargetBatchingImpl.cs: .. and this. Implement target batching here.
509 * Target.cs (DoBuild): Use TargetBatchingImpl for building.
510 (Log*): Move to TargetBatchingImpl .
514 2009-01-30 Ankit Jain <jankit@novell.com>
516 * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
519 2009-01-29 Ankit Jain <jankit@novell.com>
521 * BuildItem.cs (child_items): Change type from BuildItemGroup to
523 (HasParent): Rename to ..
524 (HasParentItem): .. this.
525 (ParentItemGroup): Add setter.
527 * BuildItemGroup.cs (.ctor): Add overload with @project param.
529 (AddItem): Correctly set the ParentItemGroup for new build items.
530 (ParentProject): Add setter.
531 * Project.cs: Set the project for new BuildItemGroup instances.
532 * TaskEngine.cs (PublishItemGroup): Likewise.
534 2009-01-06 Ankit Jain <jankit@novell.com>
536 * Project.cs (Build): Honor InitialTargets list.
538 2009-01-06 Ankit Jain <jankit@novell.com>
540 * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
541 the property type also.
542 * MSBuild.cs (Execute): Parse 'Properties' task param to set global
545 2009-01-06 Ankit Jain <jankit@novell.com>
547 * Project.cs (Build): Correctly handle null targetNames argument.
549 2009-01-06 Ankit Jain <jankit@novell.com>
551 * Engine.cs (LogProjectStarted): Add a null check.
553 2009-01-01 Ankit Jain <jankit@novell.com>
555 * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
556 * ChangeType (ToBuildItemGroup): Add 'split' param.
558 * Expression.cs (Parse): Add a new overload with a 'split' param.
559 * ExpressionCollection.cs (Add): Add new overload for IReference,
560 remove the ones for Item/Metadata/PropertyReference.
561 (ConvertToArray): Implement correctly.
562 (ConvertToString): Track api changes.
563 (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
564 (ConvertToITaskItemArray): Implement support for concat'ing expressions.
565 (AddItemsToArray): New.
566 (ConvertToITaskItemArrayFromString): Refactor a bit.
567 (ThrowCantConcatError): New.
568 * ItemReference.cs: Update.
569 * MetadataReference.cs: Update.
570 * PropertyReference.cs (ConvertToITaskItemArray): Implement.
572 * BuildPropertyGroup.cs: Track api changes.
573 * TaskEngine.cs (PublishOutput): Improve exception message.
574 * Project.cs (DoLoad): Improve exception message. Add a null check.
576 2008-12-30 Ankit Jain <jankit@novell.com>
578 * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
579 metadata values for unqualified references.
580 (BuildItemGroupToITaskItemArray): Rename to ..
581 (BuildItemGroupToITaskItems): .. this.
584 2008-12-18 Ankit Jain <jankit@novell.com>
586 * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
588 2008-12-17 Ankit Jain <jankit@novell.com>
590 * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
591 only one instance of unique metadata value is required.
593 2008-11-22 Ankit Jain <jankit@novell.com>
595 * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
597 * MetadataReference.cs (ConvertToITaskItemArray): New.
598 * Project.cs (GetAllItemGroups): New.
600 2008-11-21 Ankit Jain <jankit@novell.com>
602 * BatchingImpl.cs: Add task batching implementation.
603 * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
604 * ExpressionCollection.cs (Count): New.
605 (ConvertToString): Handle MetadataReference.
606 * ItemReference.cs (ConvertToString):
607 (ConvertToITaskItemArray): Use the batching api.
609 * MetadataReference.cs (ConvertToString): New.
611 * Project.cs: Add api for accessing batched items and metadata.
612 * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
615 2008-10-01 Ankit Jain <jankit@novell.com>
617 * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
618 (BuildProjectFile): If filename is null (project.LoadXml) then use
620 * BuildTask.cs (InitializeTask): Track api change.
621 * Expression.cs (Parse): Skip empty entries in the expression.
623 2008-09-24 Ankit Jain <jankit@novell.com>
625 * Engine.cs: Add argument checks.
626 * Project.cs: Likewise.
628 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
630 * Project.cs (Build): Add outputs to targetOutputs.
632 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
634 * ExpressionCollection.cs (ConvertToArray): Simplify.
636 2007-03-05 Marek Sieradzki <marek.sieradzki@gmail.com>
638 * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
639 simplified. It still needs tests and refactoring.
641 2007-02-22 Marek Sieradzki <marek.sieradzki@gmail.com>
643 * BuildEngine.cs (BuildProjectFile): Don't crash on null
646 * Target.cs: Add Outputs property.
648 2007-02-20 Marek Sieradzki <marek.sieradzki@gmail.com>
650 * Target.cs (Build): Split to GetDependencies () and BuildDependencies
651 (). Support condition.
653 * BatchingImpl.cs (BatchBuildTask): Simplify.
655 2007-02-18 Marek Sieradzki <marek.sieradzki@gmail.com>
657 * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
660 * ConditionFunctionExpression.cs: Removed warnings.
662 * BuildTask.cs (Execute): Write exceptions to std err (they should be
663 logged but it's better than swallowing).
665 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
667 * ConditionTokenizer.cs: Add Putback ().
669 * ConditionParser.cs: Add parsing of functions.
671 * ConditionFunctionExpression.cs: Add.
673 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
675 * BuildPropertyGroup (SetProperty): Throw an exception when trying to
676 set property in persisted property group.
678 2007-01-29 Marek Sieradzki <marek.sieradzki@gmail.com>
680 * BuildTask.cs (Execute): Log errors that happen when invoking ITask
683 * ConsoleLogger.cs (TargetFinishedHandler)
684 (TaskFinishedHandler): Increment error count.
686 2007-01-28 Marek Sieradzki <marek.sieradzki@gmail.com>
688 * BuildItem.cs (RemoveMetadata): Remove from XML.
689 (SetMetadata): Trigger project reevaluation.
691 2007-01-26 Marek Sieradzki <marek.sieradzki@gmail.com>
693 * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
696 2007-01-23 Marek Sieradzki <marek.sieradzki@gmail.com>
698 * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
699 TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
700 BatchingImpl.cs, BuildProperty.cs: Track API changes.
702 * Expression.cs (Parse): Added allowItems parameter and made regexes
705 * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
706 will try to import a.ext when given a.EXT.
708 2007-01-21 Marek Sieradzki <marek.sieradzki@gmail.com>
710 * BuildItemGroup.cs: Store information saying what is the last item
711 group that contains build item name.
713 * Project.cs (Build): Pass empty array (build default targets).
715 2007-01-19 Marek Sieradzki <marek.sieradzki@gmail.com>
717 * Token.cs: Commented Transform and LiteralSubExpression and added
720 * ConditionParser.cs: Removed redundant casts, rewrote
721 ParseFactorExpression () and added parsing of '!'.
723 * ConditionTokenizer.cs: Always skip whitespaces when getting next
724 token (no IgnoreWhiteSpace property). Don't create a token from '->'.
725 Moved ReadChar () in front of all ifs.
727 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
729 * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
730 from XML. (not to escape items that have parents twice).
732 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
734 * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
735 (Project): Renamed to ParentProject.
737 * BuildItem.cs (ctor)
738 (CopyCustomMetadata): Add null check.
740 * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
741 (RemoveProperty): Added null check.
743 * TargetCollection.cs (RemoveTarget): Added null check.
745 * Engine.cs (UnloadProject): Added null check.
747 * GroupingCollection.cs (Remove): Check if removed group belongs to
750 * Project.cs (AddNewItem): Implemented.
751 (RemoveItem): Reorganized.
752 (SetProjectExtensions): Added null check.
754 2007-01-14 Marek Sieradzki <marek.sieradzki@gmail.com>
756 * BuildItemGroup.cs (Detach): Added.
758 (RemoveItemAt): Used Detach ().
760 * BuildItem.cs: Made FromXml and HasParent internal and added
761 ParentItem and ParentItemGroup properties (internal).
764 * GroupingCollection.cs (Remove): Used Detach ().
766 * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
768 (GetEvaluatedItemsByNameIgnoringCondition)
769 (GetEvaluatedItemsByName)
770 (GetEvaluatedProperty): Reevaluate if needed.
772 (RemoveAllItemGroups)
773 (RemoveAllPropertyGroups): Implemented.
774 (DoLoad): Added closing of TextReader.
776 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
778 * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
779 change but just mark that it needs it.
781 * Project.cs: Reevaluate when it needs reevaluation and one of
782 Evaluated* properties is used.
784 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
786 * Target.cs: Throw an exception when <OnError> is not last element in
789 * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
791 * TargetCollection.cs: If a target is already there replace it with
794 * BuildProperty.cs: Added XmlElement property.
796 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
798 * ImportCollection.cs: Don't add imports that are already added.
800 * BuildItemGroup.cs: MonoTODOs.
802 * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
803 condition can't be evaluated to bool.
805 * BuildPropertyGroup.cs (Evaluate): Simplify.
807 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
809 * BuildWhen.cs: Moved BindToXml () code to ctor.
811 * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
812 property needed for removing groups.
814 * Engine.cs: Added StartBuild () that logs build start when Build ()
817 * GroupingCollection.cs: Added Remove () for item and property groups.
819 * Project.cs (AddNewImport): Implemented.
820 (AddNewItemGroup): Implemented.
821 (AddNewPropertyGroup): Implemented.
822 (AddNewUsingTaskFromAssemblyFile): Implemented.
823 (AddNewUsingTaskFromAssemblyName): Implemented.
824 (RemoveItemGroup): Implemented.
825 (RemovePropertyGroup): Implemented.
827 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
829 * BuildItemGroup.cs (Clear): Remove from XML.
831 * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
832 to Project.EvaluatedProperties.
833 (Clear): Remove from XML.
835 2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
837 * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
840 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
842 * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
843 Add () calls when processing a project from Import and
844 evaluate_iterator for evaluation.
846 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
848 * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
849 and prepend relative directory of importing project to full path of
852 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
854 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
855 BuildItemGroupCollection.cs, Project.cs: Track API changes.
857 * GroupingCollection.cs: Now it needs Project reference so added it.
859 * BuildTask.cs: Formatting.
861 * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
863 * ConditionParser.cs (ParseAndEvaluate): Added.
865 * BuildItem.cs: Changed exception message.
867 2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
869 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
870 BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
871 GroupingCollection doesn't need Project reference.
873 * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
875 * BuildItemGroup.cs: Added new readOnly parameter to ctor.
876 (Project.EvaluatedItems is a read only item group.)
877 (ReplaceWith): Added.
879 * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
880 global property group causes reevaluation of its project.
882 * Project.cs: ProcessXml () is internal and can be "safely" invoked by
885 * OldExpression.cs: Removed.
887 * BuildProperty.cs (Evaluate): Simplified.
889 * ChangeType.cs (TemporaryTransform): Simplified.
891 * BuildItem.cs: There are now 3 types of build items: from XML, having
892 parent from XML, virtual. Added SplitParentItem ().
894 2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
896 * Utilities.cs: Added Unescape ().
898 * BuildItemGroup.cs, BuildItem.cs: Pass null project to
899 BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
900 groups (at the moment just unescape).
902 * Expression.cs (CopyToExpressionList): Unescape strings.
904 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
906 * Target.cs (ctor): Added ImportedProject argument and removed
908 (AddNewTask): Implemented.
910 * TargetCollection.cs (AddNewTarget): Implemented.
912 * Project.cs: Track API changes.
914 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
916 * Target.cs (Build): Don't throw anything in case of error, just
919 * BuildItemGroup.cs (set_Condition): Throw an exception if group is
922 * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
925 * BuildProperty.cs (ToString): Throw an exception if property is not
927 (op_Explicit): Added a null check.
929 * Engine.cs: Better error message.
931 * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
932 IndexOutOfRangeException.
934 * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
935 (MarkProjectAsDirty): Set time.
937 2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
939 * BuildItemGroup.cs (Clone): Throw exception.
941 * Project.cs (Load): Throw InvalidProjectFileException if anything
944 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
946 * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
947 and ConvertToITaskItemArray ().
949 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
951 * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
952 classes that were public in Beta 2 and aren't used.
954 * Expression.cs: Added replacement for parsing expressions char by
955 char. It uses regexes to find item/property/metadata references in
958 * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
959 Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
960 BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
962 * ConditionRelationalExpression.cs: Formatting.
964 * OldExpression.cs: Commented everything.
966 * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
967 parsing to Expression.
969 * BuildItem.cs: Check if project is from XML in set_Condition and
972 * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
975 * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
976 can evaluate expression in CanEvaluateToBool ().
978 2006-12-12 Marek Sieradzki <marek.sieradzki@gmail.com>
980 * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
981 which item group is imported.
983 * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
985 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
987 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
988 BuildItemGroupCollection.cs: Little changes related to
991 * ImportCollection.cs: Use GroupingCollection not an internal list.
993 * Import.cs (Evaluate): Split to functions and check if
994 EvaluatedProjectPath is empty.
996 * GroupingCollection.cs, Project.cs: Move evaluation to
997 GroupingCollection. Change algorithm to use 2 passes: first for property
998 groups and imports and second for item groups.
1000 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1002 * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
1003 BuildItemGroup> not IDictionary.
1005 * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
1006 evaluated to false because we want to add every item to
1007 Project.EvaluatedItemsByNameIgnoringCondition.
1009 * Project.cs (Build): Don't throw an exception just return false.
1010 (GetEvaluatedProperty): Avoid NullReferenceException.
1011 (SetProjectExtensions): Implemented.
1013 2006-12-08 Marek Sieradzki <marek.sieradzki@gmail.com>
1015 * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
1017 * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
1018 BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
1019 Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
1021 * ImportCollection.cs: Added a note.
1023 2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
1025 * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
1027 * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
1028 (UsingTask[] array, int index)
1030 * TaskEngine.cs: Reformatted PublishOutput () and added copying of
1031 items to Project.EvaluatedItems in PublishItemGroup ();
1033 * BuildItemGroup.cs: Added [MonoTODO].
1035 * UsingTask.cs: Used expression for AssemblyFile to get around
1036 problems with '\' and '/'.
1038 * BuildItem.cs (ctor): Added null checks.
1039 (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
1040 (SetMetadata): Don't escape evaluatedMetadata and escape
1041 unevaluatedMetadata only when treatPropertyValueAsLiteral.
1043 * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
1044 FromXml () instead of null checks.
1045 (SetProperty): Escape propertyValue when it is literal.
1047 * BuildProperty.cs: Changed exception message.
1049 * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
1051 (GetProjectExtensions): Implemented.
1053 2006-12-05 Marek Sieradzki <marek.sieradzki@gmail.com>
1055 * BuildTask.cs: Remove [MonoTODO], add exception throwing in
1056 GetParameterValue (), use expressions in ContinueOnError.
1057 * ConditionFactorException.cs: Throw InvalidProjectFileException ()
1058 instead of InvalidOperationException ().
1059 * ImportCollection.cs: Implement CopyTo ().
1060 * Target.cs: Remove redundant variables (XmlAttributes), return
1061 String.Empty in DependsOnTargets, add a null check in RemoveTask ().
1062 * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
1063 * Import.cs: Throw an exception when file does not exist.
1064 * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
1065 * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
1066 need to treat item as a token probably
1068 2006-12-04 Marek Sieradzki <marek.sieradzki@gmail.com>
1070 * Import.cs: Check for project.FullFileName (Path.DirectoryName would
1071 throw an exception).
1072 * BuildItemGroupCollection.cs: Changed exception types.
1074 2006-10-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1076 * Engine.cs: Removed redundant cast.
1078 * UsingTaskCollection.cs:
1082 * TargetCollection.cs: Comment unused variable.
1083 * ConditionTokenizer.cs: Simplified checking if current token is a
1085 * Target.cs: Removed old code.
1087 2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
1089 * Target.cs: Changed "" to String.Empty.
1090 * TaskEngine.cs: Don't try to convert a parameter to specific type if
1091 string was evaluated to String.Empty.
1092 * InternalLoggerException.cs:
1093 * InvalidProjectFileException.cs: Added LinkDemand before
1095 * ConsoleLogger.cs: Changed "" to String.Empty.
1096 * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
1097 with change to generics).
1098 * Project.cs: Made Build () throw more meaningful exception.
1100 2006-10-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1102 * Target.cs: Reformatted.
1103 * TaskEngine.cs: Removed redundant code.
1104 * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
1105 * Engine.cs: Made BuildProjectFile () load project file if it's not
1108 2006-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
1110 * ConditionRelationalExpression.cs: Change comparers to case
1112 * ImportCollection.cs: Add NotImplementedExceptions.
1113 * BuildPropertyGroup.cs: Reformatted a bit.
1114 * BuildProperty.cs: The same.
1115 * Project.cs: Moved evaluation of imports before evaluation of
1116 properties. This may "work" until importing projects is redesigned but
1117 probably isn't correct.
1119 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1121 * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
1123 * BuildItemGroup.cs: Change return to continue.
1125 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1127 * ConditionParser.cs: Copyright note.
1128 * ExpressionCollection.cs: Fixed arrays passing.
1130 2006-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1132 * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
1133 Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
1134 BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
1135 TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
1137 2006-06-25 Marek Sieradzki <marek.sieradzki@gmail.com>
1139 * Token.cs: Changed names: removed "than".
1140 * ConditionRelationalExpression.cs: Added.
1141 * ConditionFactorExpression.cs: Added.
1142 * BuildItemGroup.cs: Changed Condition property return value to return
1143 String.Empty instead of null.
1144 * ConditionParser.cs: Added support for parsing relational expressions
1146 * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
1147 abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
1148 and CanEvaluateToBool (), CanEvaluateToNumber () and
1149 CanEvaluateToString ().
1150 * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
1151 appropriately to ConditionExpression base class.
1152 * ConditionTokenizer.cs: Added null check and changed names in enums:
1154 * ConditionNotExpression.cs: Added.
1155 * BatchingImpl.cs: Changed to use BoolEvaluate ().
1156 * Project.cs: Added checks for condition.
1158 2006-06-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1160 * ConditionalTokenizer.cs, ConditionalExpression.cs,
1161 ConditionalParser.cs: Changed name,
1163 * ConditionExpression.cs: Added Evaluate ().
1164 * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
1165 * BatchingImpl.cs: Added check if task should be executed.
1167 2006-06-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1169 * UsingTask.cs: Changed properties to return null on empty attribute.
1170 * UsingTaskCollection.cs: Added object to SyncRoot.
1171 * BuildPropertyGroup.cs: Added NotImplementedException throwing.
1173 2006-06-02 Marek Sieradzki <marek.sieradzki@gmail.com>
1175 * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
1176 BuildPropertyGroupCollection.cs: Fixed to match the tests.
1178 2006-05-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1180 * Utilities.cs: Implemented Escape ().
1181 * BuildItem.cs: Added null checks.
1182 * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
1183 * Project.cs: Commented out redundant Evaluate ().
1184 * BuildChoose.cs: Minor changes.
1186 2006-05-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1188 * Token: Added new few missing tokens.
1189 * Target.cs, Project.cs: Patch from Matthew Metnesky.
1190 * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
1191 ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
1192 ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
1193 LiteralTokenizer.cs:
1194 Removed literal expression parsing based on tokenizer and
1195 parser. It needs to be done by regex.
1197 Moved tokenizer to ConditionalTokenizer.cs.
1199 2006-05-05 Marek Sieradzki <marek.sieradzki@gmail.com>
1201 * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
1202 ItemReference.cs, PropertyReference.cs: Changed name of *Reference
1203 methods converting reference to string from ToString () to
1204 ConvertToString () to avoid mistakes like using ToString () provided
1207 2006-05-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1209 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
1210 Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
1211 PropertyReference.cs, BuildProperty.cs: Changed Expression to
1212 OldExpression and changed To* functions to one ConvertTo ().
1213 * TaskEngine.cs: Fixed PublishOutput ().
1214 * OldExpression.cs: Added. It will be temporarily used before
1215 LiteralExpression will be written using Tokenizer.
1216 * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
1217 ExpressionParseException.cs, LiteralExpression.cs: Added.
1219 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1221 * ImportedProject.cs: Removed warning.
1222 * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
1225 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1227 * Project.cs: Removed unnecessary variable.
1228 * Engine.cs: Added fixme.
1230 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1232 * BuildItem.cs: Moved checking if metadata name is reserved to internal
1233 class (Mono.XBuild.Utilities.ReservedNameUtils).
1235 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1237 * BuildTask.cs: Removed unnecessary variable.
1238 * Engine.cs: Added logging of the build start.
1239 * Project.cs: Removed unnecessary variable.
1241 2006-04-07 Marek Sieradzki <marek.sieradzki@gmail.com>
1243 * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
1245 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1247 * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
1249 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1251 * BuildItem.cs: Fix typo?
1253 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1255 * InternalLoggerException.cs, InvalidProjectFileException.cs,
1256 Engine.cs, Project.cs: Coding style fixes.
1258 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1260 * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
1262 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1264 * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
1265 to pass tests. Wrote serialization constructor.
1266 * Engine.cs, Project.cs: Global engine and project unloading, test and
1269 2006-03-28 Marek Sieradzki <marek.sieradzki@gmail.com>
1271 * UsingTask.cs: Formatting changes.
1273 2006-03-27 Crestez Leonard <cdleonard@gmail.com>
1275 * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
1276 to lists instead of hashtables.
1277 * Import.cs: Cleaned up, moved importing from Project.cs
1278 * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
1279 * Engine.cs: Cleaned up properties.
1280 * Project.cs: Moved importing to Import.cs, cleaned up properties,
1281 Separated evaluation and loading.
1283 2006-03-21 Crestez Leonard <cdleonard@gmail.com>
1285 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
1286 BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
1287 Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
1288 binding and evaluation, merge xml binding in constructors.
1289 * DirectoryScanner.cs: Includes CAN be empty.
1290 * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
1291 * ConsoleLogger.cs: Fix compilation warning.
1293 2006-03-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1295 * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
1297 2006-03-18 Marek Sieradzki <marek.sieradzki@gmail.com>
1299 * Engine.cs: API cleanup.
1301 2006-03-18 Crestez Leonard <cdleonard@gmail.com>
1303 * Project.cs: Cleaned up add.
1304 * Expression.cs: Hacked to transform \ and / to path separators.
1305 * BuildPropertyGroup.cs: Small cleanup.
1306 * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
1309 2006-03-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1311 * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
1312 * BuildItem.cs: Updated for new API and fixed crashing on non-existent
1314 * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
1315 BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
1316 Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
1318 * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
1319 * TaskElement.cs: Temporarily removed.
1320 * Xml.cs: Changed to static.
1322 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1324 * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
1325 IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
1326 ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
1327 IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
1328 ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
1329 IBuildPropertyGroupCollection.cs: Removed.
1331 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1333 * BuildItem.cs: Removed IBuildItem references.
1334 * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
1335 IBuildItemGroup references. Changed Evaluate to internal.
1336 * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
1337 reference and hidden constructors.
1338 * BuildProperty.cs: Removed IBuildProperty reference.
1339 * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
1340 IBuildPropertyGroup references. Changed Evaluate to internal.
1341 * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
1342 reference and hidden constructors.
1343 * ConsoleLogger.cs: Updated names of event handlers.
1344 * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
1345 Escape. Added UnloadAllProjects () and UnloadProject ().
1346 * FileLogger.cs: Removed ApplyParameter ().
1347 * GroupingCollection.cs: Hidden.
1348 * InvalidProjectFileException.cs: Removed HasBeenLogged property.
1349 * ItemPropertyGroupingBase.cs: Commented.
1350 * ProcessingPass.cs: Hidden.
1351 * Project.cs: Removed IProject reference. Changed CurrentEncoding to
1353 * Target.cs: Removed ITarget reference.
1354 * TargetCollection.cs: Removed ITargetCollection reference.
1355 * TaskElement.cs: Removed ITaskElement reference.
1356 * TaskEngineAssemblyResolver.cs: Hidden.
1357 * Utilities.cs: Made static class, removed CheckPath (),
1358 ValidateCulture (), GetSupportedCultures () and added Escape ().
1360 2006-02-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1362 * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
1365 2005-09-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1367 * Project.cs: Added MonoTODO attributes.
1368 * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
1369 ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
1370 IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
1371 BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
1372 SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
1373 BuildItemGroup.cs, InvalidProjectFileException.cs,
1374 BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
1375 Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
1376 PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
1377 ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
1378 IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
1379 IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
1380 ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
1381 ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
1382 IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
1383 IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
1384 BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
1385 ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
1387 2005-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
1389 * TaskDatabase.cs: Change Shared to Framework.
1390 * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
1391 CaseInsensitiveHashCodeProvider
1393 2005-09-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1395 * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
1396 * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
1399 2005-09-09 Marek Sieradzki <marek.sieradzki@gmail.com>
1401 * InternalLoggerException.cs: Changed protected fields to private.
1403 2005-09-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1405 * Engine.cs: Added check for globalProperties.
1406 * Project.cs: Added using path from importedProject.FullFileName when
1407 adding UsingTask elements.
1409 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1411 * TaskElement.cs: Changed ReflectedType to PropertyType.
1412 * ChangeType.cs (TransformToString): Changed to pass proper Type to
1415 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1417 * BuildPropertyGroup.cs: Added check for PropertyType when adding a
1419 * BuildProperty.cs: Organized PropertyType enum.
1420 * Engine.cs: Added setting CommandLine PropertyType of global
1423 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1425 * InvalidProjectFileException.cs: Changed Message property.
1426 * ChangeType.cs (TransformToString): Added separator between items.
1427 * TaskEngineAssemblyResolver.cs: Formatting.
1429 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1431 * DirectoryScanner.cs: Added.
1432 * BuildItem.cs: Moved file scanning code to DirectoryScanner.
1433 * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
1434 * Project.cs: Removed Evalute* ().
1436 2005-08-30 Marek Sieradzki <marek.sieradzki@gmail.com>
1438 * Target.cs: Formatting.
1439 * Expression.cs: Added check if array == null.
1440 * BuildItem.cs: Removed 'break' to remove warnings.
1441 * ConsoleLogger.cs: Formatting.
1442 * Engine.cs: Added handling of default target(s).
1443 * Project.cs: Added handling of default target(s).
1445 2005-08-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1447 * TaskElement.cs: Added check for parameters.
1448 * Target.cs: Added logging of target skipping.
1449 * Expression.cs: Changed returning object[] to string[], bool[]... in
1451 * ItemReference.cs: Fixed for item references without custom
1453 * BatchingImpl.cs: Added real inputs/outputs checking.
1454 * Engine.cs: Moved global properties setting.
1455 * Project.cs: Moved global properties setting.
1457 2005-08-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1459 * Target.cs: Added checks for target existence.
1460 * BuildItemGroup.cs: Changed to use transforms.
1461 * MetadataReference.cs: Wrote real implementation.
1462 * ItemReference.cs: Rewritten to use transforms.
1463 * BuildItem.cs: Changes for transforms and metadata.
1464 * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
1466 * Project.cs: Fixed project importing.
1467 * ImportedProject.cs: Changed to throw exceptions instead of returning
1470 2005-08-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1472 * Engine.cs: Removed FIXME.
1473 * Project.cs: Splitted ProcessElements and added project importing.
1474 * ImportedProject.cs: Rewritten.
1476 2005-08-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1478 * TaskElement.cs: Added getting of objects of every type.
1479 * BuildItemGroup.cs: Added ToITaskItemArray ().
1480 * Expression.cs: Implemented part that is not using metadata.
1481 * ItemReference.cs: Implemented parsing item references. Need to fix
1483 * BuildItem.cs: Fixed ToITaskItem ().
1484 * PropertyReference.cs: Implemented parsing property references. This
1485 also needs validity checking.
1487 2005-08-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1489 * TaskElement.cs: Added Output element handling.
1490 * Target.cs: Cleaned up.
1491 * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1492 * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1493 ItemReference.cs, ChangeType.cs: Added.
1494 * BuildItem.cs: Added creating BuildItem from TaskItem.
1495 * BuildPropertyGroup.cs: Small changes.
1496 * BatchingImpl.cs: Fixed to return real task execution result.
1497 * BuildProperty.cs: Fixed FinalValue property.
1498 * Engine.cs: Reformatted logging.
1499 * Project.cs: Added check to EvaluateProperty.
1501 2005-08-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1503 * TaskElement.cs: Added part of execution engine.
1504 * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1505 * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1506 * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1507 * BuildItem.cs: Added handling of built-in metadata and referencing
1508 Items by name not FullName.
1509 * BatchingImpl.cs: Added temporary task "batching".
1510 * ConsoleLogger.cs: Added temporary workaround to not show sender.
1511 * Project.cs: Added Evaluate. It will be moved to separate class.
1513 2005-08-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1515 * EventSource.cs, Engine.cs: Added CriticalEvents.
1516 * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1517 Project.cs: Added some support for items.
1518 * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1520 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1522 * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1525 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1527 * BatchingImpl.cs: Added.
1528 * BuildWhen.cs, BuildEngine.cs, Target.cs,
1529 BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1530 BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1531 TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1532 GroupingCollection.cs: Updated.
1534 2005-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1536 * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1537 BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1538 BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1539 BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1540 EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1541 GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1542 InternalLoggerException.cs, InvalidProjectFileException.cs,
1543 ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1544 ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1545 TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1546 TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1547 Initial check-in of implementations.
1549 2005-07-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1551 * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1552 IBuildItemGroupCollection.cs, IBuildProperty.cs,
1553 IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1554 ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1555 IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1556 IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1557 Initial check-in of interfaces and a syntax file, real classes are
1558 changing a lot so I'll wait a moment with checking them in.