[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [cdt-dev] Finding include dependencies.
|
Well here it is anyway.
Assuming you want to find the include paths for a given resource (I start
from the project)...
Here is some code adapted from what I wrote to figure out how to navigate
the MBS info and find (and change) the include paths.
If it's not a Managed Build System project, I'm sure there's a similar way.
(This will probably get the formatting all garbled by the email, my
apologies in advance.)
IResource resource= ... ;// can be any resource, I use project.
IManagedBuildInfo mbo = ManagedBuildManager.getBuildInfo(resource);
IManagedProject mp=mbo.getManagedProject();
showOptions(mp);
/**
* Print the options for a project.<br>
* e.g. for Debug and Release configurations, get all the tools
(compiler, linker etc.) then for each tool,
* get all the options and print them.
* <br>
* This helps in figuring out what they are, and what you want to
change.
*
* @param proj the (managed) project for which print all this stuff.
*/
private void showOptions(IManagedProject proj) {
System.out.println("Managed Project: "+proj.getName());
IConfiguration[] configs = proj.getConfigurations();
try {
for (int i = 0; i < configs.length; i++) {
IConfiguration cf = configs[i];
ITool[] allTools = cf.getTools();
int numTools = allTools.length;
System.out.println("Config " + i + ": " +
cf.getName()+ " has "+numTools+" tools.");
for (int k = 0; k < allTools.length; k++) {
ITool tool = allTools[k];
System.out.println(" Tool " + k + ": " +
tool.getName());
IOption[] options = tool.getOptions();
for (int j = 0; j < options.length; j++) {
IOption opt = options[j];
String foundOptionID = opt.getId();
System.out.println(" option " + j +
" " + opt.getName() + " id="
+ foundOptionID);
if(opt.getValueType()==IOption.
INCLUDE_PATH) {
showIncludePaths(opt);
}
}
}
System.out.println("Config " + i + ": " +
cf.getName()
+ "======= End of ALL tools ");
// another way to access Tool
String ext = "c";
ITool cfTool = cf.getToolFromInputExtension(ext);
System.out.println("Tool by ext: " + ext + " is: "
+ cfTool.getName());
// Look for include path when we know the option ID
String optID =
"gnu.c.compiler.option.include.paths";
IOption option = cfTool.getOptionById(optID);
System.out.println("Option " + optID + " is " +
option.getName());
IOption[] options = cfTool.getOptions();
for (int j = 0; j < options.length; j++) {
IOption opt = options[j];
String foundOptionID = opt.getId();
System.out.println(" option " + j + " " +
opt.getName() + " id="
+ foundOptionID);
if(opt.getValueType()==IOption.INCLUDE_PATH)
{
showIncludePaths(opt);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Display the list of include paths in an option which is presumed
* to be the include paths option.
* @param opt
* @throws BuildException
*/
private void showIncludePaths(IOption opt) throws BuildException {
Assert.isTrue(opt.getValueType() == IOption.INCLUDE_PATH);
// if the option is a list of include paths, display them.
String[] includePaths = opt.getIncludePaths();
for (int index = 0; index < includePaths.length; index++) {
String path = includePaths[index];
System.out.println(" include path " + index + ": " +
path);
}
}
...Beth
Beth Tibbitts (859) 243-4981 (TL 545-4981)
IBM T.J.Watson Research Center
Mailing Address: IBM Corp., 455 Park Place, Lexington, KY 40511
Beth
Tibbitts/Watson/I
BM@IBMUS To
Sent by: "CDT General developers list."
cdt-dev-bounces@e <cdt-dev@xxxxxxxxxxx>
clipse.org cc
Subject
06/08/2006 10:47 Re: [cdt-dev] Finding include
AM dependencies.
Please respond to
"CDT General
developers list."
<cdt-dev@eclipse.
org>
If you mean walking the build info to find the includes,
I recently figured out how to do that, I used Search before, too, and
that's gone now.
Confirm that's what you need, and I'll include some sample code.
...Beth
Beth Tibbitts (859) 243-4981 (TL 545-4981)
IBM T.J.Watson Research Center
Mailing Address: IBM Corp., 455 Park Place, Lexington, KY 40511
Neeraj U Bhope
<neerajbhope@in.i
bm.com> To
Sent by: cdt-dev@xxxxxxxxxxx
cdt-dev-bounces@e cc
clipse.org
Subject
[cdt-dev] Finding include
06/08/2006 10:09 dependencies.
AM
Please respond to
"CDT General
developers list."
<cdt-dev@eclipse.
org>
In the earlier search functionality there was a way to search for include
dependencies.
One could do something like the following (extracted from erstwhile class
org.eclipse.cdt.internal.core.sourcedependency.UpdateDependency)
CSearchPattern.createPattern(location.toOSString(),ICSearchConstants.INCLUDE,
ICSearchConstants.REFERENCES,ICSearchConstants.EXACT_MATCH, true);
What would be the new equivalent on the PDOM infrastructure?
--
neeraj_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev