Skip to main content
summaryrefslogtreecommitdiffstats
path: root/qt
diff options
context:
space:
mode:
authorDoug Schaefer2017-10-12 19:38:26 +0000
committerDoug Schaefer2017-10-12 20:03:58 +0000
commitaffb599f2490deeba0451367d51bdefe50b1f8e4 (patch)
tree6ad3fd1614351fcf4c16343866942a4b67b6ae59 /qt
parentf2115d3a561529bc13b59c68c0b0d8eec13d48da (diff)
downloadorg.eclipse.cdt-affb599f2490deeba0451367d51bdefe50b1f8e4.tar.gz
org.eclipse.cdt-affb599f2490deeba0451367d51bdefe50b1f8e4.tar.xz
org.eclipse.cdt-affb599f2490deeba0451367d51bdefe50b1f8e4.zip
Allow for changing manually setting toolchains for build configs.
A number of changes that clean up how build configs are done. Now build settings are stored with the build config instead of in launch configs. That makes it less launch bar specific. Add build settings UI to change the toolchain used for a given launch config. Also changed CMake so it's IToolchain based instead of property which doesn't work when multiple IToolchains match. Change-Id: I958d90ede3c1f873ab1530c2b2880808e8f7abef
Diffstat (limited to 'qt')
-rw-r--r--qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/build/QtBuildConfiguration.java4
-rw-r--r--qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/internal/qt/ui/Activator.java4
-rw-r--r--qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/internal/qt/ui/launch/QtBuildTab.java71
3 files changed, 35 insertions, 44 deletions
diff --git a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/build/QtBuildConfiguration.java b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/build/QtBuildConfiguration.java
index ba12633a2c9..3ef3b6983aa 100644
--- a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/build/QtBuildConfiguration.java
+++ b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/build/QtBuildConfiguration.java
@@ -189,7 +189,7 @@ public class QtBuildConfiguration extends CBuildConfiguration
@Override
public String[] getQmakeConfig() {
- String qmakeArgs = getProperties().get(QMAKE_ARGS);
+ String qmakeArgs = getProperty(QMAKE_ARGS);
if (qmakeArgs != null) {
return qmakeArgs.split(" "); //$NON-NLS-1$
}
@@ -447,7 +447,7 @@ public class QtBuildConfiguration extends CBuildConfiguration
}
public String[] getMakeCommand() {
- String buildCommandStr = getProperties().get(BUILD_COMMAND);
+ String buildCommandStr = getProperty(BUILD_COMMAND);
if (buildCommandStr != null) {
String[] buildCommand = buildCommandStr.split(" "); //$NON-NLS-1$
Path command = findCommand(buildCommand[0]);
diff --git a/qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/internal/qt/ui/Activator.java b/qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/internal/qt/ui/Activator.java
index 2f1f20995e5..17e55adb6a2 100644
--- a/qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/internal/qt/ui/Activator.java
+++ b/qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/internal/qt/ui/Activator.java
@@ -118,6 +118,10 @@ public class Activator extends AbstractUIPlugin {
getDefault().getLog().log(new Status(code, PLUGIN_ID, msg, e));
}
+ public static void log(IStatus status) {
+ getDefault().getLog().log(status);
+ }
+
public static <T> T getService(Class<T> service) {
BundleContext context = plugin.getBundle().getBundleContext();
ServiceReference<T> ref = context.getServiceReference(service);
diff --git a/qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/internal/qt/ui/launch/QtBuildTab.java b/qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/internal/qt/ui/launch/QtBuildTab.java
index 7430c6cf653..e03995a7080 100644
--- a/qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/internal/qt/ui/launch/QtBuildTab.java
+++ b/qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/internal/qt/ui/launch/QtBuildTab.java
@@ -8,12 +8,10 @@
package org.eclipse.cdt.internal.qt.ui.launch;
import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import org.eclipse.cdt.core.build.ICBuildConfiguration;
import org.eclipse.cdt.core.build.IToolChain;
import org.eclipse.cdt.core.build.IToolChainManager;
-import org.eclipse.cdt.debug.core.launch.CoreBuildLaunchConfigDelegate;
import org.eclipse.cdt.internal.qt.core.build.QtBuildConfiguration;
import org.eclipse.cdt.internal.qt.ui.Activator;
import org.eclipse.cdt.internal.qt.ui.Messages;
@@ -34,9 +32,9 @@ import org.eclipse.swt.widgets.Text;
public class QtBuildTab extends CommonBuildTab {
- Combo qmakeCombo;
- Text qmakeArgsText;
- Text buildCmdText;
+ private Combo qmakeCombo;
+ private Text qmakeArgsText;
+ private Text buildCmdText;
@Override
public void createControl(Composite parent) {
@@ -64,38 +62,15 @@ public class QtBuildTab extends CommonBuildTab {
}
@Override
- public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
- try {
- String mode = getLaunchConfigurationDialog().getMode();
- configuration.setAttribute(CoreBuildLaunchConfigDelegate.getBuildAttributeName(mode),
- getBuildConfiguration(configuration).getDefaultProperties());
- } catch (CoreException e) {
- Activator.log(e);
- }
- }
-
- private Map<String, String> getProperties(ILaunchConfiguration configuration) throws CoreException {
- String mode = getLaunchConfigurationDialog().getMode();
- Map<String, String> properties = configuration
- .getAttribute(CoreBuildLaunchConfigDelegate.getBuildAttributeName(mode), new HashMap<>());
- if (properties.isEmpty()) {
- properties = getBuildConfiguration(configuration).getProperties();
- }
-
- return properties;
- }
-
- @Override
public void initializeFrom(ILaunchConfiguration configuration) {
try {
- Map<String, String> properties = getProperties(configuration);
-
+ ICBuildConfiguration buildConfig = getBuildConfiguration();
// qmake command
IToolChainManager tcManager = Activator.getService(IToolChainManager.class);
IQtInstallManager qtManager = Activator.getService(IQtInstallManager.class);
ILaunchTarget target = getLaunchTarget();
- String qmakeCmd = properties.get(QtBuildConfiguration.QMAKE_COMMAND);
+ String qmakeCmd = buildConfig.getProperty(QtBuildConfiguration.QMAKE_COMMAND);
qmakeCombo.removeAll();
Collection<IToolChain> toolChains = tcManager.getToolChainsMatching(target.getAttributes());
int select = -1;
@@ -116,13 +91,13 @@ public class QtBuildTab extends CommonBuildTab {
}
// qmake args
- String qmakeArgs = properties.get(QtBuildConfiguration.QMAKE_ARGS);
+ String qmakeArgs = buildConfig.getProperty(QtBuildConfiguration.QMAKE_ARGS);
if (qmakeArgs != null) {
qmakeArgsText.setText(qmakeArgs);
}
// build command
- String buildCommand = properties.get(QtBuildConfiguration.BUILD_COMMAND);
+ String buildCommand = buildConfig.getProperty(QtBuildConfiguration.BUILD_COMMAND);
if (buildCommand != null) {
buildCmdText.setText(buildCommand);
}
@@ -132,17 +107,29 @@ public class QtBuildTab extends CommonBuildTab {
}
@Override
+ public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
+ ICBuildConfiguration buildConfig = getBuildConfiguration();
+ buildConfig.removeProperty(QtBuildConfiguration.QMAKE_ARGS);
+ buildConfig.removeProperty(QtBuildConfiguration.BUILD_COMMAND);
+ }
+
+ @Override
public void performApply(ILaunchConfigurationWorkingCopy configuration) {
- try {
- Map<String, String> properties = new HashMap<>(getProperties(configuration));
- properties.put(QtBuildConfiguration.QMAKE_COMMAND, qmakeCombo.getItem(qmakeCombo.getSelectionIndex()));
- properties.put(QtBuildConfiguration.QMAKE_ARGS, qmakeArgsText.getText().trim());
- properties.put(QtBuildConfiguration.BUILD_COMMAND, buildCmdText.getText().trim());
+ ICBuildConfiguration buildConfig = getBuildConfiguration();
+ buildConfig.setProperty(QtBuildConfiguration.QMAKE_COMMAND, qmakeCombo.getItem(qmakeCombo.getSelectionIndex()));
+
+ String qmakeArgs = qmakeArgsText.getText().trim();
+ if (qmakeArgs.isEmpty()) {
+ buildConfig.removeProperty(QtBuildConfiguration.QMAKE_ARGS);
+ } else {
+ buildConfig.setProperty(QtBuildConfiguration.QMAKE_ARGS, qmakeArgs);
+ }
- String mode = getLaunchBarLaunchConfigDialog().getMode();
- configuration.setAttribute(CoreBuildLaunchConfigDelegate.getBuildAttributeName(mode), properties);
- } catch (CoreException e) {
- Activator.log(e);
+ String buildCmd = buildCmdText.getText().trim();
+ if (buildCmd.isEmpty()) {
+ buildConfig.removeProperty(QtBuildConfiguration.BUILD_COMMAND);
+ } else {
+ buildConfig.setProperty(QtBuildConfiguration.BUILD_COMMAND, buildCmd);
}
}

Back to the top