Skip to content

Commit c51cecd

Browse files
authored
Support environment variables in Core Build projects for Local (#901)
Added an Environment tab to the Core Build launch configurations for the Local target. Similar as the standard C/C++ Application launch configurations for Managed Build.
1 parent cfe1db7 commit c51cecd

File tree

4 files changed

+17
-4
lines changed

4 files changed

+17
-4
lines changed

debug/org.eclipse.cdt.debug.core/META-INF/MANIFEST.MF

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: %pluginName
44
Bundle-SymbolicName: org.eclipse.cdt.debug.core; singleton:=true
5-
Bundle-Version: 8.8.500.qualifier
5+
Bundle-Version: 8.8.600.qualifier
66
Bundle-Activator: org.eclipse.cdt.debug.core.CDebugCorePlugin
77
Bundle-Vendor: %providerName
88
Bundle-Localization: plugin

debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/launch/CoreBuildLocalRunLaunchDelegate.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
import java.nio.file.Paths;
1616
import java.util.ArrayList;
1717
import java.util.Arrays;
18+
import java.util.HashMap;
1819
import java.util.List;
20+
import java.util.Map;
1921

2022
import org.eclipse.cdt.core.build.ICBuildConfiguration;
2123
import org.eclipse.cdt.core.model.IBinary;
@@ -32,6 +34,7 @@
3234
import org.eclipse.debug.core.DebugPlugin;
3335
import org.eclipse.debug.core.ILaunch;
3436
import org.eclipse.debug.core.ILaunchConfiguration;
37+
import org.eclipse.debug.core.ILaunchManager;
3538
import org.eclipse.launchbar.core.target.ILaunchTarget;
3639
import org.eclipse.launchbar.core.target.launch.ITargetedLaunch;
3740

@@ -65,7 +68,15 @@ public void launch(ILaunchConfiguration configuration, String mode, ILaunch laun
6568
builder.directory(new File(workingDirectory));
6669
}
6770

68-
buildConfig.setBuildEnvironment(builder.environment());
71+
Map<String, String> environment = builder.environment();
72+
Map<String, String> launchEnvironment = configuration
73+
.getAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, new HashMap<>());
74+
if (!configuration.getAttribute(ILaunchManager.ATTR_APPEND_ENVIRONMENT_VARIABLES, true)) {
75+
environment.clear();
76+
}
77+
environment.putAll(launchEnvironment);
78+
79+
buildConfig.setBuildEnvironment(environment);
6980
Process process = builder.start();
7081
DebugPlugin.newProcess(launch, process, exeFile.getPath().lastSegment());
7182
} catch (IOException e) {

launch/org.eclipse.cdt.launch/META-INF/MANIFEST.MF

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: %pluginName
44
Bundle-SymbolicName: org.eclipse.cdt.launch; singleton:=true
5-
Bundle-Version: 10.4.500.qualifier
5+
Bundle-Version: 10.4.600.qualifier
66
Bundle-Activator: org.eclipse.cdt.launch.internal.ui.LaunchUIPlugin
77
Bundle-Vendor: %providerName
88
Bundle-Localization: plugin

launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/corebuild/LocalLaunchConfigurationTabGroup.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.eclipse.cdt.launch.ui.corebuild.CoreBuildMainTab;
1515
import org.eclipse.cdt.launch.ui.corebuild.CoreBuildTab;
1616
import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
17+
import org.eclipse.debug.ui.EnvironmentTab;
1718
import org.eclipse.debug.ui.ILaunchConfigurationDialog;
1819
import org.eclipse.debug.ui.ILaunchConfigurationTab;
1920

@@ -24,8 +25,9 @@ public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
2425
ILaunchConfigurationTab mainTab = new CoreBuildMainTab();
2526
ILaunchConfigurationTab buildTab = new CoreBuildTab();
2627
ILaunchConfigurationTab argumentsTab = new CArgumentsTab();
28+
ILaunchConfigurationTab environmentTab = new EnvironmentTab();
2729

28-
setTabs(new ILaunchConfigurationTab[] { mainTab, buildTab, argumentsTab });
30+
setTabs(new ILaunchConfigurationTab[] { mainTab, buildTab, argumentsTab, environmentTab });
2931
}
3032

3133
}

0 commit comments

Comments
 (0)