diff options
Diffstat (limited to 'org.rtems.cdt.toolchain2/org/rtems/cdt/build/EnvironmentSupplier.java')
-rw-r--r-- | org.rtems.cdt.toolchain2/org/rtems/cdt/build/EnvironmentSupplier.java | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/EnvironmentSupplier.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/EnvironmentSupplier.java index 2099038..acde119 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/EnvironmentSupplier.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/EnvironmentSupplier.java @@ -13,38 +13,43 @@ package org.rtems.cdt.build; import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.cdt.managedbuilder.core.IManagedProject; +import org.eclipse.cdt.managedbuilder.core.IConfiguration; import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable; +import org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier; import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider; -import org.eclipse.cdt.managedbuilder.envvar.IProjectEnvironmentVariableSupplier; import org.eclipse.cdt.managedbuilder.internal.envvar.BuildEnvVar; import org.rtems.cdt.Constants; import org.rtems.cdt.Storage; -public class EnvironmentSupplier implements IProjectEnvironmentVariableSupplier { +public class EnvironmentSupplier implements IConfigurationEnvironmentVariableSupplier { private static final int PATH_INDEX = 0; private static final int VARIABLE_COUNT = 1; + + protected String getPlatform() { + return Constants.PLATFORM_DEFAULT; + } - public IBuildEnvironmentVariable getVariable( String name, IManagedProject project, IEnvironmentVariableProvider provider) { + public IBuildEnvironmentVariable getVariable( String name, IConfiguration configuration, IEnvironmentVariableProvider provider) { if (name.equals( "PATH")) { - IPath path = new Path( - Storage.getProperty( (IProject) project.getOwner(), Constants.BASE_PATH_KEY) - ); - path = path.append( "bin"); + IProject project = (IProject) configuration.getOwner(); + + // Change platform + Storage.changePlatform( project, getPlatform()); + + // Get path parts + String part = Storage.getProperty( project, Constants.PATH_PREPEND_KEY); - return new BuildEnvVar( name, path.toOSString(), IBuildEnvironmentVariable.ENVVAR_PREPEND, Constants.PATH_SEPERATOR); + return new BuildEnvVar( name, part, IBuildEnvironmentVariable.ENVVAR_PREPEND, Constants.PATH_SEPARATOR); } return null; } - public IBuildEnvironmentVariable [] getVariables( IManagedProject project, IEnvironmentVariableProvider provider) { + public IBuildEnvironmentVariable [] getVariables( IConfiguration configuration, IEnvironmentVariableProvider provider) { IBuildEnvironmentVariable variables [] = new IBuildEnvironmentVariable [VARIABLE_COUNT]; - variables [PATH_INDEX] = getVariable( "PATH", project, provider); + variables [PATH_INDEX] = getVariable( "PATH", configuration, provider); return variables; } |