Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Schaefer2016-11-11 18:10:16 +0000
committerGerrit Code Review @ Eclipse.org2016-11-11 21:24:40 +0000
commit03051c91ab83ac8f532fb0cbea256449b76a6f1b (patch)
treead559c8d9247917a233abf795abed1b049612378 /launch/org.eclipse.cdt.launch
parentc31b45b5ccb46371b60972992b6a220843be1200 (diff)
downloadorg.eclipse.cdt-03051c91ab83ac8f532fb0cbea256449b76a6f1b.tar.gz
org.eclipse.cdt-03051c91ab83ac8f532fb0cbea256449b76a6f1b.tar.xz
org.eclipse.cdt-03051c91ab83ac8f532fb0cbea256449b76a6f1b.zip
Implement Qt build tab for the launch config dialog.
Make sure Core Build handles the properties set by these tabs correctly. A bunch of string externalization too. Change-Id: I54a61b4d2520a0952c43608169747e792826062e
Diffstat (limited to 'launch/org.eclipse.cdt.launch')
-rw-r--r--launch/org.eclipse.cdt.launch/META-INF/MANIFEST.MF8
-rw-r--r--launch/org.eclipse.cdt.launch/plugin.xml2
-rw-r--r--launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.java2
-rw-r--r--launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.properties2
-rw-r--r--launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchUIPlugin.java8
-rw-r--r--launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CommonBuildTab.java55
-rw-r--r--launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CoreBuildTab.java11
7 files changed, 83 insertions, 5 deletions
diff --git a/launch/org.eclipse.cdt.launch/META-INF/MANIFEST.MF b/launch/org.eclipse.cdt.launch/META-INF/MANIFEST.MF
index a3661afac97..731ca773c56 100644
--- a/launch/org.eclipse.cdt.launch/META-INF/MANIFEST.MF
+++ b/launch/org.eclipse.cdt.launch/META-INF/MANIFEST.MF
@@ -8,9 +8,11 @@ Bundle-Vendor: %providerName
Bundle-Localization: plugin
Export-Package: org.eclipse.cdt.launch,
org.eclipse.cdt.launch.internal;x-internal:=true,
+ org.eclipse.cdt.launch.internal.corebuild;x-internal:=true,
org.eclipse.cdt.launch.internal.refactoring;x-internal:=true,
org.eclipse.cdt.launch.internal.ui;x-friends:="org.eclipse.cdt.debug.edc.ui",
- org.eclipse.cdt.launch.ui
+ org.eclipse.cdt.launch.ui,
+ org.eclipse.cdt.launch.ui.corebuild
Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
org.eclipse.core.expressions;bundle-version="[3.2.0,4.0.0)",
org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
@@ -23,7 +25,9 @@ Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
org.eclipse.cdt.debug.ui;bundle-version="[7.0.0,9.0.0)",
org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
org.eclipse.core.variables;bundle-version="[3.1.100,4.0.0)",
- org.eclipse.ltk.core.refactoring;bundle-version="[3.5.0,4.0.0)"
+ org.eclipse.ltk.core.refactoring;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.launchbar.ui;bundle-version="2.1.0",
+ org.eclipse.launchbar.core;bundle-version="2.1.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: com.ibm.icu.text
diff --git a/launch/org.eclipse.cdt.launch/plugin.xml b/launch/org.eclipse.cdt.launch/plugin.xml
index fb521cdfd42..9fb7db2cad8 100644
--- a/launch/org.eclipse.cdt.launch/plugin.xml
+++ b/launch/org.eclipse.cdt.launch/plugin.xml
@@ -147,7 +147,7 @@
<launchConfigurationTabGroup
class="org.eclipse.cdt.launch.internal.corebuild.LocalLaunchConfigurationTabGroup"
id="org.eclipse.cdt.launch.launchConfigurationTabGroup.local"
- type="org.eclipse.cdt.debug.core.localLaunchConfigurationType">
+ type="org.eclipse.cdt.debug.core.localCoreBuildLaunchConfigType">
</launchConfigurationTabGroup>
</extension>
</plugin>
diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.java
index d9216df2633..0b3e4a846a7 100644
--- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.java
+++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.java
@@ -46,6 +46,8 @@ public class LaunchMessages extends NLS {
public static String LocalAttachLaunchDelegate_Platform_cannot_list_processes;
public static String LocalAttachLaunchDelegate_Select_Process_to_attach_debugger_to;
public static String LocalAttachLaunchDelegate_CDT_Launch_Error;
+ public static String CoreBuildTab_Build;
+ public static String CoreBuildTab_NoOptions;
public static String CoreFileLaunchDelegate_Launching_postmortem_debugger;
public static String CoreFileLaunchDelegate_No_Corefile_selected;
public static String CoreFileLaunchDelegate_No_Shell_available_in_Launch;
diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.properties b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.properties
index 26073b4d391..ef0d62cea5c 100644
--- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.properties
+++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchMessages.properties
@@ -49,6 +49,8 @@ LocalAttachLaunchDelegate_Platform_cannot_list_processes=Current platform does n
LocalAttachLaunchDelegate_Select_Process_to_attach_debugger_to=Select a Process to attach debugger to:
LocalAttachLaunchDelegate_CDT_Launch_Error=CDT Launch Error
+CoreBuildTab_Build=Build
+CoreBuildTab_NoOptions=No build options required.
CoreFileLaunchDelegate_Launching_postmortem_debugger=Launching postmortem debugger
CoreFileLaunchDelegate_No_Corefile_selected=No Corefile selected
CoreFileLaunchDelegate_No_Shell_available_in_Launch=No Shell available in Launch
diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchUIPlugin.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchUIPlugin.java
index 55a0b2bed6c..d9c1aca5f31 100644
--- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchUIPlugin.java
+++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchUIPlugin.java
@@ -23,6 +23,7 @@ import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
public class LaunchUIPlugin extends AbstractUIPlugin implements ILaunchesListener2 {
@@ -226,4 +227,11 @@ public class LaunchUIPlugin extends AbstractUIPlugin implements ILaunchesListene
}
}
}
+
+ public static <T> T getService(Class<T> service) {
+ BundleContext context = fgPlugin.getBundle().getBundleContext();
+ ServiceReference<T> ref = context.getServiceReference(service);
+ return ref != null ? context.getService(ref) : null;
+ }
+
}
diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CommonBuildTab.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CommonBuildTab.java
new file mode 100644
index 00000000000..c7b79e6c49e
--- /dev/null
+++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CommonBuildTab.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2016 QNX Software Systems and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+package org.eclipse.cdt.launch.ui.corebuild;
+
+import java.util.Map;
+
+import org.eclipse.cdt.core.build.ICBuildConfiguration;
+import org.eclipse.cdt.core.build.ICBuildConfigurationManager;
+import org.eclipse.cdt.debug.core.launch.CoreBuildLaunchConfigDelegate;
+import org.eclipse.cdt.launch.internal.ui.LaunchUIPlugin;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
+import org.eclipse.debug.ui.ILaunchConfigurationDialog;
+import org.eclipse.launchbar.core.target.ILaunchTarget;
+import org.eclipse.launchbar.ui.ILaunchBarLaunchConfigDialog;
+
+/**
+ * Common utilities for Core Build launch configuration tabs.
+ *
+ * @since 9.1
+ */
+public abstract class CommonBuildTab extends AbstractLaunchConfigurationTab {
+
+ public ILaunchBarLaunchConfigDialog getLaunchBarLaunchConfigDialog() {
+ ILaunchConfigurationDialog dialog = getLaunchConfigurationDialog();
+ return dialog instanceof ILaunchBarLaunchConfigDialog ? (ILaunchBarLaunchConfigDialog) dialog : null;
+ }
+
+ public ILaunchTarget getLaunchTarget() {
+ ILaunchBarLaunchConfigDialog dialog = getLaunchBarLaunchConfigDialog();
+ return dialog != null ? dialog.getLaunchTarget() : null;
+ }
+
+ public ICBuildConfiguration getBuildConfiguration(ILaunchConfiguration configuration) throws CoreException {
+ String mode = getLaunchConfigurationDialog().getMode();
+ ILaunchTarget target = getLaunchTarget();
+ if (target == null) {
+ return null;
+ }
+
+ ICBuildConfigurationManager bcManager = LaunchUIPlugin.getService(ICBuildConfigurationManager.class);
+ IProject project = CoreBuildLaunchConfigDelegate.getProject(configuration);
+ Map<String, String> properties = target.getAttributes();
+ return bcManager.getBuildConfiguration(project, properties, mode, new NullProgressMonitor());
+ }
+
+}
diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CoreBuildTab.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CoreBuildTab.java
index 2607c6e773d..af286f2faf1 100644
--- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CoreBuildTab.java
+++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/corebuild/CoreBuildTab.java
@@ -7,6 +7,7 @@
*******************************************************************************/
package org.eclipse.cdt.launch.ui.corebuild;
+import org.eclipse.cdt.launch.internal.ui.LaunchMessages;
import org.eclipse.cdt.launch.internal.ui.LaunchUIPlugin;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
@@ -26,6 +27,12 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
+/**
+ * Launch configuration tab for adjusting Core Build settings. Contents of tab depends on the nature
+ * of the project which determines what build system is being used.
+ *
+ * @since 9.1
+ */
public class CoreBuildTab extends AbstractLaunchConfigurationTab {
private Composite container;
@@ -84,7 +91,7 @@ public class CoreBuildTab extends AbstractLaunchConfigurationTab {
@Override
public String getName() {
- return "Build";
+ return LaunchMessages.CoreBuildTab_Build;
}
private IProject getProject(ILaunchConfiguration configuration) {
@@ -111,7 +118,7 @@ public class CoreBuildTab extends AbstractLaunchConfigurationTab {
comp.setLayout(new GridLayout());
Label label = new Label(comp, SWT.NONE);
- label.setText("No build options required.");
+ label.setText(LaunchMessages.CoreBuildTab_NoOptions);
activeTab = null;
}

Back to the top