Community
Participate
Working Groups
Build Identifier: M20100909-0800 Steps to reproduce: 1. Create a C/C++ project with several source files 2. Change a project property of a single file, e.g. optimization level 3. Build the project 4. Open that file properties and click Restore Defaults 5. Build the project Instead of building the file whose properties were restored to defaults, the project is first cleaned and then fully built. Reproducible for internal and external builder. Reproducible: Always
Related to bug 193286, but with different scenario. When a file is restored to defaults, the MBS calls Configuration.removeResourceConfiguration() that sets rebuildNeeded=true. Instead, it should record the resource that changed and build it.
(In reply to comment #1) > Related to bug 193286, but with different scenario. When a file is restored to > defaults, the MBS calls Configuration.removeResourceConfiguration() that sets > rebuildNeeded=true. Instead, it should record the resource that changed and > build it. It should be sufficient to just IResource.touch() the file. It'll then be rebuilt at the next build. Also needs a test...
(In reply to comment #2) > (In reply to comment #1) > > Related to bug 193286, but with different scenario. When a file is restored to > > defaults, the MBS calls Configuration.removeResourceConfiguration() that sets > > rebuildNeeded=true. Instead, it should record the resource that changed and > > build it. > > It should be sufficient to just IResource.touch() the file. It'll then be > rebuilt at the next build. Also needs a test... I think the file will be rebuilt in all project configurations then, not only the changed one. Are we OK with that? Some time ago I applied a quick fix that changes the time stamp of the corresponding object as was done in a patch for bug 193286.
Created attachment 212138 [details] The quick fix I've done against CDT 7.0.1.