Hi,
Recently I investigated how the CDT build
variables work in different places. I discovered the following:
- in Launch Configuration dialog only Eclipse Platform variables
work and only in "Arguments" and "Working directory" fields, but
not in "C/C++ Application".
- in project properties --> "C/C++ Build" and "Paths and
Symbols" there are also a lot of useful variables (ConfigName,
ConfigDescription, CDTVersion and others).
- in "Modify Make Target" dialog the Eclipse and CDT variables
work fine, however there is no "Variables..." button.
Probably there are also other places where variables are
substituted, but I want to discuss these ones.
Firstly, I am wondering why variable substitution does not work for
"C/C++ Application". It seems it is easy to implement the necessary
functionality similarly to the "Working directory". If it was not
implemented just because nobody need it and there is no objections I
can file a bug and provide a patch.
Secondly, I cannot understand why CDT variables are implemented via
the own manager, but not as Eclipse Platform variables. I also found
the bug
180256 ("Launch configurations should
support build variables") in which Doug describes
the problem with platform variables extension. However I cannot see
the problem. I tried to implement ConfigName as a Platform variable
like this:
public class MyCDTVersion implements
IDynamicVariableResolver {
@Override
public String resolveValue(IDynamicVariable variable,
String argument) throws CoreException {
IDynamicVariable projectName =
VariablesPlugin.getDefault().getStringVariableManager().getDynamicVariable("project_name");
IProject project =
ResourcesPlugin.getWorkspace().getRoot().getProject(projectName.getValue(null));
ICProjectDescription projectDescription =
CoreModel.getDefault().getProjectDescription(project);
return
projectDescription.getActiveConfiguration().getName();
}
}
And it works fine. It seems that other variables can also be
implemented. So is that comment actual for now? I want to have at
least ConfigName and ConfigDescription to use them in Launch
Configuration Dialog. I can provide a patch for that.
An the last one, probably "Modify Make Target" dialog should be
updated. I cannot find the corresponding bug. Did I miss it or
should I create a new one?
Thanks,
Anton.
|