diff options
Diffstat (limited to 'dev-util/monodevelop/files/monodevelop-0.7-mcs-path-fix.diff')
-rw-r--r-- | dev-util/monodevelop/files/monodevelop-0.7-mcs-path-fix.diff | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/dev-util/monodevelop/files/monodevelop-0.7-mcs-path-fix.diff b/dev-util/monodevelop/files/monodevelop-0.7-mcs-path-fix.diff new file mode 100644 index 000000000000..88a94df0a83b --- /dev/null +++ b/dev-util/monodevelop/files/monodevelop-0.7-mcs-path-fix.diff @@ -0,0 +1,38 @@ +diff -aur monodevelop-0.7-orig/Core/src/AddIns/BackendBindings/CSharpBinding/CSharpBindingCompilerManager.cs monodevelop-0.7/Core/src/AddIns/BackendBindings/CSharpBinding/CSharpBindingCompilerManager.cs +--- monodevelop-0.7-orig/Core/src/AddIns/BackendBindings/CSharpBinding/CSharpBindingCompilerManager.cs 2005-03-22 13:02:01.000000000 -0500 ++++ monodevelop-0.7/Core/src/AddIns/BackendBindings/CSharpBinding/CSharpBindingCompilerManager.cs 2005-09-23 00:33:46.000000000 -0400 +@@ -463,20 +463,23 @@ + stream.Close (); + } + ++ string compilerName = String.Empty; + string GetCompilerName() + { +- //return fileUtilityService.GetDirectoryNameWithSeparator(System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory()) + +- // "csc.exe"; +- string ret = fileUtilityService.GetDirectoryNameWithSeparator(System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory()); +- // Interop between mono 1.0.x and mono 1.1.x +- if (ret.IndexOf("mono/1.0") == -1) { +- ret = ret.Substring(0, ret.Length - 4); +- ret = ret + "bin/mcs"; +- } else { +- ret = ret.Substring(0, ret.Length - 13); +- ret = ret + "bin/mcs"; ++ if (compilerName == String.Empty) ++ { ++ string runtimeDir = fileUtilityService.GetDirectoryNameWithSeparator(System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory()); ++ // The following regex foo gets the index of the ++ // last match of lib/lib32/lib64 and uses ++ // the text before that as the 'prefix' in order ++ // to find the right mcs to use. ++ Regex regex = new Regex ("lib[32 64]?"); ++ MatchCollection matches = regex.Matches(runtimeDir); ++ Match match = matches[matches.Count - 1]; ++ compilerName = runtimeDir.Substring(0, match.Index) + Path.Combine("bin", "mcs"); + } +- return ret; ++ ++ return compilerName; + } + + ICompilerResult ParseOutput(TempFileCollection tf, string stdout, string stderr) |