diff options
author | Michael Hutchinson <m.j.hutchinson@gmail.com> | 2013-12-22 10:08:47 +0400 |
---|---|---|
committer | Michael Hutchinson <m.j.hutchinson@gmail.com> | 2014-01-08 03:39:31 +0400 |
commit | 76d9d6a4583025641a2457b970c6e0e81d3aa744 (patch) | |
tree | 663e0245374353c5d83ab8be669fe64b15f727bf /mcs/class/Microsoft.Build.Utilities | |
parent | 92ac9868a3a4db9a2d7837590cd493118e99d89d (diff) |
[xbuild] Fix 12.0 toolset location and public API
Diffstat (limited to 'mcs/class/Microsoft.Build.Utilities')
2 files changed, 37 insertions, 15 deletions
diff --git a/mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/TargetDotNetFrameworkVersion.cs b/mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/TargetDotNetFrameworkVersion.cs index 0906ef3ebf5..04940d5e8ba 100644 --- a/mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/TargetDotNetFrameworkVersion.cs +++ b/mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/TargetDotNetFrameworkVersion.cs @@ -48,8 +48,13 @@ namespace Microsoft.Build.Utilities #if NET_4_5 Version45, #endif +#if XBUILD_12 + Version451, +#endif -#if NET_4_5 +#if XBUILD_12 + VersionLatest = Version451 +#elif NET_4_5 VersionLatest = Version45 #elif NET_4_0 VersionLatest = Version40 diff --git a/mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/ToolLocationHelper.cs b/mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/ToolLocationHelper.cs index e61094bc867..35226c1a8b1 100644 --- a/mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/ToolLocationHelper.cs +++ b/mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/ToolLocationHelper.cs @@ -39,6 +39,7 @@ namespace Microsoft.Build.Utilities { static string lib_mono_dir; static string [] mono_dir; + static bool runningOnDotNet; static ToolLocationHelper () { @@ -53,9 +54,12 @@ namespace Microsoft.Build.Utilities t2 = t1.Parent; lib_mono_dir = t2.FullName; + #if NET_4_0 var windowsPath = Environment.GetFolderPath (Environment.SpecialFolder.Windows); + runningOnDotNet = !string.IsNullOrEmpty (windowsPath) && lib_mono_dir.StartsWith (windowsPath); #endif + if (Environment.GetEnvironmentVariable ("TESTING_MONO") != null) { mono_dir = new string [] { Path.Combine (lib_mono_dir, "net_1_0"), @@ -63,20 +67,19 @@ namespace Microsoft.Build.Utilities Path.Combine (lib_mono_dir, "net_2_0"), Path.Combine (lib_mono_dir, "net_3_5"), Path.Combine (lib_mono_dir, "net_4_0"), + Path.Combine (lib_mono_dir, "net_4_5"), Path.Combine (lib_mono_dir, "net_4_5") }; -#if NET_4_0 - } else if (!string.IsNullOrEmpty (windowsPath) && lib_mono_dir.StartsWith (windowsPath)) { - //running in .NET, not Mono + } else if (runningOnDotNet) { mono_dir = new string [] { Path.Combine (lib_mono_dir, "v1.0.3705"), Path.Combine (lib_mono_dir, "v2.0.50727"), Path.Combine (lib_mono_dir, "v2.0.50727"), Path.Combine (lib_mono_dir, "v3.5"), Path.Combine (lib_mono_dir, "v4.0.30319"), + Path.Combine (lib_mono_dir, "v4.0.30319"), Path.Combine (lib_mono_dir, "v4.0.30319") }; -#endif } else { mono_dir = new string [] { Path.Combine (lib_mono_dir, "1.0"), @@ -84,7 +87,8 @@ namespace Microsoft.Build.Utilities Path.Combine (lib_mono_dir, "2.0"), Path.Combine (lib_mono_dir, "3.5"), Path.Combine (lib_mono_dir, "4.0"), - Path.Combine (lib_mono_dir, "4.5") + Path.Combine (lib_mono_dir, "4.5"), + Path.Combine (lib_mono_dir, "4.5"), }; } @@ -113,15 +117,6 @@ namespace Microsoft.Build.Utilities return mono_dir [(int)version]; } -#if NET_4_0 - public static string GetMSBuildInstallPath (string version) - { - //see http://msdn.microsoft.com/en-us/library/vstudio/bb397428(v=vs.120).aspx - var programFiles = Environment.GetFolderPath (Environment.SpecialFolder.ProgramFilesX86); - return Path.Combine (programFiles, "MSBuild", version, "bin"); - } -#endif - [MonoTODO] public static string GetPathToDotNetFrameworkFile (string fileName, TargetDotNetFrameworkVersion version) @@ -153,5 +148,27 @@ namespace Microsoft.Build.Utilities throw new NotImplementedException (); } } + +#if XBUILD_12 + public static string CurrentToolsVersion { + get { + return XBuildConsts.Version; + } + } + + public static string GetPathToBuildTools (string toolsVersion) + { + if (toolsVersion != "12.0") + return null; + + if (runningOnDotNet) { + //see http://msdn.microsoft.com/en-us/library/vstudio/bb397428(v=vs.120).aspx + var programFiles = Environment.GetFolderPath (Environment.SpecialFolder.ProgramFilesX86); + return Path.Combine (programFiles, "MSBuild", toolsVersion, "bin"); + } + + return Path.Combine (lib_mono_dir, "xbuild", toolsVersion, "bin"); + } +#endif } } |