| Summary: | CDT project is totally rebuilt two times when switching of build configuration | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Tools] CDT | Reporter: | David Pochet <dpochet> | ||||
| Component: | cdt-build-managed | Assignee: | Project Inbox <cdt-build-managed-inbox> | ||||
| Status: | NEW --- | QA Contact: | Jonah Graham <jonah> | ||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | cdtdoug, dion, freidin.alex, jamesblackburn+eclipse, yevshif, zulliger | ||||
| Version: | 7.0.1 | ||||||
| Target Milestone: | --- | ||||||
| Hardware: | PC | ||||||
| OS: | Windows XP | ||||||
| Whiteboard: | |||||||
| Bug Depends on: | 331031 | ||||||
| Bug Blocks: | |||||||
| Attachments: |
|
||||||
|
Description
David Pochet
Are you complaining about the indexer being rebuilt, or the project being rebuilt when changing configuration? The project is rebuilt (.c files are compiled again, but they haven't changed) Also ran across this issue. With Cygwin toolchain, if the indexer is bound to active configuration: *) The build runs CLEAN, then does full build, then calls "make all" again. Nothing happens at the latter build, since nothing changed. If the indexer is bound to Debug configuration *) The build button does CLEAN + BUILD every time, after changing active build configuration. In both cases, CLEAN should never be invoked as nothing changed in the project sources or settings. There is an improvement in HEAD. I observe the following with both Internal and External (make) builders: - When the indexer is set to a fixed configuration, then switching between configurations does not cause a full rebuild of the project. OK. - When the indexer is set to an active configuration in the WORKSPACE settings, then switching between configurations cause the project to be rebuilt. Bug. - The double build attempt is no longer reproducible. - The root cause for full rebuild is the Scanner Configuration Builder. If it is disabled in Project > Properties > Builders, then the project is not rebuilt after switching configuration. The Scanner calls ManagedBuildManager.updateCoreSettings() that eventually updates the project description with null builder, so at next build, a new builder is instantiated and it triggers a clean build. Created attachment 212142 [details]
Patch
This resolved the bug for me in CDT 7.0.1, but I've yet to check if this has no side effects on the scanner discovery.
|