Add support for ToolsVersion and correctly build msbuild+xbuild assemblies
for 3.5 and 4.0 profiles.
2010-04-03 Ankit Jain <jankit@novell.com>
* Makefile: Process tools/xbuild for 3.5 also.
In class/Microsoft.Build.Engine:
2010-04-03 Ankit Jain <jankit@novell.com>
* Makefile: Use the correct assembly name for MS.Build.Utilities*
for 3.5 and 4.0 profiles. Copy the .config files for the test
assembly.
Import tools/xbuild/xbuild_targets.make, which copies the target
and tasks file in the correct place, to allow running tests
with different toolsversion.
* Microsoft.Build.Engine.dll.sources: Add LogExtensions.cs,
Toolset.cs, ToolsetDefinitionLocations.cs and ToolsetCollection.cs .
* Test/test-config-file-net-3.5: New.
* Test/test-config-file-net-4.0: New.
In class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine:
2010-04-03 Ankit Jain <jankit@novell.com>
* BuildEngine.cs: Implement IBuildEngine2 instead of
IBuildEngine.
* BuildTasks.cs: Use the new extension methods for logging.
(InitializeTask): Emit a message informing about the assembly
from which the task is being loaded. Emit a useful debug message
incase of a InvalidCastException.
* Engine.cs: Add missing methods, constructors and properties related
to ToolsVersion support. Setup a default set of Toolsets.
Keep separate taskdbs' per ToolsVersion. The common tasks
would come from different *.tasks file, and use different
task assemblies.
(DefaultToolsVersion): Correctly set this based on the profile.
* LogExtensions.cs: New. Extension methods on Engine, for logging.
* Project.cs: Add missing methods/contructors/properties related
to ToolsVersion support. Add reserved properties -
MSBuildToolsPath and MSBuildToolsVersion .
* Toolset.cs: New.
* ToolsetCollection.cs: New.
* ToolsetDefinitionLocations.cs: New.
In class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine:
2010-04-06 Ankit Jain <jankit@novell.com>
* Consts.cs (ToolsVersionString): New.
(GetTasksAsmPath): New.
* EngineTest.cs: Use the direct path to the tasks assembly
in the UsingTasks.
* ProjectTest.cs: Set ToolsVersion to the current profile.
In class/Microsoft.Build.Framework:
2010-04-03 Ankit Jain <jankit@novell.com>
* Makefile: Import tools/xbuild/xbuild_targets.make, which copies
the target and tasks file in the correct place, to allow running
tests with different toolsversion.
* Microsoft.Build.Framework.dll.sources: Add IBuildEngine2.cs .
In class/Microsoft.Build.Framework/Microsoft.Build.Framework:
2010-04-03 Ankit Jain <jankit@novell.com>
* IBuildEngine2.cs: New.
In class/Microsoft.Build.Tasks:
2010-04-03 Ankit Jain <jankit@novell.com>
* Makefile: Import tools/xbuild/xbuild_targets.make, which copies
the target and tasks file in the correct place, to allow running
tests with different toolsversion. Copy the config file for the
test assembly. Clean the generated test.dll .
Use the correct target assembly name for 4.0 profile
(ms.build.tasks.v4.0.dll), and for Utilities assembly.
* Microsoft.Build.Tasks_test.dll.sources: Use Consts.cs from Engine
instead of maintaining a copy here.
In class/Microsoft.Build.Tasks/Microsoft.Build.Tasks:
2010-04-03 Ankit Jain <jankit@novell.com>
* Csc.cs: Use dmcs as the compiler for 4.0 profile.
* MSBuild.cs (ToolsVersion): New.
Use toolsVersion for building.
In class/Microsoft.Build.Tasks/Test/Microsoft.Build.Tasks:
2010-04-06 Ankit Jain <jankit@novell.com>
* Consts.cs: Remove.
* AssignProjectConfigurationTest.cs:
* CreateCSharpManifestResourceNameTest.cs:
* CreateVisualBasicManifestResourceNameTest.cs:
* CreateItemTest.cs:
* FindAppConfigFileTest.cs:
* RemoveDuplicatesTest.cs:
* TaskBatchingTest.cs:
* WriteLinesToFileTest.cs:
Set the ToolsVersion to match the profile. Use the
full path to the tasks assembly for UsingTasks.
In class/Microsoft.Build.Utilities:
2010-04-03 Ankit Jain <jankit@novell.com>
* Makefile: Import tools/xbuild/xbuild_targets.make, which copies
the target and tasks file in the correct place, to allow running
tests with different toolsversion.
Use the correct target assembly name for 4.0 profile.
In class/Microsoft.Build.Utilities/Microsoft.Build.Utilities:
2010-04-03 Ankit Jain <jankit@novell.com>
* TargetDotNetFrameworkVersion.cs: Add Version40 .
* Task.cs (BuildEngine2): New.
* ToolLocationHelper.cs: Use class/linet_* as the path
for the assemblies and targets when running tests.
Environment variable TESTING_MONO is set for testing.
This allows a 4.0 xbuild to build 2.0/3.5 projects.
In tools:
2010-04-03 Ankit Jain <jankit@novell.com>
* Makefile: Move xbuild from net_4_0_dirs to per_profile_dirs.
In tools/xbuild:
2010-04-03 Ankit Jain <jankit@novell.com>
* Main.cs (Execute): If toolsversion is specified on the command line,
then use that.
* Parameters.cs: Read toolsversion from the command line ('/tv:..') .
* SolutionParser.cs: Infer ToolsVersion from the sln version.
Set ToolsVersion property of the MSBuild tasks, in the generated
.sln.proj file, for building the projects.
* xbuild/Microsoft.Common.tasks: Move to ..
* xbuild/2.0/Microsoft.Common.tasks: .. here.
* xbuild/3.5/Microsoft.Common.tasks: New.
* xbuild/4.0/Microsoft.Common.tasks: New.
Use the corresponding 3.5/4.0 tasks assembly.
* xbuild_targets.make: Copies the target and tasks file in the correct
place, to allow running tests with different toolsversion.
* Makefile: Import xbuild_targets.make . Use correct assembly names for
Utilities assembly, for 3.5/4.0 profiles.
Install the correct Microsoft.Common.tasks file for the profile.
Copy xbuild.exe to class/li$(PROFILE), so that it can find other
profile dirs as relative path.
(EXTRA_DISTFILES): Add the new Microsoft.Common.tasks files.
git-svn-id: svn+ssh://mono-cvs.ximian.com/source/trunk/mcs@154835 e3ebcda4-bce8-0310-ba0a-eca2169e7518
59 files changed: