Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Gvozdev2013-03-11 16:24:29 +0000
committerAndrew Gvozdev2013-03-11 16:29:22 +0000
commitaed09ee4b8bdf2110254ae1e6e84ebd4a5d8e804 (patch)
tree4ec109998d9a8cc9ebcbaeaadd4b40a3ab051066 /build/org.eclipse.cdt.managedbuilder.core
parent147e2efc706ef7459d605bca8fe9f7499b07ea91 (diff)
downloadorg.eclipse.cdt-aed09ee4b8bdf2110254ae1e6e84ebd4a5d8e804.tar.gz
org.eclipse.cdt-aed09ee4b8bdf2110254ae1e6e84ebd4a5d8e804.tar.xz
org.eclipse.cdt-aed09ee4b8bdf2110254ae1e6e84ebd4a5d8e804.zip
bug 357442: A bit more of tidy EnvironmentVariableManagerToolChain
Diffstat (limited to 'build/org.eclipse.cdt.managedbuilder.core')
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableManagerToolChain.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableManagerToolChain.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableManagerToolChain.java
index 451b6918fbb..e5d52a004fb 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableManagerToolChain.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableManagerToolChain.java
@@ -12,11 +12,13 @@ package org.eclipse.cdt.managedbuilder.internal.envvar;
import org.eclipse.cdt.core.cdtvariables.ICdtVariable;
import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
+import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
import org.eclipse.cdt.internal.core.cdtvariables.CdtVariableManager;
import org.eclipse.cdt.internal.core.cdtvariables.ICoreVariableContextInfo;
import org.eclipse.cdt.internal.core.envvar.EnvironmentVariableManager;
import org.eclipse.cdt.internal.core.envvar.ICoreEnvironmentVariableSupplier;
import org.eclipse.cdt.internal.core.envvar.IEnvironmentContextInfo;
+import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.core.IToolChain;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier;
@@ -27,14 +29,17 @@ import org.eclipse.cdt.utils.cdtvariables.IVariableContextInfo;
/**
* Helper class to resolve environment variables directly from toolchain. The intention is
* to use that in New Project Wizard and other scenarios when no configuration is available yet.
- *
+ *
* @noextend This class is not intended to be subclassed by clients.
*/
public class EnvironmentVariableManagerToolChain extends EnvironmentVariableManager {
private final IToolChain toolChain;
+ private final ICConfigurationDescription cfgDescription;
public EnvironmentVariableManagerToolChain(IToolChain toolchain) {
this.toolChain = toolchain;
+ IConfiguration cfg = toolChain.getParent();
+ cfgDescription = cfg != null ? ManagedBuildManager.getDescriptionForConfiguration(cfg) : null;
}
/**
@@ -154,6 +159,11 @@ public class EnvironmentVariableManagerToolChain extends EnvironmentVariableMana
*/
@Override
public IEnvironmentContextInfo getContextInfo(Object level) {
+ if (cfgDescription != null) {
+ // Use regular EnvironmentVariableManager when configuration is available
+ return super.getContextInfo(level);
+ }
+
return new ToolChainEnvironmentContextInfo(toolChain);
}
@@ -162,7 +172,15 @@ public class EnvironmentVariableManagerToolChain extends EnvironmentVariableMana
*/
@Override
public ICoreVariableContextInfo getMacroContextInfoForContext(Object context) {
+ if (cfgDescription != null) {
+ // Use regular EnvironmentVariableManager when configuration is available
+ return super.getMacroContextInfoForContext(context);
+ }
+
return new ToolChainCoreVariableContextInfo(toolChain);
}
+ public IEnvironmentVariable getVariable(String variableName, boolean resolveMacros) {
+ return getVariable(variableName, cfgDescription, resolveMacros);
+ }
}

Back to the top