Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for ToolsVersion and correctly build msbuild+xbuild assem…
…blies for 3.5 and 4.0 profiles. 2010-04-03 Ankit Jain <[email protected]> * Makefile: Process tools/xbuild for 3.5 also. In class/Microsoft.Build.Engine: 2010-04-03 Ankit Jain <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * IBuildEngine2.cs: New. In class/Microsoft.Build.Tasks: 2010-04-03 Ankit Jain <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Makefile: Move xbuild from net_4_0_dirs to per_profile_dirs. In tools/xbuild: 2010-04-03 Ankit Jain <[email protected]> * 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. svn path=/trunk/mcs/; revision=154835 Commit migrated from mono/mono@4427a60
- Loading branch information