|Re: [cdt-dev] Scanner Discovery|
I am thankful that you work on cleaning up this part of CDT and I am sorry that I don’t have the bandwidth to really look into your work. However from your description I do have a question:
The scanner discovery can be different for each project. For instance I have a project where I use the new c++ standard and another where I don’t. In the former case I pass the extra argument ‘-std=c1x’ to the compiler inspection in the latter I don’t.
Generally speaking, there are command-line options that influence the built-in include-path and macro definitions. Will I lose the ability to customize the compiler inspection on project level?
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]
On Behalf Of Andrew Gvozdev
I've been working on new design for scanner discovery, see http://wiki.eclipse.org/CDT/ScannerDiscovery61 and bug 290631. There are some scenarios how it could be used and screenshots at http://wiki.eclipse.org/CDT/ScannerDiscovery61/Stories.
At that point I've got working version on sd90 branch of CDT repository. The core machinery is done, and UI is usable.
Here are some highlights:
- scanner discovery is naturally associated with build configuration
- inspection of built-in compiler settings is done only once (per compiler), results are available to all projects in workspace
- algorithm of Build Output Parsers is more accurate, takes in consideration build folder, can recognize include and macro files (-include and -macros options), undefine (-U)
- handles EFS
- notification mechanism for changes in the language settings
- Mac Frameworks supported
- extension point for extenders, abstract classes for typical kinds of providers to extend
- means to plug discovery to resource listeners
- switch to back down to the legacy SD just in case
The code in cdt.core was tested, covered with JUnits and pretty well documented, although other parts (build plugins and especially UI) need clean-up/some more work.
The plan is to listen to community feedback and hopefully proceed with incorporating the core part to CDT master. I'd like to include it this early in the release cycle so to have room to fix issues should any arise. The rest is to be cleaned up and gradually added with the objective of Juno release.
So, I count on some feedback. The sd90 branch is being built on Hudson and can be downloaded at https://hudson.eclipse.org/hudson/job/cdt-sd90/. The code is, well, sd90 branch and API is concentrated in org.eclipse.cdt.core/model/org.eclipse.cdt.core.language.settings.providers package.