mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 14:42:11 +02:00
Cosmetics - JavaDoc and code formatting
This commit is contained in:
parent
1b620f2fec
commit
058f96dd9e
8 changed files with 330 additions and 406 deletions
|
@ -14,7 +14,6 @@ import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
|
|||
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
|
||||
|
||||
/**
|
||||
*
|
||||
* this interface represent the environment variable provider - the main entry-point
|
||||
* to be used for querying the build environment
|
||||
*
|
||||
|
@ -22,13 +21,11 @@ import org.eclipse.cdt.managedbuilder.core.IConfiguration;
|
|||
* @noextend This class is not intended to be subclassed by clients.
|
||||
* @noimplement This interface is not intended to be implemented by clients.
|
||||
*/
|
||||
public interface IEnvironmentVariableProvider{
|
||||
|
||||
public interface IEnvironmentVariableProvider {
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @return the reference to the IBuildEnvironmentVariable interface representing
|
||||
* the variable of a given name
|
||||
*
|
||||
* @param variableName environment variable name
|
||||
* if environment variable names are case insensitive in the current OS,
|
||||
* the environment variable provider will query the getVariable method of suppliers always
|
||||
|
@ -48,17 +45,27 @@ public interface IEnvironmentVariableProvider{
|
|||
* 2. IManagedProject to represent the managed project
|
||||
* 3. IWorkspace to represent the workspace
|
||||
* 4. null to represent the system environment passed to eclipse
|
||||
*
|
||||
* @deprecated use {@link IEnvironmentVariableProvider#getVariable(String, IConfiguration, boolean)} instead
|
||||
*/
|
||||
@Deprecated
|
||||
public IBuildEnvironmentVariable getVariable(
|
||||
String variableName, Object level, boolean includeParentLevels, boolean resolveMacros);
|
||||
|
||||
public IEnvironmentVariable getVariable(String variableName,
|
||||
IConfiguration cfg, boolean resolveMacros);
|
||||
public IBuildEnvironmentVariable getVariable(String variableName, Object level, boolean includeParentLevels, boolean resolveMacros);
|
||||
|
||||
/**
|
||||
* Get variable for the given configuration, normally including those defined in project properties
|
||||
* and workspace preferences.
|
||||
*
|
||||
* See also {@code CCorePlugin.getDefault().getBuildEnvironmentManager().getVariable(String name, ICConfigurationDescription cfg, boolean resolveMacros)}
|
||||
*
|
||||
* @param variableName - name of the variable (not including $ sign).
|
||||
* @param cfg - configuration or {@code null} for workspace preferences only.
|
||||
* @param resolveMacros - if {@code true} expand macros, {@code false} otherwise.
|
||||
* @return variable defined for the configuration or the workspace.
|
||||
* Returns {@code null} if variable is not defined.
|
||||
*/
|
||||
public IEnvironmentVariable getVariable(String variableName, IConfiguration cfg, boolean resolveMacros);
|
||||
|
||||
/**
|
||||
* if environment variable names are case insensitive in the current OS,
|
||||
* the environment variable provider will remove the duplicates of the variables if their names
|
||||
* differ only by case
|
||||
|
@ -67,14 +74,22 @@ public interface IEnvironmentVariableProvider{
|
|||
* @return the array of IBuildEnvironmentVariable that represents the environment variables
|
||||
*/
|
||||
@Deprecated
|
||||
public IBuildEnvironmentVariable[] getVariables(
|
||||
Object level, boolean includeParentLevels, boolean resolveMacros);
|
||||
|
||||
public IEnvironmentVariable[] getVariables(
|
||||
IConfiguration cfg, boolean resolveMacros);
|
||||
public IBuildEnvironmentVariable[] getVariables(Object level, boolean includeParentLevels, boolean resolveMacros);
|
||||
|
||||
/**
|
||||
* Get variables for the given configuration, normally including those defined in project properties
|
||||
* and workspace preferences.
|
||||
*
|
||||
* See also {@code CCorePlugin.getDefault().getBuildEnvironmentManager().getVariables(ICConfigurationDescription cfg, boolean resolveMacros)}
|
||||
*
|
||||
* @param cfg - configuration or {@code null} for workspace preferences only.
|
||||
* @param resolveMacros - if {@code true} expand macros, {@code false} otherwise.
|
||||
* @return array of variables defined for the configuration or the workspace.
|
||||
* Returns an empty array if no variables are defined.
|
||||
*/
|
||||
public IEnvironmentVariable[] getVariables(IConfiguration cfg, boolean resolveMacros);
|
||||
|
||||
/**
|
||||
* @return the String representing default system delimiter. That is the ":" for Unix-like
|
||||
* systems and the ";" for Win32 systems. This method will be used by the
|
||||
* tool-integrator provided variable supplier e.g. in order to concatenate the list of paths into the
|
||||
|
@ -97,7 +112,8 @@ public interface IEnvironmentVariableProvider{
|
|||
|
||||
|
||||
/**
|
||||
* returns the array of String that holds the build paths of the specified type
|
||||
* @return the array of String that holds the build paths of the specified type
|
||||
*
|
||||
* @param configuration represent the configuration for which the paths were changed
|
||||
* @param buildPathType can be set to one of the IEnvVarBuildPath.BUILDPATH _xxx
|
||||
* (the IEnvVarBuildPath will represent the build environment variables, see also
|
||||
|
@ -107,19 +123,15 @@ public interface IEnvironmentVariableProvider{
|
|||
String[] getBuildPaths(IConfiguration configuration, int buildPathType);
|
||||
|
||||
/**
|
||||
*
|
||||
* adds the listener that will return notifications about the include and library paths changes.
|
||||
* The ManagedBuildManager will register the change listener and will notify all registered
|
||||
* Scanned Info Change Listeners about the include paths change.
|
||||
*/
|
||||
void subscribe(
|
||||
IEnvironmentBuildPathsChangeListener listener);
|
||||
void subscribe(IEnvironmentBuildPathsChangeListener listener);
|
||||
|
||||
/**
|
||||
*
|
||||
* removes the include and library paths change listener
|
||||
*/
|
||||
void unsubscribe(
|
||||
IEnvironmentBuildPathsChangeListener listener);
|
||||
void unsubscribe(IEnvironmentBuildPathsChangeListener listener);
|
||||
}
|
||||
|
||||
|
|
|
@ -35,10 +35,8 @@ import org.eclipse.cdt.utils.envvar.EnvVarOperationProcessor;
|
|||
* build environment functionality to the MBS
|
||||
*
|
||||
* @since 3.0
|
||||
*
|
||||
*/
|
||||
public class EnvironmentVariableProvider implements
|
||||
IEnvironmentVariableProvider {
|
||||
public class EnvironmentVariableProvider implements IEnvironmentVariableProvider {
|
||||
// private static final QualifiedName fBuildPathVarProperty = new QualifiedName(ManagedBuilderCorePlugin.getUniqueIdentifier(), "buildPathVar"); //$NON-NLS-1$
|
||||
|
||||
// private static final String DELIMITER_WIN32 = ";"; //$NON-NLS-1$
|
||||
|
@ -58,20 +56,17 @@ public class EnvironmentVariableProvider implements
|
|||
* paths from environment variable values
|
||||
*
|
||||
* @since 3.0
|
||||
*
|
||||
*/
|
||||
static public class DefaultBuildPathResolver implements IBuildPathResolver {
|
||||
private String fDelimiter;
|
||||
|
||||
public DefaultBuildPathResolver(String delimiter){
|
||||
public DefaultBuildPathResolver(String delimiter) {
|
||||
fDelimiter = delimiter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] resolveBuildPaths(int pathType, String variableName,
|
||||
String variableValue, IConfiguration configuration) {
|
||||
|
||||
if(fDelimiter == null || "".equals(fDelimiter)) //$NON-NLS-1$
|
||||
public String[] resolveBuildPaths(int pathType, String variableName, String variableValue, IConfiguration configuration) {
|
||||
if (fDelimiter == null || "".equals(fDelimiter)) //$NON-NLS-1$
|
||||
return new String[]{variableValue};
|
||||
|
||||
List<String> list = EnvVarOperationProcessor.convertToList(variableValue,fDelimiter);
|
||||
|
@ -80,46 +75,39 @@ public class EnvironmentVariableProvider implements
|
|||
|
||||
}
|
||||
|
||||
protected EnvironmentVariableProvider(IEnvironmentVariableManager mngr){
|
||||
protected EnvironmentVariableProvider(IEnvironmentVariableManager mngr) {
|
||||
fMngr = mngr;
|
||||
}
|
||||
|
||||
public static EnvironmentVariableProvider getDefault(){
|
||||
if(fInstance == null){
|
||||
public static EnvironmentVariableProvider getDefault() {
|
||||
if (fInstance == null) {
|
||||
fInstance = new EnvironmentVariableProvider(CCorePlugin.getDefault().getBuildEnvironmentManager());
|
||||
fInstance.fBuildPathVarCheckAllowed = true;
|
||||
}
|
||||
return fInstance;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getVariable()
|
||||
*/
|
||||
@Override
|
||||
public IBuildEnvironmentVariable getVariable(String variableName,
|
||||
Object level, boolean includeParentLevels, boolean resolveMacros) {
|
||||
|
||||
if(variableName == null || "".equals(variableName)) //$NON-NLS-1$
|
||||
public IBuildEnvironmentVariable getVariable(String variableName, Object level, boolean includeParentLevels, boolean resolveMacros) {
|
||||
if (variableName == null || "".equals(variableName)) //$NON-NLS-1$
|
||||
return null;
|
||||
|
||||
if(level instanceof IConfiguration){
|
||||
if (level instanceof IConfiguration) {
|
||||
return wrap(getVariable(variableName, (IConfiguration)level, resolveMacros));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IEnvironmentVariable getVariable(String variableName,
|
||||
IConfiguration cfg, boolean resolveMacros){
|
||||
public IEnvironmentVariable getVariable(String variableName, IConfiguration cfg, boolean resolveMacros) {
|
||||
return getVariable(variableName, cfg, resolveMacros, true);
|
||||
}
|
||||
|
||||
public IEnvironmentVariable getVariable(String variableName,
|
||||
IConfiguration cfg, boolean resolveMacros, boolean checkBuildPaths){
|
||||
public IEnvironmentVariable getVariable(String variableName, IConfiguration cfg, boolean resolveMacros, boolean checkBuildPaths) {
|
||||
ICConfigurationDescription des = ManagedBuildManager.getDescriptionForConfiguration(cfg);
|
||||
if(des != null){
|
||||
if (des != null) {
|
||||
IEnvironmentVariable variable = fMngr.getVariable(variableName, des, resolveMacros);
|
||||
if(checkBuildPaths && resolveMacros && fBuildPathVarCheckAllowed)
|
||||
if (checkBuildPaths && resolveMacros && fBuildPathVarCheckAllowed)
|
||||
checkBuildPathVariable(cfg, variableName, variable);
|
||||
return variable;
|
||||
}
|
||||
|
@ -127,130 +115,109 @@ public class EnvironmentVariableProvider implements
|
|||
}
|
||||
|
||||
@Override
|
||||
public IEnvironmentVariable[] getVariables(IConfiguration cfg, boolean resolveMacros){
|
||||
public IEnvironmentVariable[] getVariables(IConfiguration cfg, boolean resolveMacros) {
|
||||
return getVariables(cfg, resolveMacros, true);
|
||||
}
|
||||
|
||||
public IEnvironmentVariable[] getVariables(IConfiguration cfg, boolean resolveMacros, boolean checkBuildPaths){
|
||||
public IEnvironmentVariable[] getVariables(IConfiguration cfg, boolean resolveMacros, boolean checkBuildPaths) {
|
||||
ICConfigurationDescription des = ManagedBuildManager.getDescriptionForConfiguration(cfg);
|
||||
if(des != null){
|
||||
if (des != null) {
|
||||
IEnvironmentVariable vars[] = fMngr.getVariables(des, resolveMacros);
|
||||
if(checkBuildPaths && resolveMacros && fBuildPathVarCheckAllowed)
|
||||
if (checkBuildPaths && resolveMacros && fBuildPathVarCheckAllowed)
|
||||
checkBuildPathVariables(cfg,vars);
|
||||
return vars;
|
||||
}
|
||||
return new IBuildEnvironmentVariable[0];
|
||||
}
|
||||
|
||||
public static IBuildEnvironmentVariable wrap(IEnvironmentVariable var){
|
||||
if(var == null)
|
||||
public static IBuildEnvironmentVariable wrap(IEnvironmentVariable var) {
|
||||
if (var == null)
|
||||
return null;
|
||||
if(var instanceof IBuildEnvironmentVariable)
|
||||
if (var instanceof IBuildEnvironmentVariable)
|
||||
return (IBuildEnvironmentVariable)var;
|
||||
return new BuildEnvVar(var);
|
||||
}
|
||||
|
||||
public static IBuildEnvironmentVariable[] wrap(IEnvironmentVariable vars[]){
|
||||
if(vars == null)
|
||||
public static IBuildEnvironmentVariable[] wrap(IEnvironmentVariable vars[]) {
|
||||
if (vars == null)
|
||||
return null;
|
||||
if(vars instanceof IBuildEnvironmentVariable[])
|
||||
if (vars instanceof IBuildEnvironmentVariable[])
|
||||
return (IBuildEnvironmentVariable[])vars;
|
||||
|
||||
IBuildEnvironmentVariable[] buildVars = new IBuildEnvironmentVariable[vars.length];
|
||||
for(int i = 0; i < vars.length; i++){
|
||||
for(int i = 0; i < vars.length; i++) {
|
||||
buildVars[i] = wrap(vars[i]);
|
||||
}
|
||||
return buildVars;
|
||||
}
|
||||
|
||||
/* protected ICConfigurationDescription getDescription(IConfiguration cfg){
|
||||
/* protected ICConfigurationDescription getDescription(IConfiguration cfg) {
|
||||
IProject project = cfg.getOwner().getProject();
|
||||
ICProjectDescription des = CoreModel.getDefault().getProjectDescription(project, false);
|
||||
if(des != null){
|
||||
if (des != null) {
|
||||
return des.getConfigurationById(cfg.getId());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
*/
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getVariables()
|
||||
*/
|
||||
@Override
|
||||
public IBuildEnvironmentVariable[] getVariables(Object level,
|
||||
boolean includeParentLevels, boolean resolveMacros) {
|
||||
|
||||
if(level instanceof IConfiguration){
|
||||
public IBuildEnvironmentVariable[] getVariables(Object level, boolean includeParentLevels, boolean resolveMacros) {
|
||||
if (level instanceof IConfiguration) {
|
||||
return wrap(getVariables((IConfiguration)level, resolveMacros));
|
||||
}
|
||||
return new IBuildEnvironmentVariable[0];
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getDefaultDelimiter()
|
||||
*/
|
||||
@Override
|
||||
public String getDefaultDelimiter() {
|
||||
return fMngr.getDefaultDelimiter();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#isVariableCaseSensitive()
|
||||
*/
|
||||
@Override
|
||||
public boolean isVariableCaseSensitive() {
|
||||
return fMngr.isVariableCaseSensitive();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getSuppliers()
|
||||
*/
|
||||
@Override
|
||||
public IEnvironmentVariableSupplier[] getSuppliers(Object level) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getBuildPaths()
|
||||
*/
|
||||
@Override
|
||||
public String[] getBuildPaths(IConfiguration configuration,
|
||||
int buildPathType) {
|
||||
public String[] getBuildPaths(IConfiguration configuration, int buildPathType) {
|
||||
ITool tools[] = configuration.getFilteredTools();
|
||||
List<String> list = new ArrayList<String>();
|
||||
|
||||
for(int i = 0; i < tools.length; i++){
|
||||
IEnvVarBuildPath pathDescriptors[] = tools[i].getEnvVarBuildPaths();
|
||||
for (ITool tool : tools) {
|
||||
IEnvVarBuildPath pathDescriptors[] = tool.getEnvVarBuildPaths();
|
||||
|
||||
if(pathDescriptors == null || pathDescriptors.length == 0)
|
||||
if (pathDescriptors == null || pathDescriptors.length == 0)
|
||||
continue;
|
||||
|
||||
for(int j = 0; j < pathDescriptors.length; j++){
|
||||
IEnvVarBuildPath curPathDes = pathDescriptors[j];
|
||||
if(curPathDes.getType() != buildPathType)
|
||||
for (IEnvVarBuildPath curPathDes : pathDescriptors) {
|
||||
if (curPathDes.getType() != buildPathType)
|
||||
continue;
|
||||
|
||||
String vars[] = curPathDes.getVariableNames();
|
||||
if(vars == null || vars.length == 0)
|
||||
if (vars == null || vars.length == 0)
|
||||
continue;
|
||||
|
||||
IBuildPathResolver pathResolver = curPathDes.getBuildPathResolver();
|
||||
if(pathResolver == null){
|
||||
if (pathResolver == null) {
|
||||
String delimiter = curPathDes.getPathDelimiter();
|
||||
if(delimiter == null)
|
||||
if (delimiter == null)
|
||||
delimiter = getDefaultDelimiter();
|
||||
pathResolver = new DefaultBuildPathResolver(delimiter);
|
||||
}
|
||||
|
||||
for(int k = 0; k < vars.length; k++){
|
||||
String varName = vars[k];
|
||||
|
||||
for (String varName : vars) {
|
||||
IEnvironmentVariable var = getVariable(varName,configuration,true, false);
|
||||
if(var == null)
|
||||
if (var == null)
|
||||
continue;
|
||||
|
||||
String varValue = var.getValue();
|
||||
String paths[] = pathResolver.resolveBuildPaths(buildPathType,varName,varValue,configuration);
|
||||
if(paths != null && paths.length != 0)
|
||||
if (paths != null && paths.length != 0)
|
||||
list.addAll(Arrays.asList(paths));
|
||||
}
|
||||
}
|
||||
|
@ -259,45 +226,39 @@ public class EnvironmentVariableProvider implements
|
|||
return list.toArray(new String[list.size()]);
|
||||
}
|
||||
|
||||
/*
|
||||
* returns a list of registered listeners
|
||||
/**
|
||||
* @return a list of registered listeners
|
||||
*/
|
||||
private List<IEnvironmentBuildPathsChangeListener> getListeners(){
|
||||
if(fListeners == null)
|
||||
private List<IEnvironmentBuildPathsChangeListener> getListeners() {
|
||||
if (fListeners == null)
|
||||
fListeners = new ArrayList<IEnvironmentBuildPathsChangeListener>();
|
||||
return fListeners;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* notifies registered listeners
|
||||
*/
|
||||
private void notifyListeners(IConfiguration configuration, int buildPathType){
|
||||
private void notifyListeners(IConfiguration configuration, int buildPathType) {
|
||||
List<IEnvironmentBuildPathsChangeListener> listeners = getListeners();
|
||||
for (IEnvironmentBuildPathsChangeListener listener : listeners) {
|
||||
listener.buildPathsChanged(configuration,buildPathType);
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#subscribe()
|
||||
*/
|
||||
@Override
|
||||
public synchronized void subscribe(IEnvironmentBuildPathsChangeListener listener) {
|
||||
if(listener == null)
|
||||
if (listener == null)
|
||||
return;
|
||||
|
||||
List<IEnvironmentBuildPathsChangeListener> listeners = getListeners();
|
||||
|
||||
if(!listeners.contains(listener))
|
||||
if (!listeners.contains(listener))
|
||||
listeners.add(listener);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#unsubscribe()
|
||||
*/
|
||||
@Override
|
||||
public synchronized void unsubscribe(IEnvironmentBuildPathsChangeListener listener) {
|
||||
if(listener == null)
|
||||
if (listener == null)
|
||||
return;
|
||||
|
||||
List<IEnvironmentBuildPathsChangeListener> listeners = getListeners();
|
||||
|
@ -305,39 +266,39 @@ public class EnvironmentVariableProvider implements
|
|||
listeners.remove(listener);
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* performs a check of the build path variables for the given configuration
|
||||
* If the build variables are changed, the notification is sent
|
||||
*/
|
||||
public void checkBuildPathVariables(IConfiguration configuration){
|
||||
public void checkBuildPathVariables(IConfiguration configuration) {
|
||||
checkBuildPathVariables(configuration, getVariables(configuration ,true, false));
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* performs a check of the build path variables of the specified type
|
||||
* for the given configuration
|
||||
* If the build variables are changed, the notification is sent
|
||||
*/
|
||||
public void checkBuildPathVariables(IConfiguration configuration,int buildPathType){
|
||||
public void checkBuildPathVariables(IConfiguration configuration,int buildPathType) {
|
||||
EnvVarCollector cr = new EnvVarCollector();
|
||||
cr.add(getVariables(configuration, true, false));
|
||||
checkBuildPathVariables(configuration,buildPathType,cr);
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* performs a check of the build path variables
|
||||
* for the given configuration given the set of the variables
|
||||
* defined for this configuration
|
||||
* If the build variables are changed, the notification is sent
|
||||
*/
|
||||
protected void checkBuildPathVariables(IConfiguration configuration, IEnvironmentVariable vars[]){
|
||||
protected void checkBuildPathVariables(IConfiguration configuration, IEnvironmentVariable vars[]) {
|
||||
EnvVarCollector cr = new EnvVarCollector();
|
||||
cr.add(vars);
|
||||
checkBuildPathVariables(configuration,IEnvVarBuildPath.BUILDPATH_INCLUDE,cr);
|
||||
checkBuildPathVariables(configuration,IEnvVarBuildPath.BUILDPATH_LIBRARY,cr);
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* performs a check of whether the given variable is the build path variable
|
||||
* and if true checks whether it is changed.
|
||||
* In the case of it is changed all other build path variables are checked
|
||||
|
@ -345,12 +306,12 @@ public class EnvironmentVariableProvider implements
|
|||
* If it is not changed, other build path variables are not checked
|
||||
* In the case of the given variable is not the build path one, this method does nothing
|
||||
*/
|
||||
protected void checkBuildPathVariable(IConfiguration configuration, String varName, IEnvironmentVariable var){
|
||||
protected void checkBuildPathVariable(IConfiguration configuration, String varName, IEnvironmentVariable var) {
|
||||
checkBuildPathVariable(configuration, IEnvVarBuildPath.BUILDPATH_INCLUDE, varName, var);
|
||||
checkBuildPathVariable(configuration, IEnvVarBuildPath.BUILDPATH_LIBRARY, varName, var);
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* performs a check of whether the given variable is the build path variable
|
||||
* of the specified type and if true checks whether it is changed.
|
||||
* In the case of it is changed all other build path variables of that type are checked
|
||||
|
@ -358,11 +319,11 @@ public class EnvironmentVariableProvider implements
|
|||
* If it is not changed, other build path variables are not checked
|
||||
* In the case of the given variable is not the build path one, this method does nothing
|
||||
*/
|
||||
protected void checkBuildPathVariable(IConfiguration configuration, int buildPathType, String varName, IEnvironmentVariable var){
|
||||
protected void checkBuildPathVariable(IConfiguration configuration, int buildPathType, String varName, IEnvironmentVariable var) {
|
||||
StoredBuildPathEnvironmentContainer buildPathVars = getStoredBuildPathVariables(buildPathType);
|
||||
if(buildPathVars == null)
|
||||
if (buildPathVars == null)
|
||||
return;
|
||||
if(buildPathVars.isVariableChanged(varName,var,configuration)){
|
||||
if (buildPathVars.isVariableChanged(varName,var,configuration)) {
|
||||
EnvVarCollector cr = new EnvVarCollector();
|
||||
cr.add(getVariables(configuration, true, false));
|
||||
buildPathVars.synchronize(cr,configuration);
|
||||
|
@ -370,44 +331,44 @@ public class EnvironmentVariableProvider implements
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* performs a check of the build path variables of the specified type
|
||||
* for the given configuration given the set of the variables
|
||||
* defined for this configuration.
|
||||
* If the build variables are changed, the notification is sent
|
||||
*/
|
||||
protected void checkBuildPathVariables(IConfiguration configuration, int buildPathType, EnvVarCollector varSet){
|
||||
protected void checkBuildPathVariables(IConfiguration configuration, int buildPathType, EnvVarCollector varSet) {
|
||||
StoredBuildPathEnvironmentContainer buildPathVars = getStoredBuildPathVariables(buildPathType);
|
||||
if(buildPathVars == null)
|
||||
if (buildPathVars == null)
|
||||
return;
|
||||
if(buildPathVars.checkBuildPathChange(varSet,configuration)){
|
||||
if (buildPathVars.checkBuildPathChange(varSet,configuration)) {
|
||||
notifyListeners(configuration, buildPathType);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* returns the container of the build variables of the specified type
|
||||
*/
|
||||
protected StoredBuildPathEnvironmentContainer getStoredBuildPathVariables(int buildPathType){
|
||||
protected StoredBuildPathEnvironmentContainer getStoredBuildPathVariables(int buildPathType) {
|
||||
return buildPathType == IEnvVarBuildPath.BUILDPATH_LIBRARY ?
|
||||
getStoredLibraryBuildPathVariables() :
|
||||
getStoredIncludeBuildPathVariables();
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* returns the container of the Include path variables
|
||||
*/
|
||||
protected StoredBuildPathEnvironmentContainer getStoredIncludeBuildPathVariables(){
|
||||
if(fIncludeStoredBuildPathVariables == null)
|
||||
protected StoredBuildPathEnvironmentContainer getStoredIncludeBuildPathVariables() {
|
||||
if (fIncludeStoredBuildPathVariables == null)
|
||||
fIncludeStoredBuildPathVariables = new StoredBuildPathEnvironmentContainer(IEnvVarBuildPath.BUILDPATH_INCLUDE);
|
||||
return fIncludeStoredBuildPathVariables;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* returns the container of the Library path variables
|
||||
*/
|
||||
protected StoredBuildPathEnvironmentContainer getStoredLibraryBuildPathVariables(){
|
||||
if(fLibraryStoredBuildPathVariables == null)
|
||||
protected StoredBuildPathEnvironmentContainer getStoredLibraryBuildPathVariables() {
|
||||
if (fLibraryStoredBuildPathVariables == null)
|
||||
fLibraryStoredBuildPathVariables = new StoredBuildPathEnvironmentContainer(IEnvVarBuildPath.BUILDPATH_LIBRARY);
|
||||
return fLibraryStoredBuildPathVariables;
|
||||
}
|
||||
|
|
|
@ -63,16 +63,13 @@ public class CygwinPathResolver implements IBuildPathResolver {
|
|||
private static String rootCygwin = null;
|
||||
private static String etcCygwin = null;
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.core.IBuildPathResolver#resolveBuildPaths(int, java.lang.String, java.lang.String, org.eclipse.cdt.managedbuilder.core.IConfiguration)
|
||||
*/
|
||||
@Override
|
||||
public String[] resolveBuildPaths(int pathType, String variableName,
|
||||
String variableValue, IConfiguration configuration) {
|
||||
|
||||
if(!isWindows()){
|
||||
if(!isWindows()) {
|
||||
return variableValue.split(DELIMITER_UNIX);
|
||||
} else if(isMinGW(configuration)){
|
||||
} else if(isMinGW(configuration)) {
|
||||
return variableValue.split(DELIMITER_WIN);
|
||||
}
|
||||
|
||||
|
@ -92,7 +89,8 @@ public class CygwinPathResolver implements IBuildPathResolver {
|
|||
}
|
||||
return result;
|
||||
}
|
||||
/*
|
||||
|
||||
/**
|
||||
* returns "/etc" path in Windows format
|
||||
*/
|
||||
public static String getEtcPath() {
|
||||
|
@ -100,17 +98,17 @@ public class CygwinPathResolver implements IBuildPathResolver {
|
|||
return etcCygwin;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* returns "/usr/bin" path in Windows format
|
||||
*/
|
||||
public static String getBinPath() {
|
||||
if (!checked) findPaths();
|
||||
return binCygwin;
|
||||
}
|
||||
/*
|
||||
|
||||
/**
|
||||
* returns Cygwin root ("/") path in Windows format
|
||||
*/
|
||||
|
||||
public static String getRootPath() {
|
||||
if (!checked) findPaths();
|
||||
return rootCygwin;
|
||||
|
@ -140,6 +138,7 @@ public class CygwinPathResolver implements IBuildPathResolver {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the absolute path of the pattern by
|
||||
* simply appending the pattern to the root
|
||||
|
@ -233,7 +232,7 @@ public class CygwinPathResolver implements IBuildPathResolver {
|
|||
try {
|
||||
IEnvironmentVariable vars[] = ManagedBuildManager.getEnvironmentVariableProvider().getVariables(cfg,true);
|
||||
String env[] = new String[vars.length];
|
||||
for(int i = 0; i < env.length; i++){
|
||||
for(int i = 0; i < env.length; i++) {
|
||||
env[i] = vars[i].getName() + "="; //$NON-NLS-1$
|
||||
String value = vars[i].getValue();
|
||||
if(value != null)
|
||||
|
@ -258,10 +257,10 @@ public class CygwinPathResolver implements IBuildPathResolver {
|
|||
return null;
|
||||
}
|
||||
|
||||
public static boolean isMinGW(IConfiguration cfg){
|
||||
public static boolean isMinGW(IConfiguration cfg) {
|
||||
String versionInfo[] = exec(GCC_VERSION_CMD, cfg);
|
||||
if(versionInfo != null) {
|
||||
for(int i = 0; i < versionInfo.length; i++){
|
||||
for(int i = 0; i < versionInfo.length; i++) {
|
||||
if(versionInfo[i].indexOf(MINGW_SPECIAL) != -1)
|
||||
return true;
|
||||
else if(versionInfo[i].indexOf(CYGWIN_SPECIAL) != -1)
|
||||
|
|
|
@ -16,13 +16,10 @@ import org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSu
|
|||
import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider;
|
||||
import org.eclipse.cdt.managedbuilder.internal.envvar.BuildEnvVar;
|
||||
|
||||
|
||||
/**
|
||||
* @noextend This class is not intended to be subclassed by clients.
|
||||
*/
|
||||
public class GnuCygwinConfigurationEnvironmentSupplier implements
|
||||
IConfigurationEnvironmentVariableSupplier {
|
||||
|
||||
public class GnuCygwinConfigurationEnvironmentSupplier implements IConfigurationEnvironmentVariableSupplier {
|
||||
private static final String PATH = "PATH"; //$NON-NLS-1$
|
||||
private static final String DELIMITER_UNIX = ":"; //$NON-NLS-1$
|
||||
private static final String PROPERTY_DELIMITER = "path.separator"; //$NON-NLS-1$
|
||||
|
@ -32,50 +29,46 @@ public class GnuCygwinConfigurationEnvironmentSupplier implements
|
|||
private static final String LC_ALL = "LC_ALL"; //$NON-NLS-1$
|
||||
private static final String LC_MESSAGES = "LC_MESSAGES"; //$NON-NLS-1$
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier#getVariable(java.lang.String, org.eclipse.cdt.managedbuilder.core.IConfiguration, org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider)
|
||||
*/
|
||||
@Override
|
||||
public IBuildEnvironmentVariable getVariable(String variableName,
|
||||
IConfiguration configuration, IEnvironmentVariableProvider provider) {
|
||||
|
||||
if (variableName == null)
|
||||
public IBuildEnvironmentVariable getVariable(String variableName, IConfiguration configuration, IEnvironmentVariableProvider provider) {
|
||||
if (variableName == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!System.getProperty(PROPERTY_OSNAME).toLowerCase().startsWith("windows ")) //$NON-NLS-1$
|
||||
if (!System.getProperty(PROPERTY_OSNAME).toLowerCase().startsWith("windows ")) { //$NON-NLS-1$
|
||||
return null;
|
||||
}
|
||||
|
||||
if (variableName.equalsIgnoreCase(PATH)) {
|
||||
String p = CygwinPathResolver.getBinPath();
|
||||
if (p != null)
|
||||
if (p != null) {
|
||||
return new BuildEnvVar(PATH, p.replace('/','\\'), IBuildEnvironmentVariable.ENVVAR_PREPEND, System.getProperty(PROPERTY_DELIMITER, DELIMITER_UNIX));
|
||||
}
|
||||
} else if (variableName.equalsIgnoreCase(LANG)) {
|
||||
// Workaround for not being able to select encoding for CDT console -> change codeset to Latin1
|
||||
String langValue = System.getenv(LANG);
|
||||
if (langValue == null || langValue.length() == 0)
|
||||
if (langValue == null || langValue.length() == 0) {
|
||||
langValue = System.getenv(LC_ALL);
|
||||
if (langValue == null || langValue.length() == 0)
|
||||
}
|
||||
if (langValue == null || langValue.length() == 0) {
|
||||
langValue = System.getenv(LC_MESSAGES);
|
||||
if (langValue != null && langValue.length() > 0)
|
||||
}
|
||||
if (langValue != null && langValue.length() > 0) {
|
||||
// langValue is [language[_territory][.codeset][@modifier]], i.e. "en_US.UTF-8@dict"
|
||||
// we replace codeset with Latin1 as CDT console garbles UTF
|
||||
// and ignore modifier which is not used by LANG
|
||||
langValue = langValue.replaceFirst("([^.@]*)(\\..*)?(@.*)?", "$1.ISO-8859-1"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
else
|
||||
} else {
|
||||
langValue = "C.ISO-8859-1"; //$NON-NLS-1$
|
||||
}
|
||||
|
||||
return new BuildEnvVar(LANG, langValue);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier#getVariables(org.eclipse.cdt.managedbuilder.core.IConfiguration, org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider)
|
||||
*/
|
||||
@Override
|
||||
public IBuildEnvironmentVariable[] getVariables(
|
||||
IConfiguration configuration, IEnvironmentVariableProvider provider) {
|
||||
|
||||
public IBuildEnvironmentVariable[] getVariables(IConfiguration configuration, IEnvironmentVariableProvider provider) {
|
||||
IBuildEnvironmentVariable varLang = getVariable(LANG, configuration, provider);
|
||||
IBuildEnvironmentVariable varPath = getVariable(PATH, configuration, provider);
|
||||
|
||||
|
|
|
@ -32,24 +32,17 @@ import org.osgi.framework.Version;
|
|||
*
|
||||
* @noextend This class is not intended to be subclassed by clients.
|
||||
*/
|
||||
public class IsGnuCygwinToolChainSupported implements
|
||||
IManagedIsToolChainSupported {
|
||||
|
||||
public class IsGnuCygwinToolChainSupported implements IManagedIsToolChainSupported {
|
||||
static final String[] CHECKED_NAMES = {"gcc", "binutils", "make"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
|
||||
static boolean suppChecked = false;
|
||||
static boolean toolchainIsSupported = false;
|
||||
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.core.IManagedIsToolChainSupported#isSupported(org.eclipse.cdt.managedbuilder.core.IToolChain, org.eclipse.core.runtime.PluginVersionIdentifier, java.lang.String)
|
||||
*/
|
||||
/**
|
||||
* @since 8.0
|
||||
*/
|
||||
@Override
|
||||
public boolean isSupported(IToolChain toolChain, Version version, String instance) {
|
||||
|
||||
if (suppChecked) return toolchainIsSupported;
|
||||
|
||||
String etcCygwin = CygwinPathResolver.getEtcPath();
|
||||
|
@ -80,7 +73,9 @@ public class IsGnuCygwinToolChainSupported implements
|
|||
String s;
|
||||
while ((s = data.readLine()) != null ) {
|
||||
for (int j = 0; j < CHECKED_NAMES.length; j++) {
|
||||
if (s.startsWith(CHECKED_NAMES[j])) {found[j] = true;}
|
||||
if (s.startsWith(CHECKED_NAMES[j])) {
|
||||
found[j] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
arePackagesInstalled = true;
|
||||
|
|
|
@ -25,9 +25,7 @@ import org.eclipse.core.runtime.Platform;
|
|||
*
|
||||
* @noextend This class is not intended to be subclassed by clients.
|
||||
*/
|
||||
public class MingwEnvironmentVariableSupplier implements
|
||||
IConfigurationEnvironmentVariableSupplier {
|
||||
|
||||
public class MingwEnvironmentVariableSupplier implements IConfigurationEnvironmentVariableSupplier {
|
||||
private static boolean checked = false;
|
||||
private static IPath binDir = null;
|
||||
|
||||
|
|
|
@ -34,14 +34,11 @@ import org.eclipse.cdt.utils.envvar.EnvVarOperationProcessor;
|
|||
|
||||
/**
|
||||
* This class implements the IEnvironmentVariableProvider interface and provides all
|
||||
* build environment funvtionality to the MBS
|
||||
* build environment functionality to the MBS
|
||||
*
|
||||
* @since 3.0
|
||||
*
|
||||
*/
|
||||
public class EnvironmentVariableManager implements
|
||||
IEnvironmentVariableManager {
|
||||
|
||||
public class EnvironmentVariableManager implements IEnvironmentVariableManager {
|
||||
private static final String DELIMITER_WIN32 = ";"; //$NON-NLS-1$
|
||||
private static final String DELIMITER_UNIX = ":"; //$NON-NLS-1$
|
||||
|
||||
|
@ -57,23 +54,23 @@ public class EnvironmentVariableManager implements
|
|||
|
||||
public class EnvVarVariableSubstitutor extends SupplierBasedCdtVariableSubstitutor {
|
||||
private String fDefaultDelimiter;
|
||||
/* public EnvVarMacroSubstitutor(int contextType, Object contextData, String inexistentMacroValue, String listDelimiter){
|
||||
/* public EnvVarMacroSubstitutor(int contextType, Object contextData, String inexistentMacroValue, String listDelimiter) {
|
||||
super(contextType,contextData,inexistentMacroValue,listDelimiter);
|
||||
fDefaultDelimiter = listDelimiter;
|
||||
}
|
||||
*/
|
||||
public EnvVarVariableSubstitutor(IVariableContextInfo contextInfo, String inexistentMacroValue, String listDelimiter){
|
||||
public EnvVarVariableSubstitutor(IVariableContextInfo contextInfo, String inexistentMacroValue, String listDelimiter) {
|
||||
super(contextInfo, inexistentMacroValue, listDelimiter, null ,inexistentMacroValue);
|
||||
fDefaultDelimiter = listDelimiter;
|
||||
}
|
||||
|
||||
public IEnvironmentVariable resolveVariable(EnvVarDescriptor var) throws CdtVariableException {
|
||||
String value;
|
||||
if(var == null || (value = var.getValue()) == null || value.length() == 0 || var.getOperation() == IEnvironmentVariable.ENVVAR_REMOVE)
|
||||
if (var == null || (value = var.getValue()) == null || value.length() == 0 || var.getOperation() == IEnvironmentVariable.ENVVAR_REMOVE)
|
||||
return var;
|
||||
|
||||
String listDelimiter = var.getDelimiter();
|
||||
if(listDelimiter == null)
|
||||
if (listDelimiter == null)
|
||||
listDelimiter = fDefaultDelimiter;
|
||||
setListDelimiter(listDelimiter);
|
||||
ICdtVariable macro = EnvironmentVariableSupplier.getInstance().createBuildMacro(var);
|
||||
|
@ -84,18 +81,18 @@ public class EnvironmentVariableManager implements
|
|||
return new EnvironmentVariable(var.getName(),value,var.getOperation(),var.getDelimiter());
|
||||
}
|
||||
|
||||
protected IVariableContextInfo getVarMacroContextInfo(EnvVarDescriptor var){
|
||||
protected IVariableContextInfo getVarMacroContextInfo(EnvVarDescriptor var) {
|
||||
IEnvironmentContextInfo info = var.getContextInfo();
|
||||
if(info != null)
|
||||
if (info != null)
|
||||
return getMacroContextInfoForContext(info.getContext());
|
||||
return null;
|
||||
}
|
||||
|
||||
protected int getVarMacroSupplierNum(EnvVarDescriptor var, IVariableContextInfo varMacroInfo){
|
||||
protected int getVarMacroSupplierNum(EnvVarDescriptor var, IVariableContextInfo varMacroInfo) {
|
||||
int varSupplierNum = -1;
|
||||
ICdtVariableSupplier macroSuppliers[] = varMacroInfo.getSuppliers();
|
||||
for(int i = 0; i < macroSuppliers.length; i++){
|
||||
if(macroSuppliers[i] instanceof EnvironmentVariableSupplier){
|
||||
for(int i = 0; i < macroSuppliers.length; i++) {
|
||||
if (macroSuppliers[i] instanceof EnvironmentVariableSupplier) {
|
||||
varSupplierNum = i;
|
||||
break;
|
||||
}
|
||||
|
@ -104,42 +101,38 @@ public class EnvironmentVariableManager implements
|
|||
}
|
||||
}
|
||||
|
||||
protected EnvironmentVariableManager(){
|
||||
protected EnvironmentVariableManager() {
|
||||
fContributedEnvironment = new ContributedEnvironment(this);
|
||||
}
|
||||
|
||||
public static EnvironmentVariableManager getDefault(){
|
||||
if(fInstance == null)
|
||||
public static EnvironmentVariableManager getDefault() {
|
||||
if (fInstance == null)
|
||||
fInstance = new EnvironmentVariableManager();
|
||||
return fInstance;
|
||||
}
|
||||
|
||||
/*
|
||||
* returns a variable of a given name or null
|
||||
/**
|
||||
* @return a variable of a given name or null
|
||||
* the context information is taken from the contextInfo passed
|
||||
* @see org.eclipse.cdt.managedbuilder.internal.envvar.IContextInfo
|
||||
*/
|
||||
public static EnvVarDescriptor getVariable(String variableName,
|
||||
IEnvironmentContextInfo contextInfo, boolean includeParentLevels){
|
||||
|
||||
if(contextInfo == null)
|
||||
public static EnvVarDescriptor getVariable(String variableName, IEnvironmentContextInfo contextInfo, boolean includeParentLevels) {
|
||||
if (contextInfo == null)
|
||||
return null;
|
||||
if((variableName = EnvVarOperationProcessor.normalizeName(variableName)) == null)
|
||||
if ((variableName = EnvVarOperationProcessor.normalizeName(variableName)) == null)
|
||||
return null;
|
||||
|
||||
|
||||
IEnvironmentContextInfo infos[] = getAllContextInfos(contextInfo);
|
||||
|
||||
if(!includeParentLevels){
|
||||
if (!includeParentLevels) {
|
||||
ICoreEnvironmentVariableSupplier suppliers[] = infos[0].getSuppliers();
|
||||
boolean bVarFound = false;
|
||||
for (ICoreEnvironmentVariableSupplier supplier : suppliers) {
|
||||
if(supplier.getVariable(variableName,infos[0].getContext()) != null){
|
||||
if (supplier.getVariable(variableName,infos[0].getContext()) != null) {
|
||||
bVarFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!bVarFound)
|
||||
if (!bVarFound)
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -156,94 +149,88 @@ public class EnvironmentVariableManager implements
|
|||
ICoreEnvironmentVariableSupplier supplier = suppliers[j];
|
||||
IEnvironmentVariable var = supplier.getVariable(variableName,info.getContext());
|
||||
|
||||
if(var == null)
|
||||
if (var == null)
|
||||
continue;
|
||||
|
||||
varContextInfo = info;
|
||||
varSupplierNum = j;
|
||||
varSupplier = supplier;
|
||||
|
||||
if(variable == null)
|
||||
if (variable == null)
|
||||
variable = var;
|
||||
else
|
||||
variable = EnvVarOperationProcessor.performOperation(variable,var);
|
||||
}
|
||||
}
|
||||
|
||||
if(variable != null){
|
||||
// if(variable.getOperation() == IEnvironmentVariable.ENVVAR_REMOVE)
|
||||
if (variable != null) {
|
||||
// if (variable.getOperation() == IEnvironmentVariable.ENVVAR_REMOVE)
|
||||
// return null;
|
||||
return new EnvVarDescriptor(variable,varContextInfo,varSupplierNum,varSupplier);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getVariable()
|
||||
*/
|
||||
@Override
|
||||
public IEnvironmentVariable getVariable(String variableName,
|
||||
ICConfigurationDescription cfg, boolean resolveMacros) {
|
||||
if(variableName == null || "".equals(variableName)) //$NON-NLS-1$
|
||||
public IEnvironmentVariable getVariable(String variableName, ICConfigurationDescription cfg, boolean resolveMacros) {
|
||||
if (variableName == null || "".equals(variableName)) //$NON-NLS-1$
|
||||
return null;
|
||||
|
||||
IEnvironmentContextInfo info = getContextInfo(cfg);
|
||||
EnvVarDescriptor var = getVariable(variableName,info,true);
|
||||
|
||||
if(var != null && var.getOperation() != IEnvironmentVariable.ENVVAR_REMOVE){
|
||||
if (var != null && var.getOperation() != IEnvironmentVariable.ENVVAR_REMOVE) {
|
||||
return resolveMacros ? calculateResolvedVariable(var,info) : var;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
IEnvironmentContextInfo getDefaultContextInfo(Object level){
|
||||
IEnvironmentContextInfo getDefaultContextInfo(Object level) {
|
||||
DefaultEnvironmentContextInfo info = new DefaultEnvironmentContextInfo(level);
|
||||
if(info.getSuppliers() == null)
|
||||
if (info.getSuppliers() == null)
|
||||
return null;
|
||||
return info;
|
||||
}
|
||||
|
||||
/*
|
||||
* returns the context info that should be used for the given level
|
||||
/**
|
||||
* @return the context info that should be used for the given level
|
||||
* or null if the the given level is not supported
|
||||
*/
|
||||
public IEnvironmentContextInfo getContextInfo(Object level){
|
||||
if(level instanceof ICConfigurationDescription)
|
||||
public IEnvironmentContextInfo getContextInfo(Object level) {
|
||||
if (level instanceof ICConfigurationDescription)
|
||||
return fContributedEnvironment.appendEnvironment((ICConfigurationDescription)level) ?
|
||||
getDefaultContextInfo(level) : fContributedEnvironment.getContextInfo(level);
|
||||
return getDefaultContextInfo(level);
|
||||
}
|
||||
|
||||
/*
|
||||
* returns a list of defined variables.
|
||||
/**
|
||||
* @return a list of defined variables.
|
||||
* the context information is taken from the contextInfo passed
|
||||
* @see org.eclipse.cdt.managedbuilder.internal.envvar.IContextInfo
|
||||
*/
|
||||
public static EnvVarCollector getVariables(IEnvironmentContextInfo contextInfo,
|
||||
boolean includeParentLevels) {
|
||||
if(contextInfo == null)
|
||||
public static EnvVarCollector getVariables(IEnvironmentContextInfo contextInfo, boolean includeParentLevels) {
|
||||
if (contextInfo == null)
|
||||
return null;
|
||||
|
||||
IEnvironmentContextInfo infos[] = getAllContextInfos(contextInfo);
|
||||
HashSet<String> set = null;
|
||||
|
||||
if(!includeParentLevels){
|
||||
if (!includeParentLevels) {
|
||||
ICoreEnvironmentVariableSupplier suppliers[] = infos[0].getSuppliers();
|
||||
set = new HashSet<String>();
|
||||
for(int i = 0; i < suppliers.length; i++){
|
||||
for(int i = 0; i < suppliers.length; i++) {
|
||||
IEnvironmentVariable vars[] = suppliers[i].getVariables(infos[0].getContext());
|
||||
if(vars != null){
|
||||
if (vars != null) {
|
||||
for (IEnvironmentVariable var : vars) {
|
||||
String name = EnvVarOperationProcessor.normalizeName(var.
|
||||
getName());
|
||||
if(name != null)
|
||||
if (name != null)
|
||||
set.add(name);
|
||||
}
|
||||
}
|
||||
if(!suppliers[i].appendEnvironment(infos[0].getContext()))
|
||||
if (!suppliers[i].appendEnvironment(infos[0].getContext()))
|
||||
break;
|
||||
}
|
||||
if(set.size() == 0)
|
||||
if (set.size() == 0)
|
||||
return new EnvVarCollector();
|
||||
}
|
||||
|
||||
|
@ -255,18 +242,18 @@ public class EnvironmentVariableManager implements
|
|||
|
||||
for(int j = suppliers.length-1 ; j >= 0 ; j-- ) {
|
||||
ICoreEnvironmentVariableSupplier supplier = suppliers[j];
|
||||
if(!supplier.appendEnvironment(info.getContext())){
|
||||
if (!supplier.appendEnvironment(info.getContext())) {
|
||||
envVarSet.clear();
|
||||
}
|
||||
|
||||
IEnvironmentVariable vars[] = null;
|
||||
if(set != null){
|
||||
if (set != null) {
|
||||
List<IEnvironmentVariable> varList = new ArrayList<IEnvironmentVariable>();
|
||||
Iterator<String> iter = set.iterator();
|
||||
|
||||
while(iter.hasNext()){
|
||||
while(iter.hasNext()) {
|
||||
IEnvironmentVariable var = supplier.getVariable(iter.next(),info.getContext());
|
||||
if(var != null)
|
||||
if (var != null)
|
||||
varList.add(var);
|
||||
}
|
||||
vars = varList.toArray(new IEnvironmentVariable[varList.size()]);
|
||||
|
@ -281,20 +268,15 @@ public class EnvironmentVariableManager implements
|
|||
return envVarSet;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getVariables()
|
||||
*/
|
||||
@Override
|
||||
public IEnvironmentVariable[] getVariables(ICConfigurationDescription cfg, boolean resolveMacros) {
|
||||
|
||||
|
||||
IEnvironmentContextInfo info = getContextInfo(cfg);
|
||||
EnvVarCollector varSet = getVariables(info,true);
|
||||
|
||||
EnvVarDescriptor vars[] = varSet != null ? varSet.toArray(false) : null;
|
||||
|
||||
if(vars != null){
|
||||
if(!resolveMacros)
|
||||
if (vars != null) {
|
||||
if (!resolveMacros)
|
||||
return vars;
|
||||
|
||||
IEnvironmentVariable resolved[] = new IEnvironmentVariable[vars.length];
|
||||
|
@ -305,12 +287,12 @@ public class EnvironmentVariableManager implements
|
|||
return new EnvVarDescriptor[0];
|
||||
}
|
||||
|
||||
/*
|
||||
* returns an array of the IContextInfo that holds the context informations
|
||||
/**
|
||||
* @return an array of the IContextInfo that holds the context informations
|
||||
* starting from the one passed to this method and including all subsequent parents
|
||||
*/
|
||||
public static IEnvironmentContextInfo[] getAllContextInfos(IEnvironmentContextInfo contextInfo){
|
||||
if(contextInfo == null)
|
||||
public static IEnvironmentContextInfo[] getAllContextInfos(IEnvironmentContextInfo contextInfo) {
|
||||
if (contextInfo == null)
|
||||
return null;
|
||||
|
||||
List<IEnvironmentContextInfo> list = new ArrayList<IEnvironmentContextInfo>();
|
||||
|
@ -323,100 +305,91 @@ public class EnvironmentVariableManager implements
|
|||
return list.toArray(new IEnvironmentContextInfo[list.size()]);
|
||||
}
|
||||
|
||||
private boolean isWin32(){
|
||||
private boolean isWin32() {
|
||||
String os = System.getProperty("os.name").toLowerCase(); //$NON-NLS-1$
|
||||
if (os.startsWith("windows ")) //$NON-NLS-1$
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getDefaultDelimiter()
|
||||
*/
|
||||
@Override
|
||||
public String getDefaultDelimiter() {
|
||||
return isWin32() ? DELIMITER_WIN32 : DELIMITER_UNIX;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#isVariableCaseSensitive()
|
||||
*/
|
||||
@Override
|
||||
public boolean isVariableCaseSensitive() {
|
||||
return !isWin32();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getSuppliers()
|
||||
*/
|
||||
public ICoreEnvironmentVariableSupplier[] getSuppliers(Object level) {
|
||||
IEnvironmentContextInfo info = getContextInfo(level);
|
||||
if(info != null)
|
||||
if (info != null)
|
||||
return info.getSuppliers();
|
||||
return null;
|
||||
}
|
||||
|
||||
/*
|
||||
* returns true if the first passed contextInfo is the child of the second one
|
||||
/**
|
||||
* @return true if the first passed contextInfo is the child of the second one
|
||||
*/
|
||||
public boolean checkParentContextRelation(IEnvironmentContextInfo child, IEnvironmentContextInfo parent){
|
||||
if(child == null || parent == null)
|
||||
public boolean checkParentContextRelation(IEnvironmentContextInfo child, IEnvironmentContextInfo parent) {
|
||||
if (child == null || parent == null)
|
||||
return false;
|
||||
|
||||
IEnvironmentContextInfo enumInfo = child;
|
||||
do{
|
||||
if(parent.getContext() == enumInfo.getContext())
|
||||
if (parent.getContext() == enumInfo.getContext())
|
||||
return true;
|
||||
}while((enumInfo = enumInfo.getNext()) != null);
|
||||
return false;
|
||||
}
|
||||
|
||||
public IEnvironmentVariable calculateResolvedVariable(EnvVarDescriptor des, IEnvironmentContextInfo info){
|
||||
if(des == null || info == null)
|
||||
public IEnvironmentVariable calculateResolvedVariable(EnvVarDescriptor des, IEnvironmentContextInfo info) {
|
||||
if (des == null || info == null)
|
||||
return null;
|
||||
|
||||
return calculateResolvedVariable(des,getVariableSubstitutor(getMacroContextInfoForContext(info.getContext()),""," ")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
|
||||
public IEnvironmentVariable calculateResolvedVariable(EnvVarDescriptor des, IVariableSubstitutor sub){
|
||||
if(des == null)
|
||||
public IEnvironmentVariable calculateResolvedVariable(EnvVarDescriptor des, IVariableSubstitutor sub) {
|
||||
if (des == null)
|
||||
return null;
|
||||
IEnvironmentVariable var = des;
|
||||
|
||||
try{
|
||||
if(sub instanceof EnvVarVariableSubstitutor)
|
||||
if (sub instanceof EnvVarVariableSubstitutor)
|
||||
var = ((EnvVarVariableSubstitutor)sub).resolveVariable(des);
|
||||
else if(des.getOperation() != IEnvironmentVariable.ENVVAR_REMOVE){
|
||||
else if (des.getOperation() != IEnvironmentVariable.ENVVAR_REMOVE) {
|
||||
String name = des.getName();
|
||||
var = new EnvironmentVariable(name,sub.resolveToString(name),des.getOperation(),des.getDelimiter());
|
||||
}
|
||||
} catch (CdtVariableException e){
|
||||
} catch (CdtVariableException e) {
|
||||
}
|
||||
return var;
|
||||
|
||||
}
|
||||
|
||||
protected int getMacroContextTypeFromContext(Object context){
|
||||
if(context instanceof ICConfigurationDescription)
|
||||
protected int getMacroContextTypeFromContext(Object context) {
|
||||
if (context instanceof ICConfigurationDescription)
|
||||
return ICoreVariableContextInfo.CONTEXT_CONFIGURATION;
|
||||
else
|
||||
return ICoreVariableContextInfo.CONTEXT_WORKSPACE;
|
||||
}
|
||||
|
||||
public ICoreVariableContextInfo getMacroContextInfoForContext(Object context){
|
||||
public ICoreVariableContextInfo getMacroContextInfoForContext(Object context) {
|
||||
return new DefaultVariableContextInfo(getMacroContextTypeFromContext(context),context);
|
||||
}
|
||||
|
||||
public IVariableSubstitutor getVariableSubstitutor(IVariableContextInfo info, String inexistentMacroValue, String listDelimiter){
|
||||
public IVariableSubstitutor getVariableSubstitutor(IVariableContextInfo info, String inexistentMacroValue, String listDelimiter) {
|
||||
return new EnvVarVariableSubstitutor(info,inexistentMacroValue,listDelimiter);
|
||||
// if(fVariableSubstitutor == null)
|
||||
// if (fVariableSubstitutor == null)
|
||||
// fVariableSubstitutor = new EnvVarVariableSubstitutor(info,inexistentMacroValue,listDelimiter);
|
||||
// else {
|
||||
// try {
|
||||
// fVariableSubstitutor.setMacroContextInfo(info);
|
||||
// fVariableSubstitutor.setInexistentMacroValue(inexistentMacroValue);
|
||||
// fVariableSubstitutor.setListDelimiter(listDelimiter);
|
||||
// } catch (CdtVariableException e){
|
||||
// } catch (CdtVariableException e) {
|
||||
// fVariableSubstitutor = new EnvVarVariableSubstitutor(info,inexistentMacroValue,listDelimiter);
|
||||
// }
|
||||
// }
|
||||
|
@ -428,5 +401,4 @@ public class EnvironmentVariableManager implements
|
|||
return fContributedEnvironment;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -75,43 +75,43 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
private boolean fNameOnly;
|
||||
private int fCode;
|
||||
|
||||
VarKey(IEnvironmentVariable var, boolean nameOnly){
|
||||
VarKey(IEnvironmentVariable var, boolean nameOnly) {
|
||||
fVar = var;
|
||||
fNameOnly = nameOnly;
|
||||
}
|
||||
|
||||
public IEnvironmentVariable getVariable(){
|
||||
public IEnvironmentVariable getVariable() {
|
||||
return fVar;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if(obj == this)
|
||||
if (obj == this)
|
||||
return true;
|
||||
|
||||
if(!(obj instanceof VarKey))
|
||||
if (!(obj instanceof VarKey))
|
||||
return false;
|
||||
|
||||
VarKey other = (VarKey)obj;
|
||||
|
||||
IEnvironmentVariable otherVar = other.fVar;
|
||||
|
||||
if(fVar == otherVar)
|
||||
if (fVar == otherVar)
|
||||
return true;
|
||||
|
||||
if(!CDataUtil.objectsEqual(fVar.getName(), otherVar.getName()))
|
||||
if (!CDataUtil.objectsEqual(fVar.getName(), otherVar.getName()))
|
||||
return false;
|
||||
|
||||
if(fNameOnly)
|
||||
if (fNameOnly)
|
||||
return true;
|
||||
|
||||
if(fVar.getOperation() != otherVar.getOperation())
|
||||
if (fVar.getOperation() != otherVar.getOperation())
|
||||
return false;
|
||||
|
||||
if(!CDataUtil.objectsEqual(fVar.getValue(), otherVar.getValue()))
|
||||
if (!CDataUtil.objectsEqual(fVar.getValue(), otherVar.getValue()))
|
||||
return false;
|
||||
|
||||
if(!CDataUtil.objectsEqual(fVar.getDelimiter(),otherVar.getDelimiter()))
|
||||
if (!CDataUtil.objectsEqual(fVar.getDelimiter(),otherVar.getDelimiter()))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
@ -120,24 +120,24 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
@Override
|
||||
public int hashCode() {
|
||||
int code = fCode;
|
||||
if(code == 0){
|
||||
if (code == 0) {
|
||||
code = 47;
|
||||
|
||||
String tmp = fVar.getName();
|
||||
if(tmp != null)
|
||||
if (tmp != null)
|
||||
code += tmp.hashCode();
|
||||
|
||||
if(fNameOnly)
|
||||
if (fNameOnly)
|
||||
return code;
|
||||
|
||||
code += fVar.getOperation();
|
||||
|
||||
tmp = fVar.getValue();
|
||||
if(tmp != null)
|
||||
if (tmp != null)
|
||||
code += tmp.hashCode();
|
||||
|
||||
tmp = fVar.getDelimiter();
|
||||
if(tmp != null)
|
||||
if (tmp != null)
|
||||
code += tmp.hashCode();
|
||||
|
||||
fCode = code;
|
||||
|
@ -146,20 +146,20 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
}
|
||||
|
||||
}
|
||||
public StorableEnvironment getEnvironment(Object context){
|
||||
public StorableEnvironment getEnvironment(Object context) {
|
||||
return getEnvironment(context,true);
|
||||
}
|
||||
|
||||
protected StorableEnvironment getEnvironment(Object context, boolean forceLoad){
|
||||
// if(context == null)
|
||||
protected StorableEnvironment getEnvironment(Object context, boolean forceLoad) {
|
||||
// if (context == null)
|
||||
// return null;
|
||||
|
||||
StorableEnvironment env = null;
|
||||
if(context instanceof IInternalCCfgInfo){
|
||||
if (context instanceof IInternalCCfgInfo) {
|
||||
try {
|
||||
CConfigurationSpecSettings settings = ((IInternalCCfgInfo)context).getSpecSettings();
|
||||
env = settings.getEnvironment();
|
||||
if(env == null && forceLoad){
|
||||
if (env == null && forceLoad) {
|
||||
env = loadEnvironment(context, settings.isReadOnly());
|
||||
settings.setEnvironment(env);
|
||||
}
|
||||
|
@ -167,8 +167,8 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
CCorePlugin.log(e);
|
||||
}
|
||||
}
|
||||
else if(context instanceof IWorkspace || context == null){
|
||||
if(fWorkspaceVariables == null && forceLoad)
|
||||
else if (context instanceof IWorkspace || context == null) {
|
||||
if (fWorkspaceVariables == null && forceLoad)
|
||||
fWorkspaceVariables = loadEnvironment(context, false);
|
||||
env = fWorkspaceVariables;
|
||||
}
|
||||
|
@ -177,37 +177,37 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
}
|
||||
|
||||
@Override
|
||||
protected ISerializeInfo getSerializeInfo(Object context){
|
||||
protected ISerializeInfo getSerializeInfo(Object context) {
|
||||
ISerializeInfo serializeInfo = null;
|
||||
|
||||
if(context instanceof ICConfigurationDescription){
|
||||
if (context instanceof ICConfigurationDescription) {
|
||||
final ICConfigurationDescription cfg = (ICConfigurationDescription)context;
|
||||
final String name = cfg.getId();
|
||||
if(name != null)
|
||||
serializeInfo = new ISerializeInfo(){
|
||||
if (name != null)
|
||||
serializeInfo = new ISerializeInfo() {
|
||||
@Override
|
||||
public Preferences getNode(){
|
||||
public Preferences getNode() {
|
||||
return getConfigurationNode(cfg.getProjectDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPrefName(){
|
||||
public String getPrefName() {
|
||||
return name;
|
||||
}
|
||||
};
|
||||
}
|
||||
else if(context == null || context instanceof IWorkspace){
|
||||
else if (context == null || context instanceof IWorkspace) {
|
||||
final Preferences prefs = getWorkspaceNode();
|
||||
final String name = PREFNAME_WORKSPACE;
|
||||
if (prefs != null)
|
||||
serializeInfo = new ISerializeInfo(){
|
||||
serializeInfo = new ISerializeInfo() {
|
||||
@Override
|
||||
public Preferences getNode(){
|
||||
public Preferences getNode() {
|
||||
return prefs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPrefName(){
|
||||
public String getPrefName() {
|
||||
return name;
|
||||
}
|
||||
};
|
||||
|
@ -215,74 +215,74 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
return serializeInfo;
|
||||
}
|
||||
|
||||
private Preferences getConfigurationNode(ICProjectDescription projDes){
|
||||
private Preferences getConfigurationNode(ICProjectDescription projDes) {
|
||||
Preferences prefNode = getProjectNode(projDes);
|
||||
if(prefNode == null)
|
||||
if (prefNode == null)
|
||||
return null;
|
||||
|
||||
return prefNode.node(NODENAME_CFG);
|
||||
}
|
||||
|
||||
private Preferences getProjectNode(ICProjectDescription projDes){
|
||||
if(projDes == null)
|
||||
private Preferences getProjectNode(ICProjectDescription projDes) {
|
||||
if (projDes == null)
|
||||
return null;
|
||||
IProject project = projDes.getProject();
|
||||
if(!project.exists())
|
||||
if (!project.exists())
|
||||
return null;
|
||||
|
||||
Preferences prefNode = new ProjectScope(project).getNode(CCorePlugin.PLUGIN_ID);
|
||||
if(prefNode == null)
|
||||
if (prefNode == null)
|
||||
return null;
|
||||
|
||||
return prefNode.node(NODENAME);
|
||||
}
|
||||
|
||||
private Preferences getWorkspaceNode(){
|
||||
private Preferences getWorkspaceNode() {
|
||||
Preferences prefNode = new InstanceScope().getNode(CCorePlugin.PLUGIN_ID);
|
||||
if(prefNode == null)
|
||||
if (prefNode == null)
|
||||
return null;
|
||||
|
||||
return prefNode.node(NODENAME);
|
||||
}
|
||||
|
||||
public void checkInexistentConfigurations(ICProjectDescription projDes){
|
||||
public void checkInexistentConfigurations(ICProjectDescription projDes) {
|
||||
Preferences prefNode = getConfigurationNode(projDes);
|
||||
if(prefNode == null)
|
||||
if (prefNode == null)
|
||||
return;
|
||||
|
||||
try{
|
||||
String ids[] = prefNode.keys();
|
||||
boolean found = false;
|
||||
for (String id : ids) {
|
||||
if(projDes.getConfigurationById(id) == null){
|
||||
if (projDes.getConfigurationById(id) == null) {
|
||||
prefNode.remove(id);
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(found)
|
||||
if (found)
|
||||
prefNode.flush();
|
||||
}
|
||||
catch(BackingStoreException e){
|
||||
catch(BackingStoreException e) {
|
||||
}
|
||||
}
|
||||
|
||||
public void storeWorkspaceEnvironment(boolean force){
|
||||
if(fWorkspaceVariables != null){
|
||||
public void storeWorkspaceEnvironment(boolean force) {
|
||||
if (fWorkspaceVariables != null) {
|
||||
try{
|
||||
storeEnvironment(fWorkspaceVariables,ResourcesPlugin.getWorkspace(),force, true);
|
||||
} catch(CoreException e){
|
||||
} catch(CoreException e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public StorableEnvironment getWorkspaceEnvironmentCopy(){
|
||||
public StorableEnvironment getWorkspaceEnvironmentCopy() {
|
||||
StorableEnvironment envVar = getEnvironment(null);
|
||||
return new StorableEnvironment(envVar, false);
|
||||
}
|
||||
|
||||
public boolean setWorkspaceEnvironment(StorableEnvironment env){
|
||||
public boolean setWorkspaceEnvironment(StorableEnvironment env) {
|
||||
StorableEnvironment oldEnv = getEnvironment(null);
|
||||
|
||||
fWorkspaceVariables = new StorableEnvironment(env, false);
|
||||
|
@ -296,13 +296,13 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
return event != null;
|
||||
}
|
||||
|
||||
static EnvironmentChangeEvent createEnvironmentChangeEvent(IEnvironmentVariable[] newVars, IEnvironmentVariable[] oldVars){
|
||||
static EnvironmentChangeEvent createEnvironmentChangeEvent(IEnvironmentVariable[] newVars, IEnvironmentVariable[] oldVars) {
|
||||
IEnvironmentVariable[] addedVars = null, removedVars = null, changedVars = null;
|
||||
|
||||
if(oldVars == null || oldVars.length == 0){
|
||||
if(newVars != null && newVars.length != 0)
|
||||
if (oldVars == null || oldVars.length == 0) {
|
||||
if (newVars != null && newVars.length != 0)
|
||||
addedVars = newVars.clone();
|
||||
} else if(newVars == null || newVars.length == 0){
|
||||
} else if (newVars == null || newVars.length == 0) {
|
||||
removedVars = oldVars.clone();
|
||||
} else {
|
||||
HashSet<VarKey> newSet = new HashSet<VarKey>(newVars.length);
|
||||
|
@ -322,11 +322,11 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
newSet.removeAll(oldSet);
|
||||
oldSet.removeAll(newSetCopy);
|
||||
|
||||
if(newSet.size() != 0){
|
||||
if (newSet.size() != 0) {
|
||||
addedVars = varsFromKeySet(newSet);
|
||||
}
|
||||
|
||||
if(oldSet.size() != 0){
|
||||
if (oldSet.size() != 0) {
|
||||
removedVars = varsFromKeySet(oldSet);
|
||||
}
|
||||
|
||||
|
@ -341,19 +341,19 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
modifiedSet.remove(new VarKey(oldVar, false));
|
||||
}
|
||||
|
||||
if(modifiedSet.size() != 0)
|
||||
if (modifiedSet.size() != 0)
|
||||
changedVars = varsFromKeySet(modifiedSet);
|
||||
}
|
||||
|
||||
if(addedVars != null || removedVars != null || changedVars != null)
|
||||
if (addedVars != null || removedVars != null || changedVars != null)
|
||||
return new EnvironmentChangeEvent(addedVars, removedVars, changedVars);
|
||||
return null;
|
||||
}
|
||||
|
||||
static IEnvironmentVariable[] varsFromKeySet(Set<VarKey> set){
|
||||
static IEnvironmentVariable[] varsFromKeySet(Set<VarKey> set) {
|
||||
IEnvironmentVariable vars[] = new IEnvironmentVariable[set.size()];
|
||||
int i = 0;
|
||||
for(Iterator<VarKey> iter = set.iterator(); iter.hasNext(); i++){
|
||||
for(Iterator<VarKey> iter = set.iterator(); iter.hasNext(); i++) {
|
||||
VarKey key = iter.next();
|
||||
vars[i] = key.getVariable();
|
||||
}
|
||||
|
@ -362,7 +362,7 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
}
|
||||
|
||||
|
||||
public void storeProjectEnvironment(ICProjectDescription des, boolean force){
|
||||
public void storeProjectEnvironment(ICProjectDescription des, boolean force) {
|
||||
ICConfigurationDescription cfgs[] = des.getConfigurations();
|
||||
for (ICConfigurationDescription cfg : cfgs) {
|
||||
storeEnvironment(cfg, force, false);
|
||||
|
@ -375,9 +375,9 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
}
|
||||
}
|
||||
|
||||
private void storeEnvironment(Object context, boolean force, boolean flush){
|
||||
private void storeEnvironment(Object context, boolean force, boolean flush) {
|
||||
StorableEnvironment env = getEnvironment(context, false);
|
||||
if(env != null){
|
||||
if (env != null) {
|
||||
try {
|
||||
storeEnvironment(env, context, force, flush);
|
||||
} catch (CoreException e) {
|
||||
|
@ -385,12 +385,9 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableSupplier#getVariable()
|
||||
*/
|
||||
@Override
|
||||
public IEnvironmentVariable getVariable(String name, Object context) {
|
||||
if(getValidName(name) == null)
|
||||
if (getValidName(name) == null)
|
||||
return null;
|
||||
IEnvironmentVariable var = fOverrideVariables.getVariable(name);
|
||||
StorableEnvironment env = getEnvironment(context);
|
||||
|
@ -399,13 +396,10 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
return EnvVarOperationProcessor.performOperation(env.getVariable(name), var);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableSupplier#getVariables()
|
||||
*/
|
||||
@Override
|
||||
public IEnvironmentVariable[] getVariables(Object context) {
|
||||
StorableEnvironment env = getEnvironment(context);
|
||||
if(env == null)
|
||||
if (env == null)
|
||||
return null;
|
||||
IEnvironmentVariable[] override = filterVariables(fOverrideVariables.getVariables());
|
||||
IEnvironmentVariable[] normal = filterVariables(env.getVariables());
|
||||
|
@ -442,88 +436,88 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
return fOverrideVariables.createVariable(name,value,op,delimiter);
|
||||
}
|
||||
|
||||
public IEnvironmentVariable createVariable(String name, String value, int op, String delimiter, Object context){
|
||||
if(getValidName(name) == null)
|
||||
public IEnvironmentVariable createVariable(String name, String value, int op, String delimiter, Object context) {
|
||||
if (getValidName(name) == null)
|
||||
return null;
|
||||
StorableEnvironment env = getEnvironment(context);
|
||||
if(env == null)
|
||||
if (env == null)
|
||||
return null;
|
||||
IEnvironmentVariable var = env.createVariable(name,value,op,delimiter);
|
||||
if(env.isChanged()){
|
||||
if (env.isChanged()) {
|
||||
// updateProjectInfo(context);
|
||||
env.setChanged(false);
|
||||
}
|
||||
return var;
|
||||
}
|
||||
|
||||
public IEnvironmentVariable deleteVariable(String name, Object context){
|
||||
public IEnvironmentVariable deleteVariable(String name, Object context) {
|
||||
StorableEnvironment env = getEnvironment(context);
|
||||
if(env == null)
|
||||
if (env == null)
|
||||
return null;
|
||||
IEnvironmentVariable var = env.deleteVariable(name);
|
||||
if(var != null){
|
||||
if (var != null) {
|
||||
// updateProjectInfo(context);
|
||||
}
|
||||
return var;
|
||||
}
|
||||
|
||||
public void deleteAll(Object context){
|
||||
public void deleteAll(Object context) {
|
||||
StorableEnvironment env = getEnvironment(context);
|
||||
if(env == null)
|
||||
if (env == null)
|
||||
return;
|
||||
|
||||
if(env.deleteAll()){
|
||||
if (env.deleteAll()) {
|
||||
// updateProjectInfo(context);
|
||||
}
|
||||
}
|
||||
|
||||
public void setVariables(IEnvironmentVariable vars[], Object context){
|
||||
public void setVariables(IEnvironmentVariable vars[], Object context) {
|
||||
StorableEnvironment env = getEnvironment(context);
|
||||
if(env == null)
|
||||
if (env == null)
|
||||
return;
|
||||
|
||||
env.setVariales(vars);
|
||||
if(env.isChanged()){
|
||||
if (env.isChanged()) {
|
||||
// updateProjectInfo(context);
|
||||
env.setChanged(false);
|
||||
}
|
||||
}
|
||||
|
||||
// protected void updateProjectInfo(Object context){
|
||||
// protected void updateProjectInfo(Object context) {
|
||||
// }
|
||||
|
||||
// protected void cfgVarsModified(ICConfigurationDescription cfg){
|
||||
// protected void cfgVarsModified(ICConfigurationDescription cfg) {
|
||||
// cfg.setRebuildState(true);
|
||||
// EnvironmentVariableProvider.getDefault().checkBuildPathVariables(cfg);
|
||||
// }
|
||||
|
||||
protected String getValidName(String name){
|
||||
if(name == null || (name = name.trim()).length() == 0)
|
||||
protected String getValidName(String name) {
|
||||
if (name == null || (name = name.trim()).length() == 0)
|
||||
return null;
|
||||
// if(fNonOverloadableVariables != null){
|
||||
// for(int i = 0; i < fNonOverloadableVariables.length; i++){
|
||||
// if(fNonOverloadableVariables[i].equals(EnvVarOperationProcessor.normalizeName(name)))
|
||||
// if (fNonOverloadableVariables != null) {
|
||||
// for(int i = 0; i < fNonOverloadableVariables.length; i++) {
|
||||
// if (fNonOverloadableVariables[i].equals(EnvVarOperationProcessor.normalizeName(name)))
|
||||
// return null;
|
||||
// }
|
||||
// }
|
||||
return name;
|
||||
}
|
||||
|
||||
protected IEnvironmentVariable[] filterVariables(IEnvironmentVariable variables[]){
|
||||
protected IEnvironmentVariable[] filterVariables(IEnvironmentVariable variables[]) {
|
||||
return EnvVarOperationProcessor.filterVariables(variables,null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean appendEnvironment(Object context) {
|
||||
StorableEnvironment env = getEnvironment(context);
|
||||
if(env == null)
|
||||
if (env == null)
|
||||
return true;
|
||||
return env.appendEnvironment();
|
||||
}
|
||||
|
||||
public boolean appendContributedEnvironment(Object context){
|
||||
public boolean appendContributedEnvironment(Object context) {
|
||||
StorableEnvironment env = getEnvironment(context);
|
||||
if(env == null)
|
||||
if (env == null)
|
||||
return true;
|
||||
return env.appendContributedEnvironment();
|
||||
}
|
||||
|
@ -531,21 +525,21 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
|
||||
public void setAppendEnvironment(boolean append, Object context) {
|
||||
StorableEnvironment env = getEnvironment(context);
|
||||
if(env != null){
|
||||
if (env != null) {
|
||||
env.setAppendEnvironment(append);
|
||||
}
|
||||
}
|
||||
|
||||
public void setAppendContributedEnvironment(boolean append, Object context){
|
||||
public void setAppendContributedEnvironment(boolean append, Object context) {
|
||||
StorableEnvironment env = getEnvironment(context);
|
||||
if(env != null){
|
||||
if (env != null) {
|
||||
env.setAppendContributedEnvironment(append);
|
||||
}
|
||||
}
|
||||
|
||||
public void restoreDefaults(Object context){
|
||||
public void restoreDefaults(Object context) {
|
||||
StorableEnvironment env = getEnvironment(context);
|
||||
if(env != null){
|
||||
if (env != null) {
|
||||
env.restoreDefaults();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue