diff options
author | mhutch <m.j.hutchinson@gmail.com> | 2016-03-18 21:04:44 +0300 |
---|---|---|
committer | mhutch <m.j.hutchinson@gmail.com> | 2016-03-18 21:04:44 +0300 |
commit | 60fe3276e27c537e02d87faa97cdc090d724c212 (patch) | |
tree | bb7cd6ba84d9592f293d725b688b2f5bd8076a6f /main/src/core | |
parent | c4c3139a3c350cd8a320ccf2bb941b9f67c68715 (diff) |
Revert "Added support for different architectures of MonoRuntime so user can pick 32bit or 64bit version to start debugging"
This reverts commit db0fa9870df5245b4d7189e3ee36157e68a30572.
Diffstat (limited to 'main/src/core')
4 files changed, 35 insertions, 82 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/MonoRuntimeInfo.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/MonoRuntimeInfo.cs index afb2374bed..164ed5c2e3 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/MonoRuntimeInfo.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/MonoRuntimeInfo.cs @@ -39,9 +39,6 @@ namespace MonoDevelop.Core.Assemblies { [ItemProperty] string prefix; - - [ItemProperty] - bool? force64or32bit; string monoVersion = "Unknown"; Dictionary<string,string> envVars = new Dictionary<string, string> (); @@ -51,21 +48,16 @@ namespace MonoDevelop.Core.Assemblies internal MonoRuntimeInfo () { } - - public MonoRuntimeInfo (string prefix, bool? force64or32bit = null) + + public MonoRuntimeInfo (string prefix) { - this.force64or32bit = force64or32bit; this.prefix = prefix; Initialize (); } - + public string Prefix { get { return prefix; } } - - public bool? Force64or32bit { - get { return force64or32bit; } - } /// <summary> /// This string is strictly for displaying to the user or logging. It should never be used for version checks. @@ -78,10 +70,7 @@ namespace MonoDevelop.Core.Assemblies } public string DisplayName { - get { - return "Mono " + MonoVersion + " (" + prefix + ")" + - (force64or32bit.HasValue ? (force64or32bit.Value ? " (64 bit)" : " (32 bit)") : ""); - } + get { return "Mono " + MonoVersion + " (" + prefix + ")"; } } public bool IsValidRuntime { @@ -114,7 +103,7 @@ namespace MonoDevelop.Core.Assemblies StringWriter output = new StringWriter (); try { string monoPath = Path.Combine (prefix, "bin"); - monoPath = Path.Combine (monoPath, force64or32bit.HasValue ? (force64or32bit.Value ? "mono64" : "mono32") : "mono"); + monoPath = Path.Combine (monoPath, "mono"); ProcessStartInfo pi = new ProcessStartInfo (monoPath, "--version"); pi.UseShellExecute = false; pi.RedirectStandardOutput = true; diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/MonoTargetRuntime.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/MonoTargetRuntime.cs index 59305a034f..eb4822958e 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/MonoTargetRuntime.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/MonoTargetRuntime.cs @@ -99,7 +99,7 @@ namespace MonoDevelop.Core.Assemblies public override string DisplayName { get { if (!IsRunning) - return base.DisplayName + " (" + Prefix + ")" + (monoRuntimeInfo.Force64or32bit.HasValue ? monoRuntimeInfo.Force64or32bit.Value ? " (64bit)" : " (32bit)" : ""); + return base.DisplayName + " (" + Prefix + ")"; else return base.DisplayName; } diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/MonoTargetRuntimeFactory.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/MonoTargetRuntimeFactory.cs index 3a8cd189d9..777f3e5399 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/MonoTargetRuntimeFactory.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/MonoTargetRuntimeFactory.cs @@ -32,38 +32,19 @@ using MonoDevelop.Core.Serialization; namespace MonoDevelop.Core.Assemblies { - class MonoTargetRuntimeFactory : ITargetRuntimeFactory + class MonoTargetRuntimeFactory: ITargetRuntimeFactory { static RuntimeCollection customRuntimes = new RuntimeCollection (); static string configFile = UserProfile.Current.ConfigDir.Combine ("mono-runtimes.xml"); - static string [] commonLinuxPrefixes = new string [] { "/usr", "/usr/local" }; - + static string[] commonLinuxPrefixes = new string[] { "/usr", "/usr/local" }; + static MonoTargetRuntimeFactory () { LoadRuntimes (); } - + const string MAC_FRAMEWORK_DIR = "/Library/Frameworks/Mono.framework/Versions"; - static IEnumerable<MonoRuntimeInfo> GetAllArchitecturesOfRuntimes (string dir) - { - var rinfo64 = new MonoRuntimeInfo (dir, true); - var rinfo32 = new MonoRuntimeInfo (dir, false); - if (rinfo64.IsValidRuntime && rinfo32.IsValidRuntime) { - yield return rinfo64; - yield return rinfo32; - } else if (rinfo64.IsValidRuntime) { - yield return rinfo64; - } else if (rinfo32.IsValidRuntime) { - yield return rinfo32; - } else { - var rinfo = new MonoRuntimeInfo (dir, null); - if (rinfo.IsValidRuntime) { - yield return rinfo; - } - } - } - public IEnumerable<TargetRuntime> CreateRuntimes () { MonoRuntimeInfo currentRuntime = MonoRuntimeInfo.FromCurrentRuntime (); @@ -73,36 +54,34 @@ namespace MonoDevelop.Core.Assemblies if (Platform.IsWindows) { string progs = Environment.GetFolderPath (Environment.SpecialFolder.ProgramFiles); foreach (string dir in Directory.GetDirectories (progs, "Mono*")) { - foreach(var info in GetAllArchitecturesOfRuntimes(dir)) + MonoRuntimeInfo info = new MonoRuntimeInfo (dir); + if (info.IsValidRuntime) yield return new MonoTargetRuntime (info); } } else if (Platform.IsMac) { if (!Directory.Exists (MAC_FRAMEWORK_DIR)) yield break; foreach (string dir in Directory.GetDirectories (MAC_FRAMEWORK_DIR)) { - if (dir.EndsWith ("/Current", StringComparison.Ordinal)) + if (dir.EndsWith ("/Current", StringComparison.Ordinal) || currentRuntime.Prefix == dir) continue; - foreach (var info in GetAllArchitecturesOfRuntimes (dir)) { - if (info.Prefix == currentRuntime.Prefix && info.Force64or32bit == currentRuntime.Force64or32bit) - continue; + MonoRuntimeInfo info = new MonoRuntimeInfo (dir); + if (info.IsValidRuntime) yield return new MonoTargetRuntime (info); - } } } else { foreach (string pref in commonLinuxPrefixes) { - foreach (var info in GetAllArchitecturesOfRuntimes (pref)) { - if (info.IsValidRuntime) { - if (currentRuntime != null && currentRuntime.Prefix == pref && currentRuntime.Force64or32bit == info.Force64or32bit) - continue; - // Clean up old registered runtimes - foreach (MonoRuntimeInfo ei in customRuntimes) { - if (ei.Prefix == info.Prefix) { - customRuntimes.Remove (ei); - break; - } + if (currentRuntime != null && currentRuntime.Prefix == pref) + continue; + MonoRuntimeInfo info = new MonoRuntimeInfo (pref); + if (info.IsValidRuntime) { + // Clean up old registered runtimes + foreach (MonoRuntimeInfo ei in customRuntimes) { + if (ei.Prefix == info.Prefix) { + customRuntimes.Remove (ei); + break; } - yield return new MonoTargetRuntime (info); } + yield return new MonoTargetRuntime (info); } } } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/MonoRuntimePanel.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/MonoRuntimePanel.cs index 511320179f..fd70f5f9b0 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/MonoRuntimePanel.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/MonoRuntimePanel.cs @@ -122,13 +122,13 @@ namespace MonoDevelop.Ide.Gui.OptionPanels return Environment.GetFolderPath (IntPtr.Size == 8? Environment.SpecialFolder.ProgramFilesX86 : Environment.SpecialFolder.ProgramFiles); } - + protected virtual void OnButtonAddClicked (object sender, System.EventArgs e) { var dlg = new SelectFolderDialog (GettextCatalog.GetString ("Select the mono installation prefix")) { TransientFor = this.Toplevel as Gtk.Window, }; - + //set a platform-dependent default folder for the dialog if possible if (Platform.IsWindows) { // ProgramFilesX86 is broken on 32-bit WinXP @@ -139,32 +139,17 @@ namespace MonoDevelop.Ide.Gui.OptionPanels if (System.IO.Directory.Exists ("/usr")) dlg.CurrentFolder = "/usr"; } - + if (!dlg.Run ()) return; - - var rinfo64 = new MonoRuntimeInfo (dlg.SelectedFile, true); - var rinfo32 = new MonoRuntimeInfo (dlg.SelectedFile, false); - if (rinfo64.IsValidRuntime && rinfo32.IsValidRuntime) { - newInfos.Add (rinfo64); - store.AppendValues (rinfo64.DisplayName, rinfo64); - newInfos.Add (rinfo32); - store.AppendValues (rinfo32.DisplayName, rinfo32); - } else if (rinfo64.IsValidRuntime) { - newInfos.Add (rinfo64); - store.AppendValues (rinfo64.DisplayName, rinfo64); - } else if (rinfo32.IsValidRuntime) { - newInfos.Add (rinfo32); - store.AppendValues (rinfo32.DisplayName, rinfo32); - } else { - var rinfo = new MonoRuntimeInfo (dlg.SelectedFile, null); - if (rinfo.IsValidRuntime) { - newInfos.Add (rinfo); - store.AppendValues (rinfo.DisplayName, rinfo); - } else { - MessageService.ShowError (GettextCatalog.GetString ("Mono runtime not found"), GettextCatalog.GetString ("Please provide a valid directory prefix where mono is installed (for example, /usr)")); - } + + var rinfo = new MonoRuntimeInfo (dlg.SelectedFile); + if (!rinfo.IsValidRuntime) { + MessageService.ShowError (GettextCatalog.GetString ("Mono runtime not found"), GettextCatalog.GetString ("Please provide a valid directory prefix where mono is installed (for example, /usr)")); + return; } + newInfos.Add (rinfo); + store.AppendValues (rinfo.DisplayName, rinfo); } protected virtual void OnButtonRemoveClicked (object sender, System.EventArgs e) |