Fix for Bug 8513.
authorstechong
Thu, 18 Jun 2009 16:52:27 -0500
changeset 273 c2533fd23253
parent 272 897d32e5ad84
child 274 ac3db0995346
Fix for Bug 8513.
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/AttachMainTab.java
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/CarbideMainTab.java
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/EmulationMainTab.java
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/RunModeMainTab.java
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/StopModeMainTab.java
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/AppTRKLaunchWizard.java
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/AttachTRKLaunchWizard.java
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/BuildOptionsSelectionPage.java
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/LaunchCreationWizard.java
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/LaunchWizardHelpIds.java
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/SophiaLaunchWizard.java
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/SystemTRKLaunchWizard.java
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/Trace32LaunchWizard.java
debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/messages.properties
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/AttachMainTab.java	Thu Jun 18 15:26:18 2009 -0500
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/AttachMainTab.java	Thu Jun 18 16:52:27 2009 -0500
@@ -71,7 +71,9 @@
 		createVerticalSpacer(comp, 1);
 		if (wantsTerminalOption() /*&& ProcessFactory.supportesTerminal()*/) {
 			createTerminalOption(comp, 1);
+			createVerticalSpacer(comp, 1);
 		}
+		createBuildOptionGroup(comp, 1);
 	}
 
 	public void setDefaults(ILaunchConfigurationWorkingCopy config) {
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/CarbideMainTab.java	Thu Jun 18 15:26:18 2009 -0500
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/CarbideMainTab.java	Thu Jun 18 16:52:27 2009 -0500
@@ -16,17 +16,8 @@
 */
 package com.nokia.cdt.internal.debug.launch.ui;
 
-import com.nokia.cdt.internal.debug.launch.LaunchPlugin;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.model.ICProject;
-import org.eclipse.cdt.core.settings.model.ICProjectDescription;
-import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
 import org.eclipse.cdt.launch.internal.ui.LaunchMessages;
 import org.eclipse.cdt.launch.ui.CMainTab;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.*;
@@ -80,11 +71,6 @@
 		});
 	}
 
-	protected void updateProgramFromConfig(ILaunchConfiguration config) {
-		if (fProgText != null)
-			super.updateProgramFromConfig(config);
-	}
-
 	@Override
 	public void activated(ILaunchConfigurationWorkingCopy workingCopy) {
 		super.activated(workingCopy);
@@ -92,33 +78,4 @@
 		// forces page to get focus so that help works without having to select some control first.
 		getControl().setFocus();
 	}
-
-	@Override
-	public void performApply(ILaunchConfigurationWorkingCopy config) {
-		ICProject cProject = this.getCProject();
-		if (cProject != null)
-		{
-			config.setMappedResources(new IResource[] { cProject.getProject() });
-			try { // Only initialize the build config ID once.
-				if (config.getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROJECT_BUILD_CONFIG_ID, "").length() == 0)//$NON-NLS-1$
-				{
-					ICProjectDescription projDes = CCorePlugin.getDefault().getProjectDescription(cProject.getProject());
-					if (projDes != null)
-					{
-						String buildConfigID = projDes.getActiveConfiguration().getId();
-						config.setAttribute(ICDTLaunchConfigurationConstants.ATTR_PROJECT_BUILD_CONFIG_ID, buildConfigID);			
-					}				
-				}
-			} catch (CoreException e) { 
-				LaunchPlugin.log(e);
-			}
-		}
-		config.setAttribute(ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, fProjText.getText());
-		if (fProgText != null) {
-			config.setAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME, fProgText.getText());
-		}
-		if (fTerminalButton != null) {
-			config.setAttribute(ICDTLaunchConfigurationConstants.ATTR_USE_TERMINAL, fTerminalButton.getSelection());
-		}
-	}
 }
\ No newline at end of file
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/EmulationMainTab.java	Thu Jun 18 15:26:18 2009 -0500
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/EmulationMainTab.java	Thu Jun 18 16:52:27 2009 -0500
@@ -79,7 +79,9 @@
 		createVerticalSpacer(comp, 1);
 		if (wantsTerminalOption() /*&& ProcessFactory.supportesTerminal()*/) {
 			createTerminalOption(comp, 1);
+			createVerticalSpacer(comp, 1);
 		}
+		createBuildOptionGroup(comp, 1);
 
 		ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_BUILD);
 
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/RunModeMainTab.java	Thu Jun 18 15:26:18 2009 -0500
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/RunModeMainTab.java	Thu Jun 18 16:52:27 2009 -0500
@@ -74,7 +74,7 @@
 		createVerticalSpacer(comp, 1);
 		createProjectGroup(comp, 1);
 		createRemoteAppGroup(comp, 1);
-		
+
 		fProjLabel.setToolTipText(Messages.getString("RunModeMainTab.8")); //$NON-NLS-1$
 		fProjText.setToolTipText(Messages.getString("RunModeMainTab.8")); //$NON-NLS-1$
 
@@ -94,7 +94,9 @@
 		createVerticalSpacer(comp, 1);
 		if (wantsTerminalOption() /*&& ProcessFactory.supportesTerminal()*/) {
 			createTerminalOption(comp, 1);
+			createVerticalSpacer(comp, 1);
 		}
+		createBuildOptionGroup(comp, 1);
 
 		ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_BUILD);
 }
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/StopModeMainTab.java	Thu Jun 18 15:26:18 2009 -0500
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/StopModeMainTab.java	Thu Jun 18 16:52:27 2009 -0500
@@ -50,7 +50,9 @@
 		createVerticalSpacer(comp, 1);
 		if (wantsTerminalOption() /*&& ProcessFactory.supportesTerminal()*/) {
 			createTerminalOption(comp, 1);
+			createVerticalSpacer(comp, 1);
 		}
+		createBuildOptionGroup(comp, 1);
 	}
 
 	public void setDefaults(ILaunchConfigurationWorkingCopy config) {
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/AppTRKLaunchWizard.java	Thu Jun 18 15:26:18 2009 -0500
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/AppTRKLaunchWizard.java	Thu Jun 18 16:52:27 2009 -0500
@@ -29,6 +29,7 @@
 import java.util.List;
 
 public class AppTRKLaunchWizard extends AbstractLaunchWizard {
+    private BuildOptionsSelectionPage fBuildOptionsSelectionPage;
     private TRKConnectionWizardPage fMainPage;
     private TRKSISSelectionWizardPage fSISSelectionPage;
 	private boolean hasFinished = false;
@@ -55,8 +56,10 @@
  
     public void addPages() {
     	super.addPages();
+        fBuildOptionsSelectionPage = new BuildOptionsSelectionPage();
         fMainPage = new TRKConnectionWizardPage(this);
         fSISSelectionPage = new TRKSISSelectionWizardPage(this);
+        addPage(fBuildOptionsSelectionPage);
         addPage(fMainPage);
         addPage(fSISSelectionPage);
 	    addPage(getSummaryPage());
@@ -95,9 +98,8 @@
     			SettingsData.setProcessToLaunch(config, processToLaunchTargetPath);
     		
     		// now let the wizard pages update values 
+    		fBuildOptionsSelectionPage.updateConfiguration(config);
     		fMainPage.updateConfiguration(config);
-    		
-    		// now let the wizard pages update values 
     		fSISSelectionPage.updateConfiguration(config);
 
     	} catch (CoreException e) {
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/AttachTRKLaunchWizard.java	Thu Jun 18 15:26:18 2009 -0500
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/AttachTRKLaunchWizard.java	Thu Jun 18 16:52:27 2009 -0500
@@ -27,6 +27,7 @@
 import com.nokia.cdt.debug.cw.symbian.SettingsData;
 
 public class AttachTRKLaunchWizard extends AbstractLaunchWizard {
+    private BuildOptionsSelectionPage fBuildOptionsSelectionPage;
     private TRKConnectionWizardPage fMainPage;
 	private boolean hasFinished = false;
     
@@ -52,7 +53,9 @@
  
     public void addPages() {
     	super.addPages();
+        fBuildOptionsSelectionPage = new BuildOptionsSelectionPage();
         fMainPage = new TRKConnectionWizardPage(this);
+        addPage(fBuildOptionsSelectionPage);
         addPage(fMainPage);
 	    addPage(getSummaryPage());
    }
@@ -80,8 +83,9 @@
     		SettingsData.setDefaults(config, SettingsData.LaunchConfig_AppTRK, getProject(), mmpPath, exePath);
     		
     		// now let the wizard pages update values 
+    		fBuildOptionsSelectionPage.updateConfiguration(config);
     		fMainPage.updateConfiguration(config);
- 
+
     	} catch (CoreException e) {
 			e.printStackTrace();
 		}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/BuildOptionsSelectionPage.java	Thu Jun 18 16:52:27 2009 -0500
@@ -0,0 +1,132 @@
+/* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+package com.nokia.cdt.internal.debug.launch.wizard;
+
+import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Link;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.dialogs.PreferencesUtil;
+
+/**
+ * A wizard page that handles build options.
+ *
+ */
+public class BuildOptionsSelectionPage extends WizardPage {
+
+	private Button fDisableBuildButton;
+	private Button fEnableBuildButton;
+	private Button fWorkspaceSettingsButton;
+	private Link fWorkpsaceSettingsLink;
+
+	/**
+	 * Constructor.
+	 */
+	public BuildOptionsSelectionPage() {
+		super("BuildOptionsSelectionPage"); //$NON-NLS-1$
+		setTitle(Messages.getString("BuildOptionsSelectionPage.Title")); //$NON-NLS-1$
+		setDescription(Messages.getString("BuildOptionsSelectionPage.Description")); //$NON-NLS-1$
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public void createControl(Composite parent) {
+		final Composite composite = new Composite(parent, SWT.NULL);
+        composite.setLayout(new GridLayout(1, false));
+        composite.setLayoutData(new GridData());
+		setControl(composite);
+
+		Group optionsGroup = new Group(composite, SWT.NONE);
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+		GridLayout gridLayout = new GridLayout();
+		gridLayout.numColumns = 2;
+		gridLayout.marginHeight = 5;
+		gridLayout.marginWidth = 5;
+		gridLayout.makeColumnsEqualWidth= true;
+		optionsGroup.setLayoutData(gridData);
+		optionsGroup.setLayout(gridLayout);
+		optionsGroup.setText(Messages.getString("BuildOptionsSelectionPage.OptionsGroupLabel"));
+
+		fDisableBuildButton = new Button(optionsGroup, SWT.RADIO);
+		fDisableBuildButton.setText(Messages.getString("BuildOptionsSelectionPage.DisableButtonLabel")); //$NON-NLS-1$
+		fDisableBuildButton.setToolTipText(Messages.getString("BuildOptionsSelectionPage.DisableButtonToolTip")); //$NON-NLS-1$
+		new Label(optionsGroup, SWT.NONE);
+		fEnableBuildButton = new Button(optionsGroup, SWT.RADIO);
+		fEnableBuildButton.setText(Messages.getString("BuildOptionsSelectionPage.EnableButtonLabel")); //$NON-NLS-1$
+		fEnableBuildButton.setToolTipText(Messages.getString("BuildOptionsSelectionPage.EnableButtonToolTip")); //$NON-NLS-1$
+		new Label(optionsGroup, SWT.NONE);
+		fWorkspaceSettingsButton = new Button(optionsGroup, SWT.RADIO);
+		fWorkspaceSettingsButton.setText(Messages.getString("BuildOptionsSelectionPage.WorkspaceSettingsButtonLabel")); //$NON-NLS-1$
+		fWorkspaceSettingsButton.setToolTipText(Messages.getString("BuildOptionsSelectionPage.WorkspaceSettingsButtonToolTip")); //$NON-NLS-1$
+		
+		fWorkpsaceSettingsLink = new Link(optionsGroup, SWT.NONE);
+		fWorkpsaceSettingsLink.setText(Messages.getString("BuildOptionsSelectionPage.WorkspaceSettingsLinkLabel")); //$NON-NLS-1$
+		fWorkpsaceSettingsLink.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				PreferencesUtil.createPreferenceDialogOn(
+						composite.getShell(), 
+						Messages.getString("BuildOptionsSelectionPage.WorkspaceSettingsPageID"), //$NON-NLS-1$
+						null, 
+						null).open();
+			}
+		});
+
+		setDefaults();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.DialogPage#performHelp()
+	 */
+	public void performHelp() {
+		PlatformUI.getWorkbench().getHelpSystem().displayHelp(LaunchWizardHelpIds.BUILD_OPTIONS_SELECTION_PAGE);
+	}
+
+    /**
+     * Initialize the default values for this page
+     */
+    public void setDefaults() {
+    	fWorkspaceSettingsButton.setSelection(true);
+    }
+
+	/**
+	 * Copy build option value to the given launch configuration
+	 * @param config - launch configuration provided by caller
+	 */
+    public void updateConfiguration(ILaunchConfigurationWorkingCopy config) {
+		int buildBeforeLaunchValue = ICDTLaunchConfigurationConstants.BUILD_BEFORE_LAUNCH_USE_WORKSPACE_SETTING;
+		if (fDisableBuildButton.getSelection()) {
+			buildBeforeLaunchValue = ICDTLaunchConfigurationConstants.BUILD_BEFORE_LAUNCH_DISABLED;
+		} else if (fEnableBuildButton.getSelection()) {
+			buildBeforeLaunchValue = ICDTLaunchConfigurationConstants.BUILD_BEFORE_LAUNCH_ENABLED;
+		}
+		config.setAttribute(ICDTLaunchConfigurationConstants.ATTR_BUILD_BEFORE_LAUNCH, buildBeforeLaunchValue);
+    }
+
+}
\ No newline at end of file
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/LaunchCreationWizard.java	Thu Jun 18 15:26:18 2009 -0500
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/LaunchCreationWizard.java	Thu Jun 18 16:52:27 2009 -0500
@@ -48,6 +48,7 @@
 	private LaunchWizardSummaryPage fEmulationSummaryPage;
 	private LaunchCategorySelectionPage fCategorySelectionPage;
 	private LaunchWizardSelectionPage fWizardSelectionPage;
+    private BuildOptionsSelectionPage fBuildOptionsSelectionPage;
 	private ILaunchConfigurationWorkingCopy launchConfig;
 	private boolean shouldOpenLaunchDialog;
 	private IProject project;
@@ -67,6 +68,7 @@
 		// otherwise it will be shown as needed by non-emulation wizards
 		if (isEmulation)  {
 			fEmulationSummaryPage = new LaunchWizardSummaryPage(configurationName);
+			fBuildOptionsSelectionPage = new BuildOptionsSelectionPage();
 			Check.checkState(exes.size() > 0);
 			IPath emulatorPath = getEmulatorPathFromExePath(exes.get(0));
 			fBinarySelectionPage = new MainExecutableSelectionWizardPage(mmps, exes, defaultExecutable, true, emulatorPath, emulatorOnly, fEmulationSummaryPage);
@@ -83,7 +85,8 @@
 				Pair<IPath, IPath> exeAndMmp = fBinarySelectionPage.getSelectedExeMmpPair();
 				launchConfig = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType(LaunchPlugin.EMULATION_LAUNCH_TYPE).newInstance(null, configurationName);
 				SettingsData.setDefaults(launchConfig, SettingsData.LaunchConfig_Emulator, project, exeAndMmp.second, exeAndMmp.first);
-		    	IPath processToLaunchTargetPath = fBinarySelectionPage.getProcessToLaunchTargetPath();	
+				fBuildOptionsSelectionPage.updateConfiguration(launchConfig);
+				IPath processToLaunchTargetPath = fBinarySelectionPage.getProcessToLaunchTargetPath();	
 				if (processToLaunchTargetPath != null)
 	    			SettingsData.setProcessToLaunch(launchConfig, processToLaunchTargetPath);
 				shouldOpenLaunchDialog = fEmulationSummaryPage.shouldOpenLaunchConfigurationDialog();
@@ -108,6 +111,7 @@
     public void addPages() {
     	if (fBinarySelectionPage != null) {
     		addPage(fBinarySelectionPage);
+    		addPage(fBuildOptionsSelectionPage);
     		addPage(fEmulationSummaryPage);
     	} 
     	else if (fWizardSelectionPage != null) {
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/LaunchWizardHelpIds.java	Thu Jun 18 15:26:18 2009 -0500
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/LaunchWizardHelpIds.java	Thu Jun 18 16:52:27 2009 -0500
@@ -49,4 +49,5 @@
 
 	public static final String GET_SIS_DIALOG = HelpID_Prefix + "get_sis_info_dialog"; //$NON-NLS-1$
 
+	public static final String BUILD_OPTIONS_SELECTION_PAGE = HelpID_Prefix + "build_options_selection_page"; //$NON-NLS-1$
 }
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/SophiaLaunchWizard.java	Thu Jun 18 15:26:18 2009 -0500
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/SophiaLaunchWizard.java	Thu Jun 18 16:52:27 2009 -0500
@@ -28,6 +28,7 @@
 
 public class SophiaLaunchWizard extends AbstractLaunchWizard {
 
+    private BuildOptionsSelectionPage fBuildOptionsSelectionPage;
     private SophiaWizardPage fSophiaPage;
     private StopModeRomImageWizardPage fRomImgPage;
     
@@ -55,8 +56,10 @@
  
     public void addPages() {
     	super.addPages();
+    	fBuildOptionsSelectionPage = new BuildOptionsSelectionPage();
     	fSophiaPage = new SophiaWizardPage(this);
     	fRomImgPage = new StopModeRomImageWizardPage(this);
+        addPage(fBuildOptionsSelectionPage);
         addPage(fSophiaPage);
         addPage(fRomImgPage);
         addPage(getSummaryPage());
@@ -85,6 +88,7 @@
     		SettingsData.setDefaults(config, SettingsData.LaunchConfig_SophiaSTI, getProject(), mmpPath, exePath);
     		
     		// now let the wizard pages update values 
+    		fBuildOptionsSelectionPage.updateConfiguration(config);
     		fSophiaPage.updateConfiguration(config);
     		fRomImgPage.updateConfiguration(config);
     		
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/SystemTRKLaunchWizard.java	Thu Jun 18 15:26:18 2009 -0500
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/SystemTRKLaunchWizard.java	Thu Jun 18 16:52:27 2009 -0500
@@ -29,6 +29,7 @@
 import java.util.List;
 
 public class SystemTRKLaunchWizard extends AbstractLaunchWizard {
+    private BuildOptionsSelectionPage fBuildOptionsSelectionPage;
     private TRKConnectionWizardPage fMainPage;
 	private boolean hasFinished = false;
 
@@ -54,7 +55,9 @@
  
     public void addPages() {
     	super.addPages();
+        fBuildOptionsSelectionPage = new BuildOptionsSelectionPage();
         fMainPage = new TRKConnectionWizardPage(this);
+        addPage(fBuildOptionsSelectionPage);
         addPage(fMainPage);
         addPage(getSummaryPage());
 	    getBinarySelectionPage().setPathValidator(new IPathValidator() {
@@ -89,6 +92,7 @@
     			SettingsData.setProcessToLaunch(config, processToLaunchTargetPath);
     		
     		// now let the wizard pages update values 
+    		fBuildOptionsSelectionPage.updateConfiguration(config);
     		fMainPage.updateConfiguration(config);
     		
 		} catch (CoreException e) {
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/Trace32LaunchWizard.java	Thu Jun 18 15:26:18 2009 -0500
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/Trace32LaunchWizard.java	Thu Jun 18 16:52:27 2009 -0500
@@ -28,6 +28,7 @@
 
 public class Trace32LaunchWizard extends AbstractLaunchWizard {
 
+    	private BuildOptionsSelectionPage fBuildOptionsSelectionPage;
 	    private Trace32WizardPage fTrace32Page;
 	    private StopModeRomImageWizardPage fRomImgPage;
 	    
@@ -55,8 +56,10 @@
 	 
 	    public void addPages() {
 	    	super.addPages();
+	    	fBuildOptionsSelectionPage = new BuildOptionsSelectionPage();
 	    	fTrace32Page = new Trace32WizardPage(this);
 	    	fRomImgPage = new StopModeRomImageWizardPage(this);
+	        addPage(fBuildOptionsSelectionPage);
 	        addPage(fTrace32Page);
 	        addPage(fRomImgPage);
 	        addPage(getSummaryPage());
@@ -85,6 +88,7 @@
 	    		SettingsData.setDefaults(config, SettingsData.LaunchConfig_Trace32, getProject(), mmpPath, exePath);
 	    		
 	    		// now let the wizard pages update values 
+	    		fBuildOptionsSelectionPage.updateConfiguration(config);
 	    		fTrace32Page.updateConfiguration(config);
 	    		fRomImgPage.updateConfiguration(config);
 	    		
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/messages.properties	Thu Jun 18 15:26:18 2009 -0500
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/messages.properties	Thu Jun 18 16:52:27 2009 -0500
@@ -4,6 +4,17 @@
 AttachTRKLaunchWizard.1=New Attach to Process Launch Configuration
 AttachTRKLaunchWizard.2=Attach to Process Launch Configuration
 AttachTRKLaunchWizard.3=The debugger will attempt to debug a process already running on the phone.
+BuildOptionsSelectionPage.Title=Build Options Selection
+BuildOptionsSelectionPage.Description=Select build options before launching
+BuildOptionsSelectionPage.OptionsGroupLabel=Build (if required) before launching
+BuildOptionsSelectionPage.DisableButtonLabel=Disable auto build
+BuildOptionsSelectionPage.DisableButtonToolTip=Requires manually building project before launching (this may improve launch performance)
+BuildOptionsSelectionPage.EnableButtonLabel=Enable auto build
+BuildOptionsSelectionPage.EnableButtonToolTip=Always build project before launching (this may impact launch performance)
+BuildOptionsSelectionPage.WorkspaceSettingsButtonLabel=Use workspace settings
+BuildOptionsSelectionPage.WorkspaceSettingsButtonToolTip=Use workspace settings
+BuildOptionsSelectionPage.WorkspaceSettingsLinkLabel=<a>Configure Workspace Settings...</a>
+BuildOptionsSelectionPage.WorkspaceSettingsPageID=org.eclipse.debug.ui.LaunchingPreferencePage
 LaunchCreationWizard.0=New Launch Configuration Wizard
 LaunchCategorySelectionPage.title=Launch Categories
 LaunchCategorySelectionPage.description=Select a launch category.