mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-03-28 14:56:28 +01:00
Launchbar build button always starts a build. (#812)
Fixed the problem that the LaunchBar build button was not working when auto build was disabled in the launch configuration. Fixes #765
This commit is contained in:
parent
efbba15eab
commit
19a809d3e5
2 changed files with 13 additions and 3 deletions
|
@ -9,7 +9,8 @@ Require-Bundle: org.eclipse.core.runtime,
|
||||||
org.eclipse.ui,
|
org.eclipse.ui,
|
||||||
org.eclipse.ui.ide,
|
org.eclipse.ui.ide,
|
||||||
org.eclipse.debug.ui,
|
org.eclipse.debug.ui,
|
||||||
org.eclipse.launchbar.core
|
org.eclipse.launchbar.core,
|
||||||
|
org.eclipse.cdt.debug.core;bundle-version="8.8.400"
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-17
|
Bundle-RequiredExecutionEnvironment: JavaSE-17
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
Bundle-Localization: plugin
|
Bundle-Localization: plugin
|
||||||
|
|
|
@ -18,6 +18,7 @@ import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
|
||||||
import org.eclipse.core.commands.AbstractHandler;
|
import org.eclipse.core.commands.AbstractHandler;
|
||||||
import org.eclipse.core.commands.ExecutionEvent;
|
import org.eclipse.core.commands.ExecutionEvent;
|
||||||
import org.eclipse.core.commands.ExecutionException;
|
import org.eclipse.core.commands.ExecutionException;
|
||||||
|
@ -33,6 +34,7 @@ import org.eclipse.core.runtime.IStatus;
|
||||||
import org.eclipse.core.runtime.Status;
|
import org.eclipse.core.runtime.Status;
|
||||||
import org.eclipse.core.runtime.jobs.Job;
|
import org.eclipse.core.runtime.jobs.Job;
|
||||||
import org.eclipse.debug.core.ILaunchConfiguration;
|
import org.eclipse.debug.core.ILaunchConfiguration;
|
||||||
|
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
|
||||||
import org.eclipse.debug.core.ILaunchDelegate;
|
import org.eclipse.debug.core.ILaunchDelegate;
|
||||||
import org.eclipse.debug.core.ILaunchMode;
|
import org.eclipse.debug.core.ILaunchMode;
|
||||||
import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
|
import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
|
||||||
|
@ -100,6 +102,12 @@ public class BuildActiveCommandHandler extends AbstractHandler {
|
||||||
if (delegate == null)
|
if (delegate == null)
|
||||||
delegate = config.getType().getDelegates(modes)[0];
|
delegate = config.getType().getDelegates(modes)[0];
|
||||||
ILaunchConfigurationDelegate configDel = delegate.getDelegate();
|
ILaunchConfigurationDelegate configDel = delegate.getDelegate();
|
||||||
|
/* This build is started manually by pressing the LaunchBar build button.
|
||||||
|
* Always build, regardless if auto build is disabled in the launch configuration.
|
||||||
|
*/
|
||||||
|
ILaunchConfigurationWorkingCopy configCopy = config.copy(config.getName() + "Copy"); //$NON-NLS-1$
|
||||||
|
configCopy.setAttribute(ICDTLaunchConfigurationConstants.ATTR_BUILD_BEFORE_LAUNCH,
|
||||||
|
ICDTLaunchConfigurationConstants.BUILD_BEFORE_LAUNCH_ENABLED);
|
||||||
if (configDel instanceof ILaunchConfigurationTargetedDelegate) {
|
if (configDel instanceof ILaunchConfigurationTargetedDelegate) {
|
||||||
ILaunchConfigurationTargetedDelegate configDel2 = (ILaunchConfigurationTargetedDelegate) configDel;
|
ILaunchConfigurationTargetedDelegate configDel2 = (ILaunchConfigurationTargetedDelegate) configDel;
|
||||||
boolean ret;
|
boolean ret;
|
||||||
|
@ -107,7 +115,7 @@ public class BuildActiveCommandHandler extends AbstractHandler {
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
return Status.CANCEL_STATUS;
|
return Status.CANCEL_STATUS;
|
||||||
}
|
}
|
||||||
if (!configDel2.buildForLaunch(config, mode, target, monitor)) {
|
if (!configDel2.buildForLaunch(configCopy, mode, target, monitor)) {
|
||||||
return Status.OK_STATUS;
|
return Status.OK_STATUS;
|
||||||
}
|
}
|
||||||
} else if (configDel instanceof ILaunchConfigurationDelegate2) {
|
} else if (configDel instanceof ILaunchConfigurationDelegate2) {
|
||||||
|
@ -117,7 +125,8 @@ public class BuildActiveCommandHandler extends AbstractHandler {
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
return Status.CANCEL_STATUS;
|
return Status.CANCEL_STATUS;
|
||||||
}
|
}
|
||||||
if (!configDel2.buildForLaunch(config, mode, monitor)) {
|
|
||||||
|
if (!configDel2.buildForLaunch(configCopy, mode, monitor)) {
|
||||||
return Status.OK_STATUS;
|
return Status.OK_STATUS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue