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.