1 2009-11-26 Ankit Jain <jankit@novell.com>
3 * TargetBatchingImpl.cs (BuildTargetNeeded): Expand metadata
4 refs also, for Inputs and Outputs.
6 2009-10-13 Ankit Jain <jankit@novell.com>
9 * ExpressionCollection.cs:
10 * GroupingCollection.cs:
12 * Target.cs: Fix warnings.
14 2009-10-12 Ankit Jain <jankit@novell.com>
16 * Target.cs (TargetFile): New. Gives the name of the file
17 containing the target definition.
18 * BuildEngine.cs (.ctor): Add a 'taskfile' parameters, and
19 return this for ProjectFileOfTaskNode.
20 * BuildTask.cs (LogTaskStarted):
21 (LogTaskFinished): Use parentTarget.ProjectFileOfTaskNode for
23 (InitializeTask): Set BuildEngine's task file to parent target's
25 * Engine.cs (LogProjectStarted): Incase of default targets, set
26 TargetNames to String.Empty .
27 * TargetBatchingImpl.cs (LogTargetStarted):
28 (LogTargetFinished): Use target.TargetFile for the event.
30 * ConsoleLogger.cs: Keep a stack of project/target/task being
31 executed. And corresponding list of errors and warnings.
32 (EventsToString): Stringifies the current "stack", to be used
33 as key to the table of errors/warnings and for show messages
34 at the end of the build.
36 2009-10-12 Ankit Jain <jankit@novell.com>
38 * Project.cs (Load): Add argument checks.
40 2009-10-11 Ankit Jain <jankit@novell.com>
42 * ConsoleLogger.cs (no_colors): Rename to ..
43 (use_colors): .. this. Fix the case when XBUILD_COLORS
46 2009-10-11 Ankit Jain <jankit@novell.com>
48 * ConsoleLogger.cs: Use ColorSetter and ColorResetter .
49 Support 'XBUILD_COLORS' to set colors for errors, warnings,
52 2009-10-10 Ankit Jain <jankit@novell.com>
54 * ConsoleLogger.cs (ProjectFinishedHandler): Once projectFailed
55 becomes true, don't reset it. We are looking for "atleast one
58 2009-10-08 Ankit Jain <jankit@novell.com>
60 * DirectoryScanner.cs: Use Path.GetPathRoot, instead of
61 directly using DirectoryInfo ("z:"), that doesn't return
64 2009-10-08 Ankit Jain <jankit@novell.com>
66 * DirectoryScanner.cs: Handle absolute paths. Fix to work
67 correctly on windows. Change order of adding paths to match
68 msbuild, useful to have.
70 2009-10-08 Ankit Jain <jankit@novell.com>
72 * TaskBatchingImpl.cs (ParseTaskAttributes): Parse attributes
73 of the 'Output' element also.
74 * TaskEngine.cs (PublishOutput): Honor condition on 'Output' also.
76 2009-10-07 Ankit Jain <jankit@novell.com>
78 * ConsoleLogger.cs: Mark build as failed, if any project failed.
80 2009-10-06 Ankit Jain <jankit@novell.com>
82 * ConsoleLogger: Improve error reporting. Don't count failed task,
83 target or project as another error. Show "errors" after "warnings",
84 more useful to the user.
85 * Project.cs (BuildTarget): Log error instead of using CWL.
87 2009-10-03 Ankit Jain <jankit@novell.com>
89 * Project.cs (OS): New.
90 (InitializeProperties): Set 'OS' as a pre-defined property, set to
91 'Windows_NT', 'Unix' or 'OSX' depending on the platform.
93 2009-10-02 Ankit Jain <jankit@novell.com>
95 * Expression.cs (Parse): Don't change '/' to '\\', not required.
97 2009-10-01 Ankit Jain <jankit@novell.com>
99 * Project.cs (AddImport): Show the correct source file name, when
100 the import is in the main project file.
102 2009-10-01 Ankit Jain <jankit@novell.com>
105 * Import.cs (.ctor): Evaluate and set EvaluatedProjectPath to
106 the full path of the imported project here itself, instead of ..
108 * ImportCollection.cs (Add): Use import.EvaluatedProjectPath .
110 * Project.cs (AddImport): Don't process if condition is false.
111 Warn if a circular reference is detected, and ignore the import.
113 2009-09-29 Ankit Jain <jankit@novell.com>
115 * GroupingCollection.cs (Evaluate): Mark internal.
116 * Project.cs (AddImport): Only evaluate the properties,
117 till before the import.
119 2009-09-29 Ankit Jain <jankit@novell.com>
121 * Project.cs (DoLoad): Don't use XmlReader.Create, for loading
122 the project xml, as returned Xml*Reader normalizes the newlines.
123 Instead directly use the TextReader with XmlDocument.Load ().
125 2009-09-27 Ankit Jain <jankit@novell.com>
127 * ConditionParser.cs: Show the condition being parsed in the
130 2009-09-26 Ankit Jain <jankit@novell.com>
132 * Expression.cs: Allow '-' in item, property and metadata names.
134 2009-09-26 Ankit Jain <jankit@novell.com>
136 * Project.cs (Evaluate): Split into this and ..
137 (PrepareForEvaluate): .. this.
138 (AddImport): Evaluate the current set of properties/items etc,
139 before processing the imported project. Honor the Condition
141 (ProcessProjectAttributes): Update MSBuildProjectDefaultTargets
143 * GroupingCollection.cs (Evaluate): Don't evaluate Imports here.
144 * BuildItemGroup.cs (Evaluate): Evaluate only once.
145 * BuildPropertyGroup.cs (Evaluate): Evaluate only once.
147 2009-09-26 Ankit Jain <jankit@novell.com>
149 * Project.cs: Get InitialTargets from the imported projects also.
150 The combined list of targets are executed, in the order they were
152 DefaultTargets are also read in from imported projects, and the first
153 non-empty DefaultTargets found is used.
155 2009-09-25 Ankit Jain <jankit@novell.com>
157 * Project.cs (BuildTarget): Handle skipped targets.
159 2009-09-25 Ankit Jain <jankit@novell.com>
161 * Project.cs (DoLoad): If a VS2003 project is detected, then throw
162 InvalidProjectFileException with useful error.
164 2009-09-24 Ankit Jain <jankit@novell.com>
166 * Project.cs (Load): Emit the .sln.proj file only if env var
167 XBUILD_EMIT_SOLUTION is set.
169 2009-09-24 Ankit Jain <jankit@novell.com>
171 * Project.cs (GetKeyForTarget): Make target name, case insensitive.
173 2009-09-24 Ankit Jain <jankit@novell.com>
175 * Project.cs (InitializeProperties): Set 'MSBuildProjectDefaultTargets'
178 2009-09-10 Ankit Jain <jankit@novell.com>
180 * BuildItem.cs (Evaluate): Metadata from "Include" should be,
181 preserved, so use ConvertTo ITaskItem, rather than string.
182 Ensure that the new items have the metadata from references _in_
183 Include, and the metadata of _this_ builditem.
184 * DirectoryScanner.cs (Includes): Change to a array of ITaskItem.
185 (MatchedFilenames): Rename to ..
186 (MatchedItems): .. this, and change type of array of ITaskItem.
187 Ensure that metadata of items in Includes are retained in the
190 * BuildItemGroup.cs (ConvertoToITaskItemArray): Add 'separator'
191 param. If separator is present, then just return a "Join'ed"
192 string as the single task item.
193 * ItemReference.cs: Track api changes.
195 * BuildProperty.cs (ConvertToITaskItemArray): Split the value,
196 as we need separate task items.
198 2009-09-01 Ankit Jain <jankit@novell.com>
201 * Project.cs (BuildTarget): Move caching of target outputs to ..
202 * Target.cs: .. here. Move LogTargetSkipped also here.
203 Ensure that caching happens for target dependencies also.
205 2009-09-01 Ankit Jain <jankit@novell.com>
207 * DirectoryScanner.cs (Scan): Ignore empty entries in includes and
210 2009-09-01 Ankit Jain <jankit@novell.com>
212 * Expression.cs (ParseOptions): New enum. Replace the bool params
213 of exression.Parse with this. Add option to control expansion of
215 (CopyToExpressionCollection): Track api changes.
217 Update all expr.Parse calls to use the new enum.
218 * BuildItem.cs, BuildProperty.cs, BuildTask.cs, Import.cs,
219 Target.cs, TargetBatchingImpl.cs, UsingTask.cs: Track api changes.
221 * BatchingImplBase.cs: Track api changes. Allow metadata refs
223 * ConditionFactorExpression.cs: Allow metadata refs in conditions.
224 * ItemReference.cs: Allow metadata in transforms.
225 * TaskEngine.cs: Allow metadata refs.
227 * MetadataReference.cs (.ctor): Add a 'original string' param.
229 2009-08-29 Ankit Jain <jankit@novell.com>
231 * Expression.cs (ExpressionOptions): New.
233 Introduce a ExpressionOptions argument to all ConvertTo*
234 methods. Implement the rule: in evaluation phase, expand
235 all items completely, but dont expand item refs in properties.
236 At other times, expand the item refs in the properties.
237 See comments in Expression.cs, for a full explanation.
238 * BuildItem.cs: Track api changes.
239 * BuildItemGroup.cs: Likewise.
240 * BuildProperty.cs: Track api changes. Handle self-references.
241 * BuildTask.cs: Track api changes.
242 * IReference.cs: Add ExpressionOptions param.
243 * ItemReference.cs: Track api changes.
244 * PropertyReference.cs: Likewise.
245 * MetadataReference.cs: Likewise.
246 * ExpressionCollection.cs: Track api changes. Add support for
247 converting all primitive types and DateTime, instead of a fixed
249 * Project.cs (GetMetadataBatched): Use the evaluated metadata.
250 * TaskBatchingImpl.cs: Handle the case when batching is required,
251 but no items are available.
253 * TaskEngine.cs: Throw on unsupported types. Correctly handle
254 properties in case of empty values.
256 2009-08-26 Ankit Jain <jankit@novell.com>
258 * Expression.cs: Correctly handle a item reference with transform
259 when allowItems is false. If item ref is ignored, then the transform
260 will get incorrectly matched as a metadata ref.
261 * ItemReference.cs (.ctor): Add a @original_string param.
263 2009-08-26 Ankit Jain <jankit@novell.com>
265 * Utilities.cs (UnescapeFromXml): New. From md.
266 * BuildProperty.cs (.ctor): Unescape xml codes from the InnerXml
267 of the property element.
269 2009-08-26 Ankit Jain <jankit@novell.com>
271 * BuildProperty.cs (ConvertToString): New.
272 (ConvertoToITaskItemArray): New. Parse the property value.
273 * PropertyReference.cs (ConvertToString): Use BuildProperty's
275 (ConvertoToITaskItemArray): Likewise.
277 2009-08-21 Ankit Jain <jankit@novell.com>
279 * Engine.cs (EndProjectBuild): Use the @succeeded argument
280 instead of hardcoding 'true'.
281 * Target.cs (Build): Add an overload to return executeOnErrors
282 value for the target executed. If building dependencies fails,
283 and executeOnErrors is true, then execute OnError tasks.
284 Add the new param to ..
285 (BuildDependencies): this, ..
287 (GetDependencies): Improve error message and variable name.
288 (ExecuteOnErrors): Honor OnError tag's Condition also.
289 * TaskBatchingImpl.cs (Run): Correctly set executeOnErrors param.
291 2009-08-20 Ankit Jain <jankit@novell.com>
294 * Project.cs (Load): Add support for loading .sln files.
296 2009-08-20 Ankit Jain <jankit@novell.com>
298 * BuildTask.cs (Execute): Use task_logger only after the task
299 has been initialized. Catch and report task loading errors.
300 * Target.cs (DoBuild): Dont rethrow the exception, and emit
301 the stacktrace as a low importance message.
303 2009-08-18 Ankit Jain <jankit@novell.com>
305 * BatchingImplBase.cs: Make the item name lookups and metadata be case
307 * TaskDatabase.cs: Likewise.
308 * TaskEngine.cs: Make property name looks, case insensitive.
310 2009-08-09 Miguel de Icaza <miguel@novell.com>
312 * ConsoleLogger.cs: Change the format of the error and warnings
313 strings to work when invoked inside Emacs by not rendering the
314 column if available, by using lowercase "error"/"warning" strings
315 instead of camelcased versions and to not have unnecessary padding.
317 2009-07-31 Ankit Jain <jankit@novell.com>
319 * ConsoleLogger.cs: Keep track of all the errors and warnings
320 and show them at the end.
322 2009-07-31 Ankit Jain <jankit@novell.com>
324 * Target.cs (Build): Log a message if a target is skipped.
326 * BuildTask.cs (Execute): Log error if task execution fails.
328 2009-07-30 Ankit Jain <jankit@novell.com>
330 * Engine.cs (.ctor): Set default BinPath. Currently this assumes
331 v2.0, this will change when multi-targeting lands.
333 2009-07-30 Ankit Jain <jankit@novell.com>
335 * Project.cs (InitializeProperties) Set 'MSBuildProjectFile' and
336 'MSBuildProjectName' properties.
338 2009-07-28 Ankit Jain <jankit@novell.com>
340 * TaskEngine.cs (Prepare): Fix formatting mistake.
341 * ConsoleLogger.cs: Emit "-- FAILED" also when project/target building
342 fails. Also, emit result of project at Normal verbosity level.
344 2009-07-23 Ankit Jain <jankit@novell.com>
347 * Project.cs (ExtensionsPath): New.
348 (InitializeProperties): Set "MSBuildExtensionsPath" property.
350 2009-06-12 Ankit Jain <jankit@novell.com>
353 * ExpressionCollection.cs (ConvertToITaskItemArray): Whitespace around a
354 itemref is allowed if the prev/next element is ";".
356 2009-06-12 Ankit Jain <jankit@novell.com>
358 * Utilities.cs (FromMSBuildPath): Return null if the path contains
359 "drive:" only on windows.
361 2009-06-07 Ankit Jain <jankit@novell.com>
363 * Target.cs (Outputs): Use ITaskItem[] for conversion, to retain
366 2009-05-29 Ankit Jain <jankit@novell.com>
368 Correctly handle global properties. Correctly log
369 project/build events.
371 * BuildPropertyGroup.cs (Clone): Implement.
372 * Engine.cs (globalProperties): Rename to ..
373 (global_properties): .. this.
374 (currentlyBuildingProjectsStack): New. Used to correctly
375 log and raise project/build start/finish events.
376 (BuildProjectFile): Override any project global properties
377 with explicitly specified ones, here in the param @globalProperties.
378 Mark project for reevaluation, which will update the engine's
379 global properties also.
380 Reset both engine and project's old global properties at the end.
381 (UnregisterAllLoggers): Log build finished only if we are currently
383 (StartBuild): Rename to ..
384 (StartProjectBuild): .. this. Keeps track of the projects being built
385 in the new stack, and logs project and build events accordingly.
386 (EndProjectBuild): New. Uses the stack to keep track of projects
387 finishing builds, and raises project and build events accordingly.
388 (LogProjectStarted): Move here from Project.cs
389 (LogProjectFinished): Likewise.
391 * Project.cs (Build): Log start of project build.
392 Set current directory to the project file's dir, and reset at end.
393 (BuildInternal): Don't log here, its done in Build.
394 (BuildTarget): Already built targets are keyed by the set of global
395 properties that they were built with.
396 (GlobalPropertiesToString): New.
397 (ResetBuildStatus): 'building' must be true to allow built targets to be reset.
398 (RemoveBuiltTargets): Initialize builtTargetKeys in .ctor
399 (Evaluate): Remove built targets only if we are currently building and
400 build settings are None.
401 Merge project's global properties with those of the parent engine.
402 Add missing properties from engine's global properties.
403 (LogTargetSkipped): Fix format string, add the reqd argument.
405 2009-05-29 Ankit Jain <jankit@novell.com>
407 * ConditionFunctionExpression.cs: Add 'HasTrailingSlash' function.
408 (HasTrailingSlash): New.
410 2009-05-12 Ankit Jain <jankit@novell.com>
412 * Project.cs (.ctor): Init timeOfLastDirty.
414 2009-05-05 Miguel de Icaza <miguel@novell.com>
416 * Contribution from Martin Brenn to fix #498154.
418 2009-04-27 Ankit Jain <jankit@novell.com>
421 * Engine.cs (BuildProjectFile): Set project's GlobalProperties to the
422 one passed as argument.
424 2009-04-27 Ankit Jain <jankit@novell.com>
426 * TaskEngine.cs (Prepare): Emit a useful error message property value
427 can't be converted to required type.
429 2009-04-27 Ankit Jain <jankit@novell.com>
431 * ExpressionCollection.cs (ConvertToObject): Allow true/on/yes
432 as valid true values for bool, and corresponding for false.
434 2009-03-27 Jonathan Chambers <joncham@gmail.com>
436 * BuildWhen.cs: Add basic implementation.
437 * BuildChoose.cs: Add basic implementation.
438 * BuildItem.cs (AddEvaluatedItem): Add BuiltItem to
439 EvaluatedItemsIgnoringCondition.
440 * GroupingCollection.cs: Add evaluation of BuildChoose items.
442 2009-03-26 Jonathan Chambers <joncham@gmail.com>
444 * TaskDatabase.cs (RegisterTask): Search for class by name
445 if task was not found using GetType (which uses namespace).
447 2009-02-26 Ankit Jain <jankit@novell.com>
449 * Target.cs: Handle target with no tasks. Log errors.
451 2009-02-24 Ankit Jain <jankit@novell.com>
453 Lazily load UsingTask tasks.
454 * UsingTask.cs (Evaluate): Register 'this' with task database,
455 but don't load it yet. Register only if condition evaluates to true.
456 Move the load logic to ..
457 (Load): .. here. Register with the specified task database.
458 * TaskDatabase.cs (RegisterUsingTask): Store the UsingTask instance
459 in a table keyed by task name, but don't load it yet.
460 (GetTypeFromClassName): Try to load UsingTask if task is not already
461 loaded. Move loading logic to ..
462 (GetTypeFromClassNameInternal): .. here.
463 (CopyTasks): Copy the usingTasks table also.
465 2009-02-23 Ankit Jain <jankit@novell.com>
467 * BuildItem.cs (AddMetadata): Allow overwriting older values.
469 2009-02-22 Ankit Jain <jankit@novell.com>
471 * BuildItem.cs: Iterate over XmlElements childnodes with XmlNode
472 instead of XmlElement. Eg. XmlComment
474 2009-02-21 Ankit Jain <jankit@novell.com>
476 * Utilities.cs (FromMSBuildPath): Copy from monodevelop.
477 * Project.cs (Load): Use FromMSBuildPath on the path.
478 (InitializeProperties): Set "MSBuildToolsPath" also.
480 2009-02-20 Ankit Jain <jankit@novell.com>
483 * ConditionTokenizer.cs: Handle unquoted item references (with or w/o
484 transforms) in conditions.
485 * ConditionParser.cs: Parse unquoted item, property references.
486 eg. Condition = " @(Foo->'%(Extension)') == '.exe' "
487 * Token.cs (Token.ToString): Override.
488 (TokenType.Transform): Uncomment.
490 2009-02-12 Jonathan Chambers <joncham@gmail.com>
492 * BuildProperty.cs: Value corresponds to XmlElement.InnerXml
493 no XmlElement.InnerText. This allows properties to be additional
496 2009-02-01 Ankit Jain <jankit@novell.com>
498 * BuildEngine.cs (BuildProjectFile): Use
499 BuildSettings.DoNotResetPreviouslyBuiltTargets for building projects.
500 * Engine.cs (BuiltTargetsOutputByName): New. Table of targets already
501 built. Move logging of project start/finish to ..
502 * Project.cs: .. here. Build a target only if hasn't been built already.
503 Keep track of target outputs, and return those even if an already built
504 target has been invoked again.
505 Honor BuildSettings.None and DoNotResetPreviouslyBuiltTargets .
507 2009-01-31 Ankit Jain <jankit@novell.com>
509 * BatchingImpl.cs: Split into ..
510 * BatchingImplBase.cs: .. this,
511 * TaskBatchingImpl.cs: .. this ..
512 * TargetBatchingImpl.cs: .. and this. Implement target batching here.
514 * Target.cs (DoBuild): Use TargetBatchingImpl for building.
515 (Log*): Move to TargetBatchingImpl .
519 2009-01-30 Ankit Jain <jankit@novell.com>
521 * TaskEngine.cs (GetObjectFromString): Empty value is allowed only for
524 2009-01-29 Ankit Jain <jankit@novell.com>
526 * BuildItem.cs (child_items): Change type from BuildItemGroup to
528 (HasParent): Rename to ..
529 (HasParentItem): .. this.
530 (ParentItemGroup): Add setter.
532 * BuildItemGroup.cs (.ctor): Add overload with @project param.
534 (AddItem): Correctly set the ParentItemGroup for new build items.
535 (ParentProject): Add setter.
536 * Project.cs: Set the project for new BuildItemGroup instances.
537 * TaskEngine.cs (PublishItemGroup): Likewise.
539 2009-01-06 Ankit Jain <jankit@novell.com>
541 * Project.cs (Build): Honor InitialTargets list.
543 2009-01-06 Ankit Jain <jankit@novell.com>
545 * BuildEngine.cs (BuildProjectFile): Use AddProperty method to specify
546 the property type also.
547 * MSBuild.cs (Execute): Parse 'Properties' task param to set global
550 2009-01-06 Ankit Jain <jankit@novell.com>
552 * Project.cs (Build): Correctly handle null targetNames argument.
554 2009-01-06 Ankit Jain <jankit@novell.com>
556 * Engine.cs (LogProjectStarted): Add a null check.
558 2009-01-01 Ankit Jain <jankit@novell.com>
560 * IReference.cs: New. Interface for Item/Metadata/PropertyReference.
561 * ChangeType (ToBuildItemGroup): Add 'split' param.
563 * Expression.cs (Parse): Add a new overload with a 'split' param.
564 * ExpressionCollection.cs (Add): Add new overload for IReference,
565 remove the ones for Item/Metadata/PropertyReference.
566 (ConvertToArray): Implement correctly.
567 (ConvertToString): Track api changes.
568 (ConvertToITaskItem): Implement with ConvertToITaskItemArray.
569 (ConvertToITaskItemArray): Implement support for concat'ing expressions.
570 (AddItemsToArray): New.
571 (ConvertToITaskItemArrayFromString): Refactor a bit.
572 (ThrowCantConcatError): New.
573 * ItemReference.cs: Update.
574 * MetadataReference.cs: Update.
575 * PropertyReference.cs (ConvertToITaskItemArray): Implement.
577 * BuildPropertyGroup.cs: Track api changes.
578 * TaskEngine.cs (PublishOutput): Improve exception message.
579 * Project.cs (DoLoad): Improve exception message. Add a null check.
581 2008-12-30 Ankit Jain <jankit@novell.com>
583 * MetadataReference.cs (BuildItemGroupToITaskItems): Return unique
584 metadata values for unqualified references.
585 (BuildItemGroupToITaskItemArray): Rename to ..
586 (BuildItemGroupToITaskItems): .. this.
589 2008-12-18 Ankit Jain <jankit@novell.com>
591 * BuildTask.cs (Execute): PublishOutput only if task runs successfully.
593 2008-12-17 Ankit Jain <jankit@novell.com>
595 * MetadataReference.cs (ConvertToITaskItemArray): In case of batching,
596 only one instance of unique metadata value is required.
598 2008-11-22 Ankit Jain <jankit@novell.com>
600 * ExpressionCollection.cs (ConvertToITaskItemArray): Add support for
602 * MetadataReference.cs (ConvertToITaskItemArray): New.
603 * Project.cs (GetAllItemGroups): New.
605 2008-11-21 Ankit Jain <jankit@novell.com>
607 * BatchingImpl.cs: Add task batching implementation.
608 * BuildItem.cs (GetEvaluatedMetadata): Handle built-in metadata names.
609 * ExpressionCollection.cs (Count): New.
610 (ConvertToString): Handle MetadataReference.
611 * ItemReference.cs (ConvertToString):
612 (ConvertToITaskItemArray): Use the batching api.
614 * MetadataReference.cs (ConvertToString): New.
616 * Project.cs: Add api for accessing batched items and metadata.
617 * TaskEngine.cs (PublishItemGroup): Don't clear existing values from
620 2008-10-01 Ankit Jain <jankit@novell.com>
622 * BuildEngine.cs (.ctor): Replace 'projectFile' param with 'project'.
623 (BuildProjectFile): If filename is null (project.LoadXml) then use
625 * BuildTask.cs (InitializeTask): Track api change.
626 * Expression.cs (Parse): Skip empty entries in the expression.
628 2008-09-24 Ankit Jain <jankit@novell.com>
630 * Engine.cs: Add argument checks.
631 * Project.cs: Likewise.
633 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
635 * Project.cs (Build): Add outputs to targetOutputs.
637 2007-03-06 Marek Sieradzki <marek.sieradzki@gmail.com>
639 * ExpressionCollection.cs (ConvertToArray): Simplify.
641 2007-03-05 Marek Sieradzki <marek.sieradzki@gmail.com>
643 * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
644 simplified. It still needs tests and refactoring.
646 2007-02-22 Marek Sieradzki <marek.sieradzki@gmail.com>
648 * BuildEngine.cs (BuildProjectFile): Don't crash on null
651 * Target.cs: Add Outputs property.
653 2007-02-20 Marek Sieradzki <marek.sieradzki@gmail.com>
655 * Target.cs (Build): Split to GetDependencies () and BuildDependencies
656 (). Support condition.
658 * BatchingImpl.cs (BatchBuildTask): Simplify.
660 2007-02-18 Marek Sieradzki <marek.sieradzki@gmail.com>
662 * ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
665 * ConditionFunctionExpression.cs: Removed warnings.
667 * BuildTask.cs (Execute): Write exceptions to std err (they should be
668 logged but it's better than swallowing).
670 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
672 * ConditionTokenizer.cs: Add Putback ().
674 * ConditionParser.cs: Add parsing of functions.
676 * ConditionFunctionExpression.cs: Add.
678 2007-02-03 Marek Sieradzki <marek.sieradzki@gmail.com>
680 * BuildPropertyGroup (SetProperty): Throw an exception when trying to
681 set property in persisted property group.
683 2007-01-29 Marek Sieradzki <marek.sieradzki@gmail.com>
685 * BuildTask.cs (Execute): Log errors that happen when invoking ITask
688 * ConsoleLogger.cs (TargetFinishedHandler)
689 (TaskFinishedHandler): Increment error count.
691 2007-01-28 Marek Sieradzki <marek.sieradzki@gmail.com>
693 * BuildItem.cs (RemoveMetadata): Remove from XML.
694 (SetMetadata): Trigger project reevaluation.
696 2007-01-26 Marek Sieradzki <marek.sieradzki@gmail.com>
698 * BuildPropertyGroup.cs (SetProperty): Made it work with persisted
701 2007-01-23 Marek Sieradzki <marek.sieradzki@gmail.com>
703 * BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
704 TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
705 BatchingImpl.cs, BuildProperty.cs: Track API changes.
707 * Expression.cs (Parse): Added allowItems parameter and made regexes
710 * Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
711 will try to import a.ext when given a.EXT.
713 2007-01-21 Marek Sieradzki <marek.sieradzki@gmail.com>
715 * BuildItemGroup.cs: Store information saying what is the last item
716 group that contains build item name.
718 * Project.cs (Build): Pass empty array (build default targets).
720 2007-01-19 Marek Sieradzki <marek.sieradzki@gmail.com>
722 * Token.cs: Commented Transform and LiteralSubExpression and added
725 * ConditionParser.cs: Removed redundant casts, rewrote
726 ParseFactorExpression () and added parsing of '!'.
728 * ConditionTokenizer.cs: Always skip whitespaces when getting next
729 token (no IgnoreWhiteSpace property). Don't create a token from '->'.
730 Moved ReadChar () in front of all ifs.
732 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
734 * BuildItem.cs (SetMetadata): Escape when we get virtual item or item
735 from XML. (not to escape items that have parents twice).
737 2007-01-16 Marek Sieradzki <marek.sieradzki@gmail.com>
739 * BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
740 (Project): Renamed to ParentProject.
742 * BuildItem.cs (ctor)
743 (CopyCustomMetadata): Add null check.
745 * BuildPropertyGroup.cs (AddNewProperty): Reorganized.
746 (RemoveProperty): Added null check.
748 * TargetCollection.cs (RemoveTarget): Added null check.
750 * Engine.cs (UnloadProject): Added null check.
752 * GroupingCollection.cs (Remove): Check if removed group belongs to
755 * Project.cs (AddNewItem): Implemented.
756 (RemoveItem): Reorganized.
757 (SetProjectExtensions): Added null check.
759 2007-01-14 Marek Sieradzki <marek.sieradzki@gmail.com>
761 * BuildItemGroup.cs (Detach): Added.
763 (RemoveItemAt): Used Detach ().
765 * BuildItem.cs: Made FromXml and HasParent internal and added
766 ParentItem and ParentItemGroup properties (internal).
769 * GroupingCollection.cs (Remove): Used Detach ().
771 * Project.cs (ctor): Added PreserveWhitespace = false to get formatted
773 (GetEvaluatedItemsByNameIgnoringCondition)
774 (GetEvaluatedItemsByName)
775 (GetEvaluatedProperty): Reevaluate if needed.
777 (RemoveAllItemGroups)
778 (RemoveAllPropertyGroups): Implemented.
779 (DoLoad): Added closing of TextReader.
781 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
783 * BuildPropertyGroup.cs: Don't trigger reevaluation just after a
784 change but just mark that it needs it.
786 * Project.cs: Reevaluate when it needs reevaluation and one of
787 Evaluated* properties is used.
789 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
791 * Target.cs: Throw an exception when <OnError> is not last element in
794 * BuildPropertyGroup.cs (RemoveProperty): Remove from XML.
796 * TargetCollection.cs: If a target is already there replace it with
799 * BuildProperty.cs: Added XmlElement property.
801 2007-01-12 Marek Sieradzki <marek.sieradzki@gmail.com>
803 * ImportCollection.cs: Don't add imports that are already added.
805 * BuildItemGroup.cs: MonoTODOs.
807 * ConditionParser.cs (ParseAndEvaluate): Throw an exception when
808 condition can't be evaluated to bool.
810 * BuildPropertyGroup.cs (Evaluate): Simplify.
812 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
814 * BuildWhen.cs: Moved BindToXml () code to ctor.
816 * BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
817 property needed for removing groups.
819 * Engine.cs: Added StartBuild () that logs build start when Build ()
822 * GroupingCollection.cs: Added Remove () for item and property groups.
824 * Project.cs (AddNewImport): Implemented.
825 (AddNewItemGroup): Implemented.
826 (AddNewPropertyGroup): Implemented.
827 (AddNewUsingTaskFromAssemblyFile): Implemented.
828 (AddNewUsingTaskFromAssemblyName): Implemented.
829 (RemoveItemGroup): Implemented.
830 (RemovePropertyGroup): Implemented.
832 2007-01-10 Marek Sieradzki <marek.sieradzki@gmail.com>
834 * BuildItemGroup.cs (Clear): Remove from XML.
836 * BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
837 to Project.EvaluatedProperties.
838 (Clear): Remove from XML.
840 2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
842 * Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
845 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
847 * GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
848 Add () calls when processing a project from Import and
849 evaluate_iterator for evaluation.
851 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
853 * Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
854 and prepend relative directory of importing project to full path of
857 2007-01-08 Marek Sieradzki <marek.sieradzki@gmail.com>
859 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
860 BuildItemGroupCollection.cs, Project.cs: Track API changes.
862 * GroupingCollection.cs: Now it needs Project reference so added it.
864 * BuildTask.cs: Formatting.
866 * InvalidProjectFileException.cs: Use MS' names in GetObjectData ().
868 * ConditionParser.cs (ParseAndEvaluate): Added.
870 * BuildItem.cs: Changed exception message.
872 2007-01-02 Marek Sieradzki <marek.sieradzki@gmail.com>
874 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
875 BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
876 GroupingCollection doesn't need Project reference.
878 * BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting
880 * BuildItemGroup.cs: Added new readOnly parameter to ctor.
881 (Project.EvaluatedItems is a read only item group.)
882 (ReplaceWith): Added.
884 * BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
885 global property group causes reevaluation of its project.
887 * Project.cs: ProcessXml () is internal and can be "safely" invoked by
890 * OldExpression.cs: Removed.
892 * BuildProperty.cs (Evaluate): Simplified.
894 * ChangeType.cs (TemporaryTransform): Simplified.
896 * BuildItem.cs: There are now 3 types of build items: from XML, having
897 parent from XML, virtual. Added SplitParentItem ().
899 2006-12-20 Marek Sieradzki <marek.sieradzki@gmail.com>
901 * Utilities.cs: Added Unescape ().
903 * BuildItemGroup.cs, BuildItem.cs: Pass null project to
904 BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
905 groups (at the moment just unescape).
907 * Expression.cs (CopyToExpressionList): Unescape strings.
909 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
911 * Target.cs (ctor): Added ImportedProject argument and removed
913 (AddNewTask): Implemented.
915 * TargetCollection.cs (AddNewTarget): Implemented.
917 * Project.cs: Track API changes.
919 2006-12-19 Marek Sieradzki <marek.sieradzki@gmail.com>
921 * Target.cs (Build): Don't throw anything in case of error, just
924 * BuildItemGroup.cs (set_Condition): Throw an exception if group is
927 * BuildItem.cs: More meaningfull messages in RemoveMetadata () and
930 * BuildProperty.cs (ToString): Throw an exception if property is not
932 (op_Explicit): Added a null check.
934 * Engine.cs: Better error message.
936 * BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
937 IndexOutOfRangeException.
939 * Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
940 (MarkProjectAsDirty): Set time.
942 2006-12-18 Marek Sieradzki <marek.sieradzki@gmail.com>
944 * BuildItemGroup.cs (Clone): Throw exception.
946 * Project.cs (Load): Throw InvalidProjectFileException if anything
949 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
951 * ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
952 and ConvertToITaskItemArray ().
954 2006-12-16 Marek Sieradzki <marek.sieradzki@gmail.com>
956 * ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
957 classes that were public in Beta 2 and aren't used.
959 * Expression.cs: Added replacement for parsing expressions char by
960 char. It uses regexes to find item/property/metadata references in
963 * ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
964 Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
965 BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.
967 * ConditionRelationalExpression.cs: Formatting.
969 * OldExpression.cs: Commented everything.
971 * MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
972 parsing to Expression.
974 * BuildItem.cs: Check if project is from XML in set_Condition and
977 * BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
980 * ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
981 can evaluate expression in CanEvaluateToBool ().
983 2006-12-12 Marek Sieradzki <marek.sieradzki@gmail.com>
985 * BuildItemGroup.cs (ctor): Add reference to ImportedProject from
986 which item group is imported.
988 * BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().
990 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
992 * BuildWhen.cs, BuildPropertyGroupCollection.cs,
993 BuildItemGroupCollection.cs: Little changes related to
996 * ImportCollection.cs: Use GroupingCollection not an internal list.
998 * Import.cs (Evaluate): Split to functions and check if
999 EvaluatedProjectPath is empty.
1001 * GroupingCollection.cs, Project.cs: Move evaluation to
1002 GroupingCollection. Change algorithm to use 2 passes: first for property
1003 groups and imports and second for item groups.
1005 2006-12-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1007 * TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
1008 BuildItemGroup> not IDictionary.
1010 * BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
1011 evaluated to false because we want to add every item to
1012 Project.EvaluatedItemsByNameIgnoringCondition.
1014 * Project.cs (Build): Don't throw an exception just return false.
1015 (GetEvaluatedProperty): Avoid NullReferenceException.
1016 (SetProjectExtensions): Implemented.
1018 2006-12-08 Marek Sieradzki <marek.sieradzki@gmail.com>
1020 * TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.
1022 * Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
1023 BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
1024 Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
1026 * ImportCollection.cs: Added a note.
1028 2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
1030 * BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().
1032 * UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
1033 (UsingTask[] array, int index)
1035 * TaskEngine.cs: Reformatted PublishOutput () and added copying of
1036 items to Project.EvaluatedItems in PublishItemGroup ();
1038 * BuildItemGroup.cs: Added [MonoTODO].
1040 * UsingTask.cs: Used expression for AssemblyFile to get around
1041 problems with '\' and '/'.
1043 * BuildItem.cs (ctor): Added null checks.
1044 (GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
1045 (SetMetadata): Don't escape evaluatedMetadata and escape
1046 unevaluatedMetadata only when treatPropertyValueAsLiteral.
1048 * BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
1049 FromXml () instead of null checks.
1050 (SetProperty): Escape propertyValue when it is literal.
1052 * BuildProperty.cs: Changed exception message.
1054 * Project.cs: Added XmlNamespaceManager and XmlNamespace internal
1056 (GetProjectExtensions): Implemented.
1058 2006-12-05 Marek Sieradzki <marek.sieradzki@gmail.com>
1060 * BuildTask.cs: Remove [MonoTODO], add exception throwing in
1061 GetParameterValue (), use expressions in ContinueOnError.
1062 * ConditionFactorException.cs: Throw InvalidProjectFileException ()
1063 instead of InvalidOperationException ().
1064 * ImportCollection.cs: Implement CopyTo ().
1065 * Target.cs: Remove redundant variables (XmlAttributes), return
1066 String.Empty in DependsOnTargets, add a null check in RemoveTask ().
1067 * BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
1068 * Import.cs: Throw an exception when file does not exist.
1069 * Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
1070 * ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
1071 need to treat item as a token probably
1073 2006-12-04 Marek Sieradzki <marek.sieradzki@gmail.com>
1075 * Import.cs: Check for project.FullFileName (Path.DirectoryName would
1076 throw an exception).
1077 * BuildItemGroupCollection.cs: Changed exception types.
1079 2006-10-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1081 * Engine.cs: Removed redundant cast.
1083 * UsingTaskCollection.cs:
1087 * TargetCollection.cs: Comment unused variable.
1088 * ConditionTokenizer.cs: Simplified checking if current token is a
1090 * Target.cs: Removed old code.
1092 2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
1094 * Target.cs: Changed "" to String.Empty.
1095 * TaskEngine.cs: Don't try to convert a parameter to specific type if
1096 string was evaluated to String.Empty.
1097 * InternalLoggerException.cs:
1098 * InvalidProjectFileException.cs: Added LinkDemand before
1100 * ConsoleLogger.cs: Changed "" to String.Empty.
1101 * TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
1102 with change to generics).
1103 * Project.cs: Made Build () throw more meaningful exception.
1105 2006-10-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1107 * Target.cs: Reformatted.
1108 * TaskEngine.cs: Removed redundant code.
1109 * BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
1110 * Engine.cs: Made BuildProjectFile () load project file if it's not
1113 2006-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
1115 * ConditionRelationalExpression.cs: Change comparers to case
1117 * ImportCollection.cs: Add NotImplementedExceptions.
1118 * BuildPropertyGroup.cs: Reformatted a bit.
1119 * BuildProperty.cs: The same.
1120 * Project.cs: Moved evaluation of imports before evaluation of
1121 properties. This may "work" until importing projects is redesigned but
1122 probably isn't correct.
1124 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1126 * BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
1128 * BuildItemGroup.cs: Change return to continue.
1130 2006-09-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1132 * ConditionParser.cs: Copyright note.
1133 * ExpressionCollection.cs: Fixed arrays passing.
1135 2006-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1137 * BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
1138 Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
1139 BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
1140 TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.
1142 2006-06-25 Marek Sieradzki <marek.sieradzki@gmail.com>
1144 * Token.cs: Changed names: removed "than".
1145 * ConditionRelationalExpression.cs: Added.
1146 * ConditionFactorExpression.cs: Added.
1147 * BuildItemGroup.cs: Changed Condition property return value to return
1148 String.Empty instead of null.
1149 * ConditionParser.cs: Added support for parsing relational expressions
1151 * ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
1152 abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
1153 and CanEvaluateToBool (), CanEvaluateToNumber () and
1154 CanEvaluateToString ().
1155 * ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
1156 appropriately to ConditionExpression base class.
1157 * ConditionTokenizer.cs: Added null check and changed names in enums:
1159 * ConditionNotExpression.cs: Added.
1160 * BatchingImpl.cs: Changed to use BoolEvaluate ().
1161 * Project.cs: Added checks for condition.
1163 2006-06-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1165 * ConditionalTokenizer.cs, ConditionalExpression.cs,
1166 ConditionalParser.cs: Changed name,
1168 * ConditionExpression.cs: Added Evaluate ().
1169 * ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
1170 * BatchingImpl.cs: Added check if task should be executed.
1172 2006-06-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1174 * UsingTask.cs: Changed properties to return null on empty attribute.
1175 * UsingTaskCollection.cs: Added object to SyncRoot.
1176 * BuildPropertyGroup.cs: Added NotImplementedException throwing.
1178 2006-06-02 Marek Sieradzki <marek.sieradzki@gmail.com>
1180 * BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
1181 BuildPropertyGroupCollection.cs: Fixed to match the tests.
1183 2006-05-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1185 * Utilities.cs: Implemented Escape ().
1186 * BuildItem.cs: Added null checks.
1187 * BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
1188 * Project.cs: Commented out redundant Evaluate ().
1189 * BuildChoose.cs: Minor changes.
1191 2006-05-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1193 * Token: Added new few missing tokens.
1194 * Target.cs, Project.cs: Patch from Matthew Metnesky.
1195 * BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
1196 ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
1197 ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
1198 LiteralTokenizer.cs:
1199 Removed literal expression parsing based on tokenizer and
1200 parser. It needs to be done by regex.
1202 Moved tokenizer to ConditionalTokenizer.cs.
1204 2006-05-05 Marek Sieradzki <marek.sieradzki@gmail.com>
1206 * ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
1207 ItemReference.cs, PropertyReference.cs: Changed name of *Reference
1208 methods converting reference to string from ToString () to
1209 ConvertToString () to avoid mistakes like using ToString () provided
1212 2006-05-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1214 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
1215 Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
1216 PropertyReference.cs, BuildProperty.cs: Changed Expression to
1217 OldExpression and changed To* functions to one ConvertTo ().
1218 * TaskEngine.cs: Fixed PublishOutput ().
1219 * OldExpression.cs: Added. It will be temporarily used before
1220 LiteralExpression will be written using Tokenizer.
1221 * Tokenizer.cs, Token.cs, ExpressionCollection.cs,
1222 ExpressionParseException.cs, LiteralExpression.cs: Added.
1224 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1226 * ImportedProject.cs: Removed warning.
1227 * Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
1230 2006-04-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1232 * Project.cs: Removed unnecessary variable.
1233 * Engine.cs: Added fixme.
1235 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1237 * BuildItem.cs: Moved checking if metadata name is reserved to internal
1238 class (Mono.XBuild.Utilities.ReservedNameUtils).
1240 2006-04-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1242 * BuildTask.cs: Removed unnecessary variable.
1243 * Engine.cs: Added logging of the build start.
1244 * Project.cs: Removed unnecessary variable.
1246 2006-04-07 Marek Sieradzki <marek.sieradzki@gmail.com>
1248 * GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.
1250 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1252 * BuildItem.cs, BuildItemGroup.cs: Coding style fixes.
1254 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1256 * BuildItem.cs: Fix typo?
1258 2006-03-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1260 * InternalLoggerException.cs, InvalidProjectFileException.cs,
1261 Engine.cs, Project.cs: Coding style fixes.
1263 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1265 * BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.
1267 2006-03-29 Crestez Leonard <cdleonard@gmail.com>
1269 * InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
1270 to pass tests. Wrote serialization constructor.
1271 * Engine.cs, Project.cs: Global engine and project unloading, test and
1274 2006-03-28 Marek Sieradzki <marek.sieradzki@gmail.com>
1276 * UsingTask.cs: Formatting changes.
1278 2006-03-27 Crestez Leonard <cdleonard@gmail.com>
1280 * ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
1281 to lists instead of hashtables.
1282 * Import.cs: Cleaned up, moved importing from Project.cs
1283 * BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
1284 * Engine.cs: Cleaned up properties.
1285 * Project.cs: Moved importing to Import.cs, cleaned up properties,
1286 Separated evaluation and loading.
1288 2006-03-21 Crestez Leonard <cdleonard@gmail.com>
1290 * Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
1291 BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
1292 Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
1293 binding and evaluation, merge xml binding in constructors.
1294 * DirectoryScanner.cs: Includes CAN be empty.
1295 * BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
1296 * ConsoleLogger.cs: Fix compilation warning.
1298 2006-03-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1300 * BuildPropertyGroup.cs, Expression.cs: Coding style fixed.
1302 2006-03-18 Marek Sieradzki <marek.sieradzki@gmail.com>
1304 * Engine.cs: API cleanup.
1306 2006-03-18 Crestez Leonard <cdleonard@gmail.com>
1308 * Project.cs: Cleaned up add.
1309 * Expression.cs: Hacked to transform \ and / to path separators.
1310 * BuildPropertyGroup.cs: Small cleanup.
1311 * BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
1314 2006-03-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1316 * BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
1317 * BuildItem.cs: Updated for new API and fixed crashing on non-existent
1319 * BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
1320 BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
1321 Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
1323 * DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
1324 * TaskElement.cs: Temporarily removed.
1325 * Xml.cs: Changed to static.
1327 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1329 * IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
1330 IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
1331 ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
1332 IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
1333 ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
1334 IBuildPropertyGroupCollection.cs: Removed.
1336 2006-02-26 Marek Sieradzki <marek.sieradzki@gmail.com>
1338 * BuildItem.cs: Removed IBuildItem references.
1339 * BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
1340 IBuildItemGroup references. Changed Evaluate to internal.
1341 * BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
1342 reference and hidden constructors.
1343 * BuildProperty.cs: Removed IBuildProperty reference.
1344 * BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
1345 IBuildPropertyGroup references. Changed Evaluate to internal.
1346 * BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
1347 reference and hidden constructors.
1348 * ConsoleLogger.cs: Updated names of event handlers.
1349 * Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
1350 Escape. Added UnloadAllProjects () and UnloadProject ().
1351 * FileLogger.cs: Removed ApplyParameter ().
1352 * GroupingCollection.cs: Hidden.
1353 * InvalidProjectFileException.cs: Removed HasBeenLogged property.
1354 * ItemPropertyGroupingBase.cs: Commented.
1355 * ProcessingPass.cs: Hidden.
1356 * Project.cs: Removed IProject reference. Changed CurrentEncoding to
1358 * Target.cs: Removed ITarget reference.
1359 * TargetCollection.cs: Removed ITargetCollection reference.
1360 * TaskElement.cs: Removed ITaskElement reference.
1361 * TaskEngineAssemblyResolver.cs: Hidden.
1362 * Utilities.cs: Made static class, removed CheckPath (),
1363 ValidateCulture (), GetSupportedCultures () and added Escape ().
1365 2006-02-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1367 * ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
1370 2005-09-22 Marek Sieradzki <marek.sieradzki@gmail.com>
1372 * Project.cs: Added MonoTODO attributes.
1373 * Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
1374 ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
1375 IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
1376 BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
1377 SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
1378 BuildItemGroup.cs, InvalidProjectFileException.cs,
1379 BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
1380 Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
1381 PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
1382 ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
1383 IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
1384 IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
1385 ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
1386 ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
1387 IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
1388 IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
1389 BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
1390 ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.
1392 2005-09-21 Marek Sieradzki <marek.sieradzki@gmail.com>
1394 * TaskDatabase.cs: Change Shared to Framework.
1395 * BuildPropertyGroup.cs, Project.cs: Remove obsoleted
1396 CaseInsensitiveHashCodeProvider
1398 2005-09-11 Marek Sieradzki <marek.sieradzki@gmail.com>
1400 * TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
1401 * Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
1404 2005-09-09 Marek Sieradzki <marek.sieradzki@gmail.com>
1406 * InternalLoggerException.cs: Changed protected fields to private.
1408 2005-09-03 Marek Sieradzki <marek.sieradzki@gmail.com>
1410 * Engine.cs: Added check for globalProperties.
1411 * Project.cs: Added using path from importedProject.FullFileName when
1412 adding UsingTask elements.
1414 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1416 * TaskElement.cs: Changed ReflectedType to PropertyType.
1417 * ChangeType.cs (TransformToString): Changed to pass proper Type to
1420 2005-09-01 Marek Sieradzki <marek.sieradzki@gmail.com>
1422 * BuildPropertyGroup.cs: Added check for PropertyType when adding a
1424 * BuildProperty.cs: Organized PropertyType enum.
1425 * Engine.cs: Added setting CommandLine PropertyType of global
1428 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1430 * InvalidProjectFileException.cs: Changed Message property.
1431 * ChangeType.cs (TransformToString): Added separator between items.
1432 * TaskEngineAssemblyResolver.cs: Formatting.
1434 2005-08-31 Marek Sieradzki <marek.sieradzki@gmail.com>
1436 * DirectoryScanner.cs: Added.
1437 * BuildItem.cs: Moved file scanning code to DirectoryScanner.
1438 * BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
1439 * Project.cs: Removed Evalute* ().
1441 2005-08-30 Marek Sieradzki <marek.sieradzki@gmail.com>
1443 * Target.cs: Formatting.
1444 * Expression.cs: Added check if array == null.
1445 * BuildItem.cs: Removed 'break' to remove warnings.
1446 * ConsoleLogger.cs: Formatting.
1447 * Engine.cs: Added handling of default target(s).
1448 * Project.cs: Added handling of default target(s).
1450 2005-08-29 Marek Sieradzki <marek.sieradzki@gmail.com>
1452 * TaskElement.cs: Added check for parameters.
1453 * Target.cs: Added logging of target skipping.
1454 * Expression.cs: Changed returning object[] to string[], bool[]... in
1456 * ItemReference.cs: Fixed for item references without custom
1458 * BatchingImpl.cs: Added real inputs/outputs checking.
1459 * Engine.cs: Moved global properties setting.
1460 * Project.cs: Moved global properties setting.
1462 2005-08-27 Marek Sieradzki <marek.sieradzki@gmail.com>
1464 * Target.cs: Added checks for target existence.
1465 * BuildItemGroup.cs: Changed to use transforms.
1466 * MetadataReference.cs: Wrote real implementation.
1467 * ItemReference.cs: Rewritten to use transforms.
1468 * BuildItem.cs: Changes for transforms and metadata.
1469 * ConsoleLogger.cs: Added verbosity checking and fixed error/warning
1471 * Project.cs: Fixed project importing.
1472 * ImportedProject.cs: Changed to throw exceptions instead of returning
1475 2005-08-24 Marek Sieradzki <marek.sieradzki@gmail.com>
1477 * Engine.cs: Removed FIXME.
1478 * Project.cs: Splitted ProcessElements and added project importing.
1479 * ImportedProject.cs: Rewritten.
1481 2005-08-20 Marek Sieradzki <marek.sieradzki@gmail.com>
1483 * TaskElement.cs: Added getting of objects of every type.
1484 * BuildItemGroup.cs: Added ToITaskItemArray ().
1485 * Expression.cs: Implemented part that is not using metadata.
1486 * ItemReference.cs: Implemented parsing item references. Need to fix
1488 * BuildItem.cs: Fixed ToITaskItem ().
1489 * PropertyReference.cs: Implemented parsing property references. This
1490 also needs validity checking.
1492 2005-08-19 Marek Sieradzki <marek.sieradzki@gmail.com>
1494 * TaskElement.cs: Added Output element handling.
1495 * Target.cs: Cleaned up.
1496 * BuildItemGroup.cs: Added creating BuildItem from TaskItem.
1497 * Expression.cs, MetadataReference.cs, PropertyReference.cs,
1498 ItemReference.cs, ChangeType.cs: Added.
1499 * BuildItem.cs: Added creating BuildItem from TaskItem.
1500 * BuildPropertyGroup.cs: Small changes.
1501 * BatchingImpl.cs: Fixed to return real task execution result.
1502 * BuildProperty.cs: Fixed FinalValue property.
1503 * Engine.cs: Reformatted logging.
1504 * Project.cs: Added check to EvaluateProperty.
1506 2005-08-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1508 * TaskElement.cs: Added part of execution engine.
1509 * BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
1510 * BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
1511 * EventSource.cs: Added FireTaskStarted and FireTaskFinished.
1512 * BuildItem.cs: Added handling of built-in metadata and referencing
1513 Items by name not FullName.
1514 * BatchingImpl.cs: Added temporary task "batching".
1515 * ConsoleLogger.cs: Added temporary workaround to not show sender.
1516 * Project.cs: Added Evaluate. It will be moved to separate class.
1518 2005-08-14 Marek Sieradzki <marek.sieradzki@gmail.com>
1520 * EventSource.cs, Engine.cs: Added CriticalEvents.
1521 * BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
1522 Project.cs: Added some support for items.
1523 * BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.
1525 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1527 * BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
1530 2005-08-12 Marek Sieradzki <marek.sieradzki@gmail.com>
1532 * BatchingImpl.cs: Added.
1533 * BuildWhen.cs, BuildEngine.cs, Target.cs,
1534 BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
1535 BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
1536 TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
1537 GroupingCollection.cs: Updated.
1539 2005-08-06 Marek Sieradzki <marek.sieradzki@gmail.com>
1541 * BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
1542 BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
1543 BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
1544 BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
1545 EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
1546 GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
1547 InternalLoggerException.cs, InvalidProjectFileException.cs,
1548 ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
1549 ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
1550 TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
1551 TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
1552 Initial check-in of implementations.
1554 2005-07-16 Marek Sieradzki <marek.sieradzki@gmail.com>
1556 * conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
1557 IBuildItemGroupCollection.cs, IBuildProperty.cs,
1558 IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
1559 ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
1560 IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
1561 IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
1562 Initial check-in of interfaces and a syntax file, real classes are
1563 changing a lot so I'll wait a moment with checking them in.