Jump to: navigation, search

Difference between revisions of "CDT/ScannerDiscovery61/Stories"

(New page: === Disclaimer === I am about to attach Work In Progress Alpha version of Scanner Discovery for CDT 8.0 to bug 290631. This is generally working version but may be rough on the edges. The...)
 
(Disclaimer)
Line 1: Line 1:
=== Disclaimer ===
+
= The Stories and The Alpha Version of Scanner Discovery for CDT 8.0 =
 +
 
 +
== Disclaimer ==
  
 
I am about to attach Work In Progress Alpha version of Scanner Discovery for CDT 8.0 to bug 290631. This is generally working version but may be rough on the edges. The code is far from clean and not suitable for commit.
 
I am about to attach Work In Progress Alpha version of Scanner Discovery for CDT 8.0 to bug 290631. This is generally working version but may be rough on the edges. The code is far from clean and not suitable for commit.
Line 6: Line 8:
  
 
So far there was not much of feedback and I hope to get any at the Summit. I won't attend, so please post thoughts in bug 290631. If feedback is positive, my plan is to add this to CDT 8.0 peacemeal. I would split it to smaller pieces and work on each one under a separate bugzilla.
 
So far there was not much of feedback and I hope to get any at the Summit. I won't attend, so please post thoughts in bug 290631. If feedback is positive, my plan is to add this to CDT 8.0 peacemeal. I would split it to smaller pieces and work on each one under a separate bugzilla.
 +
 +
Andrew Gvozdev
 +
 +
== Legacy Projects ==
 +
 +
Special care is being taken to keep the choice of using legacy Scanner Discovery mechanizm. That choice could be the default until the new functionality is stable enough. There is a checkbox in New Project Wizard to enable/disable it on project creation (see Regular Use). The new stuff is enabled by default in demo version though - solely for the demo purpose.
 +
 +
== Regular Use ==
 +
 +
For the regular user using project types and toolchains supported by CDT, no any special setup is necessary.
 +
 +
Scanner discovery for a project is defined when the project is created by New Project Wizard. It is possible to enable the new "alpha" version or keep using legacy method.
 +
 +
[Screenshot]
 +
 +
If user is using legacy discovery it is still possible to use project properties to use new scanner discovery providers (see [LanguageSettingsProviders]).
 +
 +
== Boost Story ==
 +
 +
Here is an example how you would setup Boost libraries project in eclipse. This does not require any special settings related to Scanner Discovery, just bjam option to provoke compiler command in output.
 +
 +
1. Download latest boost library from http://sourceforge.net/projects/boost/files/boost/1.44.0/
 +
2. Download also bjam from there
 +
3. Unzip the source and copy bjam.exe into the source root.
 +
4. Create a new Makefile project with MinGW toolchain in the folder with boost sources.
 +
 +
[Screenshot]
 +
 +
5. In project properties change Builder Settings to be able to compile:
 +
- Use External Builder
 +
- Uncheck "Generate Makefiles automatically"
 +
- Uncheck "Use default build command"
 +
- Set "Build Command" to "bjam -d+2 --toolset=gcc". Option "-d+2" is needed to get compiler command printed in the output.
 +
- In Behaviour Tab remove "all" from "Build (Incremental build)" target.
 +
Save settings.
 +
 +
6. Build the project.
 +
 +
The project may not compile successfully everything but it is not the goal here. It generates enough build output to demonstrate how scanner discovery picks compilation options and assigns them to proper resources in the project.
 +
 +
[Screenshot]
 +
 +
== XLC Story ==
 +
 +
This story is to be written yet. The new Scanner Discovery (i.e. language settings providers) is a part of CDT core. It associates language id with language settings providers. However, it looks like XLC Toolchain is relying on input types which is managed build concept and is not available in CDT core. Since current UI is pretty much MBS-centric it gets away with it. In order to get benefits of the new stuff XLC toolchain should be wired to the languages provided by the core.

Revision as of 16:12, 14 September 2010

The Stories and The Alpha Version of Scanner Discovery for CDT 8.0

Disclaimer

I am about to attach Work In Progress Alpha version of Scanner Discovery for CDT 8.0 to bug 290631. This is generally working version but may be rough on the edges. The code is far from clean and not suitable for commit.

There is a lot of moving parts and connection points to wire to CDT. I may have missed some - if you notice let me know. So far my biggest concern was to connect the moving parts and keep it from falling apart. UI is pretty much experimental and needs to be reworked from interaction design standpoint and consolidated with existing one. I shall go again along the stories posted trying to streamline the flow from user POV. If your scenario is missing, please let me know.

So far there was not much of feedback and I hope to get any at the Summit. I won't attend, so please post thoughts in bug 290631. If feedback is positive, my plan is to add this to CDT 8.0 peacemeal. I would split it to smaller pieces and work on each one under a separate bugzilla.

Andrew Gvozdev

Legacy Projects

Special care is being taken to keep the choice of using legacy Scanner Discovery mechanizm. That choice could be the default until the new functionality is stable enough. There is a checkbox in New Project Wizard to enable/disable it on project creation (see Regular Use). The new stuff is enabled by default in demo version though - solely for the demo purpose.

Regular Use

For the regular user using project types and toolchains supported by CDT, no any special setup is necessary.

Scanner discovery for a project is defined when the project is created by New Project Wizard. It is possible to enable the new "alpha" version or keep using legacy method.

[Screenshot]

If user is using legacy discovery it is still possible to use project properties to use new scanner discovery providers (see [LanguageSettingsProviders]).

Boost Story

Here is an example how you would setup Boost libraries project in eclipse. This does not require any special settings related to Scanner Discovery, just bjam option to provoke compiler command in output.

1. Download latest boost library from http://sourceforge.net/projects/boost/files/boost/1.44.0/ 2. Download also bjam from there 3. Unzip the source and copy bjam.exe into the source root. 4. Create a new Makefile project with MinGW toolchain in the folder with boost sources.

[Screenshot]

5. In project properties change Builder Settings to be able to compile: - Use External Builder - Uncheck "Generate Makefiles automatically" - Uncheck "Use default build command" - Set "Build Command" to "bjam -d+2 --toolset=gcc". Option "-d+2" is needed to get compiler command printed in the output. - In Behaviour Tab remove "all" from "Build (Incremental build)" target. Save settings.

6. Build the project.

The project may not compile successfully everything but it is not the goal here. It generates enough build output to demonstrate how scanner discovery picks compilation options and assigns them to proper resources in the project.

[Screenshot]

XLC Story

This story is to be written yet. The new Scanner Discovery (i.e. language settings providers) is a part of CDT core. It associates language id with language settings providers. However, it looks like XLC Toolchain is relying on input types which is managed build concept and is not available in CDT core. Since current UI is pretty much MBS-centric it gets away with it. In order to get benefits of the new stuff XLC toolchain should be wired to the languages provided by the core.