Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] IProjectEnvironmentVariableSupplier problem

Hi Derek,

This seems to be a problem that was already fixed on HEAD some time ago.
Could you try one of the latest CDT nightly builds or sources from HEAD
to see if the problem is gone for you?

Thanks,
Mikhail

>-----Original Message-----
>From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]
On
>Behalf Of subs
>Sent: Friday, September 14, 2007 3:31 PM
>To: CDT General developers list.
>Subject: [cdt-dev] IProjectEnvironmentVariableSupplier problem
>
>Hi,
>
>I have added an IProjectEnvironmentVariableSupplier to my plugin. I am
>adding
>directories to the PATH and to the C_INCLUDE_PATH. My directories are
being
>added succesfully, but there are a couple of strange additions that I
can't
>explain. For project TEST, I end up with two additional 'paths' called:
>TEST/[Ljava.lang.String;@1a1f05f and
>TEST/[Ljava.lang.String;@ac087b
>
>These look like string arrays that are being displayed as Strings. Any
>ideas
>what I might be doing wrong?
>
>Here's my code:
>package com.crt.advproject.custom;
>
>import java.util.HashMap;
>import java.util.Map;
>
>import org.eclipse.cdt.managedbuilder.core.IConfiguration;
>import org.eclipse.cdt.managedbuilder.core.IManagedProject;
>import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable;
>import
>org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariable
Supp
>lier;
>import
org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider;
>import
>org.eclipse.cdt.managedbuilder.envvar.IProjectEnvironmentVariableSuppli
er;
>
>import com.crt.advproject.Activator;
>import com.crt.utils.general.Utils;
>
>public class CRTEnvironmentSupplier implements
>		IProjectEnvironmentVariableSupplier {
>
>	private Map<String, IBuildEnvironmentVariable> envvars = null;
>
>	private static final String DELIMITER = ";";
>
>	private static class CRTBuildEnvironmentVariable implements
>			IBuildEnvironmentVariable {
>
>		private final String name;
>		private final String value;
>		private final int operation;
>
>		public CRTBuildEnvironmentVariable(String name, String
value,
>				int operation) {
>			this.name = name;
>			this.value = value;
>			this.operation = operation;
>		}
>
>		public String getDelimiter() {
>			return DELIMITER;
>		}
>
>		public String getName() {
>			return name;
>		}
>
>		public String getValue() {
>			return value;
>		}
>
>		public int getOperation() {
>			return operation;
>		}
>
>	}
>
>	public IBuildEnvironmentVariable getVariable(String
variableName,
>			IManagedProject project,
IEnvironmentVariableProvider
>provider) {
>		return getVars().get(variableName);
>	}
>
>	public IBuildEnvironmentVariable[] getVariables(IManagedProject
>project,
>			IEnvironmentVariableProvider provider) {
>		Map<String, IBuildEnvironmentVariable> envvars =
getVars();
>		return envvars.values().toArray(
>				new
IBuildEnvironmentVariable[envvars.size()]);
>	}
>
>	private void addvar(Map<String, IBuildEnvironmentVariable>
envvars,
>			IBuildEnvironmentVariable var) {
>		envvars.put(var.getName(), var);
>	}
>
>	private StringBuffer addPath(StringBuffer buf, String[] dirs,
String
>sep) {
>		for (int i = 0; i < dirs.length; i++) {
>			buf.append(dirs[i]);
>			if (i != dirs.length-1)
>				buf.append(sep);
>		}
>		return buf;
>	}
>
>	private Map<String, IBuildEnvironmentVariable> getVars() {
>		if (envvars == null) {
>			envvars = new HashMap<String,
>IBuildEnvironmentVariable>();
>			StringBuffer buff = new StringBuffer();
>
>			String[] dirs =
>Utils.getDirectories(Utils.PATH_DIRECTORIES);
>			addPath(buff, dirs, DELIMITER);
>			addvar(envvars, new
CRTBuildEnvironmentVariable("PATH",
>buff
>					.toString(),
>IBuildEnvironmentVariable.ENVVAR_PREPEND));
>
>			buff = new StringBuffer();
>			dirs =
Utils.getDirectories(Utils.INCLUDE_DIRECTORIES);
>			addPath(buff, dirs, DELIMITER);
>			addvar(envvars, new
>CRTBuildEnvironmentVariable("C_INCLUDE_PATH",
>					buff.toString(),
>IBuildEnvironmentVariable.ENVVAR_PREPEND));
>
>		}
>		return envvars;
>	}
>
>}
>
>--
>Derek
>_______________________________________________
>cdt-dev mailing list
>cdt-dev@xxxxxxxxxxx
>https://dev.eclipse.org/mailman/listinfo/cdt-dev
--------------------------------------------------------------------
Closed Joint Stock Company Intel A/O
Registered legal address: 125252, Moscow, Russian Federation, 
Chapayevsky Per, 14.

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


Back to the top