diff options
Diffstat (limited to 'debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/launch/CoreBuildLaunchConfigDelegate.java')
-rw-r--r-- | debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/launch/CoreBuildLaunchConfigDelegate.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/launch/CoreBuildLaunchConfigDelegate.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/launch/CoreBuildLaunchConfigDelegate.java index 200faa6db42..e255f80cb42 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/launch/CoreBuildLaunchConfigDelegate.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/launch/CoreBuildLaunchConfigDelegate.java @@ -12,7 +12,9 @@ package org.eclipse.cdt.debug.core.launch; import java.util.Collection; import java.util.HashMap; +import java.util.LinkedHashSet; import java.util.Map; +import java.util.Set; import org.eclipse.cdt.core.build.ICBuildConfiguration; import org.eclipse.cdt.core.build.ICBuildConfigurationManager; @@ -22,6 +24,7 @@ import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.IBinary; import org.eclipse.cdt.debug.core.CDebugCorePlugin; import org.eclipse.cdt.debug.internal.core.InternalDebugCoreMessages; +import org.eclipse.core.resources.IBuildConfiguration; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.runtime.CoreException; @@ -143,6 +146,18 @@ public abstract class CoreBuildLaunchConfigDelegate extends LaunchConfigurationT CoreModel m = CoreModel.getDefault(); synchronized (m) { IProjectDescription desc = project.getDescription(); + IBuildConfiguration[] bconfigs = project.getBuildConfigs(); + Set<String> names = new LinkedHashSet<>(); + for (IBuildConfiguration bconfig : bconfigs) { + names.add(bconfig.getName()); + } + // must add default config name as it may not be in build config list + names.add(IBuildConfiguration.DEFAULT_CONFIG_NAME); + // ensure active config is last in list so clean build will clean + // active config last and this will be left in build console for user to see + names.remove(buildConfig.getBuildConfiguration().getName()); + names.add(buildConfig.getBuildConfiguration().getName()); + desc.setActiveBuildConfig(buildConfig.getBuildConfiguration().getName()); project.setDescription(desc, monitor); } |