From c11c8658f91e751b5ed00724083d0493effe6e22 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Tue, 6 Jan 2009 20:30:28 +0000 Subject: [PATCH] Can now specify target CPU when compiling Python applications. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@3743 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Resources/CompilingOptionsPanel.xfrm | 33 ++++++++++++++----- .../Project/Src/CompilingOptionsPanel.cs | 11 +++++++ .../Test/CompilingOptionsPanelTestFixture.cs | 12 +++++++ .../Utils/DerivedCompilingOptionsPanel.cs | 14 ++++++++ .../ProjectOptions/AbstractBuildOptions.cs | 11 +++++-- 5 files changed, 71 insertions(+), 10 deletions(-) diff --git a/src/AddIns/BackendBindings/Python/PythonBinding/Project/Resources/CompilingOptionsPanel.xfrm b/src/AddIns/BackendBindings/Python/PythonBinding/Project/Resources/CompilingOptionsPanel.xfrm index bfc0a42753..c972ec65db 100644 --- a/src/AddIns/BackendBindings/Python/PythonBinding/Project/Resources/CompilingOptionsPanel.xfrm +++ b/src/AddIns/BackendBindings/Python/PythonBinding/Project/Resources/CompilingOptionsPanel.xfrm @@ -8,17 +8,34 @@ - + + + + + + + + + + + + + + + + + + - + - + @@ -26,29 +43,29 @@ - - + + - + - + - + \ No newline at end of file diff --git a/src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/CompilingOptionsPanel.cs b/src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/CompilingOptionsPanel.cs index e5b3739135..3d97e47828 100644 --- a/src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/CompilingOptionsPanel.cs +++ b/src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/CompilingOptionsPanel.cs @@ -28,6 +28,9 @@ namespace ICSharpCode.PythonBinding b = BindBoolean("debugInfoCheckBox", "DebugInfo", false); CreateLocationButton(b, "debugInfoCheckBox"); + + b = CreatePlatformTargetComboBox(); + CreateLocationButton(b, "targetCpuComboBox"); AddConfigurationSelector(this); } @@ -82,5 +85,13 @@ namespace ICSharpCode.PythonBinding { helper.AddConfigurationSelector(control); } + + /// + /// Creates the platform target combo box. + /// + protected virtual ConfigurationGuiBinding CreatePlatformTargetComboBox() + { + return base.CreatePlatformTarget(); + } } } diff --git a/src/AddIns/BackendBindings/Python/PythonBinding/Test/CompilingOptionsPanelTestFixture.cs b/src/AddIns/BackendBindings/Python/PythonBinding/Test/CompilingOptionsPanelTestFixture.cs index 4b0c34bcaa..e2c174716a 100644 --- a/src/AddIns/BackendBindings/Python/PythonBinding/Test/CompilingOptionsPanelTestFixture.cs +++ b/src/AddIns/BackendBindings/Python/PythonBinding/Test/CompilingOptionsPanelTestFixture.cs @@ -117,6 +117,18 @@ namespace PythonBinding.Tests Assert.IsTrue(compilingOptionsPanel.ConfigurationSelectorAddedToControl); } + [Test] + public void TargetCpuComboxBoxAdded() + { + Assert.IsTrue(compilingOptionsPanel.IsTargetCpuComboBoxCreated); + } + + [Test] + public void TargetCpuComboxBoxLocationButtonCreated() + { + Assert.IsTrue(compilingOptionsPanel.IsLocationButtonCreated("targetCpuComboBox")); + } + BrowseFolderButtonInfo GetOutputPathBrowseFolderInfo() { return compilingOptionsPanel.GetBrowseFolderButtonInfo("outputPathBrowseButton"); diff --git a/src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DerivedCompilingOptionsPanel.cs b/src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DerivedCompilingOptionsPanel.cs index 0473085207..4ba740cc07 100644 --- a/src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DerivedCompilingOptionsPanel.cs +++ b/src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DerivedCompilingOptionsPanel.cs @@ -28,6 +28,7 @@ namespace PythonBinding.Tests.Utils Dictionary boundTextEditModes = new Dictionary(); List locationButtonsCreated = new List(); Dictionary browseFolderButtons = new Dictionary(); + bool createdTargetCpuComboBox; public DerivedCompilingOptionsPanel() { @@ -45,6 +46,13 @@ namespace PythonBinding.Tests.Utils get { return setupFromManifestResourceName; } } + /// + /// Returns whether the target cpu combo box was created. + /// + public bool IsTargetCpuComboBoxCreated { + get { return createdTargetCpuComboBox; } + } + /// /// Gets the name of the control that was bound to the specified /// property. @@ -142,6 +150,12 @@ namespace PythonBinding.Tests.Utils return base.CreateLocationButton(binding, controlName); } + protected override ConfigurationGuiBinding CreatePlatformTargetComboBox() + { + createdTargetCpuComboBox = true; + return base.CreatePlatformTargetComboBox(); + } + /// /// Connects the browse folder button control to the target control. /// diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/AbstractBuildOptions.cs b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/AbstractBuildOptions.cs index 8ea3a4b7ed..fd52f30e34 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/AbstractBuildOptions.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/AbstractBuildOptions.cs @@ -197,6 +197,13 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels b.DefaultLocation = PropertyStorageLocations.PlatformSpecific; b.RegisterLocationButton(advancedLocationButton); + b = CreatePlatformTarget(); + b.RegisterLocationButton(advancedLocationButton); + } + + protected ConfigurationGuiBinding CreatePlatformTarget() + { + ConfigurationGuiBinding b; b = helper.BindStringEnum("targetCpuComboBox", "PlatformTarget", "AnyCPU", new StringPair("AnyCPU", "${res:Dialog.ProjectOptions.Build.TargetCPU.Any}"), @@ -204,9 +211,9 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels new StringPair("x64", "${res:Dialog.ProjectOptions.Build.TargetCPU.x64}"), new StringPair("Itanium", "${res:Dialog.ProjectOptions.Build.TargetCPU.Itanium}")); b.DefaultLocation = PropertyStorageLocations.PlatformSpecific; - b.RegisterLocationButton(advancedLocationButton); + return b; } - + void DebugSymbolsLoaded(object sender, EventArgs e) { PropertyStorageLocations location;