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 /debug/org.eclipse.cdt.debug.core/src
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 'debug/org.eclipse.cdt.debug.core/src')
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/launch/CoreBuildLaunchConfigDelegate.java (renamed from debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/launch/CoreBuildLocalLaunchConfigDelegate.java)22
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/InternalDebugCoreMessages.java2
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/InternalDebugCoreMessages.properties2
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/launch/CoreBuildLocalRunLaunchDelegate.java7
4 files changed, 20 insertions, 13 deletions
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/launch/CoreBuildLocalLaunchConfigDelegate.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/launch/CoreBuildLaunchConfigDelegate.java
index d66bcb7844f..cf8e12788ca 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/launch/CoreBuildLocalLaunchConfigDelegate.java
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/launch/CoreBuildLaunchConfigDelegate.java
@@ -17,7 +17,7 @@ import org.eclipse.cdt.core.build.IToolChain;
import org.eclipse.cdt.core.build.IToolChainManager;
import org.eclipse.cdt.core.model.IBinary;
import org.eclipse.cdt.debug.core.CDebugCorePlugin;
-import org.eclipse.cdt.utils.Platform;
+import org.eclipse.cdt.debug.internal.core.InternalDebugCoreMessages;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.runtime.CoreException;
@@ -33,13 +33,13 @@ import org.eclipse.launchbar.core.target.launch.LaunchConfigurationTargetedDeleg
*
* @since 8.1
*/
-public abstract class CoreBuildLocalLaunchConfigDelegate extends LaunchConfigurationTargetedDelegate {
+public abstract class CoreBuildLaunchConfigDelegate extends LaunchConfigurationTargetedDelegate {
protected ICBuildConfigurationManager configManager = CDebugCorePlugin
.getService(ICBuildConfigurationManager.class);
protected IToolChainManager toolChainManager = CDebugCorePlugin.getService(IToolChainManager.class);
- protected IProject getProject(ILaunchConfiguration configuration) throws CoreException {
+ public static IProject getProject(ILaunchConfiguration configuration) throws CoreException {
// TODO - make sure this is really the correct project
return configuration.getMappedResources()[0].getProject();
}
@@ -48,8 +48,7 @@ public abstract class CoreBuildLocalLaunchConfigDelegate extends LaunchConfigura
IProgressMonitor monitor) throws CoreException {
// Pick build config based on toolchain for target
Map<String, String> properties = new HashMap<>();
- properties.put(IToolChain.ATTR_OS, Platform.getOS());
- properties.put(IToolChain.ATTR_ARCH, Platform.getOSArch());
+ properties.putAll(target.getAttributes());
Collection<IToolChain> tcs = toolChainManager.getToolChainsMatching(properties);
if (!tcs.isEmpty()) {
IToolChain toolChain = tcs.iterator().next();
@@ -69,7 +68,7 @@ public abstract class CoreBuildLocalLaunchConfigDelegate extends LaunchConfigura
}
}
if (exeFile == null) {
- throw new CoreException(new Status(IStatus.ERROR, CDebugCorePlugin.PLUGIN_ID, "No binaries"));
+ throw new CoreException(new Status(IStatus.ERROR, CDebugCorePlugin.PLUGIN_ID, InternalDebugCoreMessages.CoreBuildLaunchConfigDelegate_noBinaries));
}
return exeFile;
}
@@ -82,6 +81,10 @@ public abstract class CoreBuildLocalLaunchConfigDelegate extends LaunchConfigura
return new IProject[] { project };
}
+ public static String getBuildAttributeName(String mode) {
+ return "COREBUILD_" + mode; //$NON-NLS-1$
+ }
+
@Override
public boolean buildForLaunch(ILaunchConfiguration configuration, String mode, ILaunchTarget target,
IProgressMonitor monitor) throws CoreException {
@@ -92,10 +95,9 @@ public abstract class CoreBuildLocalLaunchConfigDelegate extends LaunchConfigura
desc.setActiveBuildConfig(buildConfig.getBuildConfiguration().getName());
project.setDescription(desc, monitor);
- Map<String, String> buildProps = configuration.getAttribute("COREBUILD_" + mode, new HashMap<>()); //$NON-NLS-1$
- if (!buildProps.isEmpty()) {
- buildConfig.setProperties(buildProps);
- }
+ Map<String, String> buildProps = configuration.getAttribute(getBuildAttributeName(mode),
+ buildConfig.getDefaultProperties());
+ buildConfig.setProperties(buildProps);
}
// proceed with the build
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/InternalDebugCoreMessages.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/InternalDebugCoreMessages.java
index 3545d42091b..c5494d95df6 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/InternalDebugCoreMessages.java
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/InternalDebugCoreMessages.java
@@ -27,6 +27,8 @@ public class InternalDebugCoreMessages extends NLS {
public static String CDebugAdapter_0;
public static String CDebugAdapter_1;
public static String CDebugAdapter_Program_file_not_specified;
+ public static String CoreBuildLaunchConfigDelegate_noBinaries;
+ public static String CoreBuildLocalRunLaunchDelegate_ErrorLaunching;
public static String CRegisterManager_0;
public static String CRegisterManager_1;
public static String StringSubstitutionEngine_undefined_variable;
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/InternalDebugCoreMessages.properties b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/InternalDebugCoreMessages.properties
index 959c2572886..8c0130ab937 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/InternalDebugCoreMessages.properties
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/InternalDebugCoreMessages.properties
@@ -21,6 +21,8 @@ DebugConfiguration_0=This debugger no longer supports this operation
CDebugAdapter_0=This debugger does not support debugging external files
CDebugAdapter_1=Debugger Process
CDebugAdapter_Program_file_not_specified=Program file not specified
+CoreBuildLaunchConfigDelegate_noBinaries=No binaries
+CoreBuildLocalRunLaunchDelegate_ErrorLaunching=Error launching
CRegisterManager_0=Unable to restore register groups - invalid memento.
CRegisterManager_1=Unable to restore register groups - expecting register group list element.
StringSubstitutionEngine_undefined_variable=Reference to undefined variable {0}
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/launch/CoreBuildLocalRunLaunchDelegate.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/launch/CoreBuildLocalRunLaunchDelegate.java
index e67fa6d96a9..4ff8b3921c0 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/launch/CoreBuildLocalRunLaunchDelegate.java
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/launch/CoreBuildLocalRunLaunchDelegate.java
@@ -13,7 +13,8 @@ import java.nio.file.Paths;
import org.eclipse.cdt.core.build.ICBuildConfiguration;
import org.eclipse.cdt.core.model.IBinary;
import org.eclipse.cdt.debug.core.CDebugCorePlugin;
-import org.eclipse.cdt.debug.core.launch.CoreBuildLocalLaunchConfigDelegate;
+import org.eclipse.cdt.debug.core.launch.CoreBuildLaunchConfigDelegate;
+import org.eclipse.cdt.debug.internal.core.InternalDebugCoreMessages;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -25,7 +26,7 @@ import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.launchbar.core.target.ILaunchTarget;
import org.eclipse.launchbar.core.target.launch.ITargetedLaunch;
-public class CoreBuildLocalRunLaunchDelegate extends CoreBuildLocalLaunchConfigDelegate {
+public class CoreBuildLocalRunLaunchDelegate extends CoreBuildLaunchConfigDelegate {
@Override
public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor)
@@ -42,7 +43,7 @@ public class CoreBuildLocalRunLaunchDelegate extends CoreBuildLocalLaunchConfigD
Process process = builder.start();
DebugPlugin.newProcess(launch, process, exeFile.getPath().lastSegment());
} catch (IOException e) {
- throw new CoreException(new Status(IStatus.ERROR, CDebugCorePlugin.PLUGIN_ID, "Error launching", e));
+ throw new CoreException(new Status(IStatus.ERROR, CDebugCorePlugin.PLUGIN_ID, InternalDebugCoreMessages.CoreBuildLocalRunLaunchDelegate_ErrorLaunching, e));
}
}

Back to the top