|
» Subscribe » Favorite Links » What is S60? » Freeware & Trials » S60 devices » Hints and tips » About this blog |
» Blognotes (15) » Bugs and Workarounds (4) » Build tools (5) » Carbide.c++ 1.1 (4) » Carbide.c++ 1.2 (8) » Carbide.c++ 1.3.x (9) » Carbide.c++ 2.0.x (12) » Carbide Plug-Ins (4) » CodeWarrior (2) » FAQ (6) » Future directions (25) » General (48) » Off-topic (5) » On-device debugging (13) » Performance Investigator (2) » Product features (18) » Product releases (16) » Screencast (14) » Support (36) » Tool setup (6) » UI Designer (8) » Usability (18) » Work in Progress (14) » Write-build-debug (4) |
|
» New Remote Connections View » Terminating Multiple Processes » Agile Tuning of the Austin Team » Introduction to the workspace screencast » Adding DLLs while Debugging |
|
Subscribe to RSS feed For email notification, please click here ยป |
« Lost in the Shuffle | Main | Building a better build system - Part 4 Benchmarking »
In the third part of this series of articles I want to tallk about a problem customers ran into during the beta cycle when using the dependency tracking of the Carbide 1.3 build system and how we tackled that problem. It resulted in the next major improvement in the build system.
.
By default we have an option called "Build before launching" turned on in Preferences > Run/Debug > Launching > General Options turned on. So when the user went to debug the dependency tracker would still have some overhead determining if dependency files needed to be generated or not. For very large project this could take minutes and the user didn't want to wait every time a debug session was started.
So we decided to give the user the option to use the Eclipse incremental builder. It's an option called "Use default incremental builder" which is in the global and project build workspace preferencese. It's turned off by default.
It would then determine if any changes were made to the workspace. If no changes were made then nothing was done. If changes were made then we let the compiler do the dependency tracking. The downside of it's use was that if any changes were made to file outside of the project it would not detect them and no build is done.
So for users with very large proejects the user has a couple optioons. Either turn off the "debug before launch" option so the project won't get rebuilt everytime you debug or turn on "Use default incremental builder". Just know it's limitations!
Comments
Hi,
I think I've come across another shortcoming of the incremental builder.
If you have a project that's on multiple SDKs (say it was imported for both UIQ and S60 SDK), then switching from one SDK to other (i.e. using the hammer toolbar button dropdown) doesn't automatically build for the target/new SDK, if it was already built for the current one.
Otherwise a highly recommended feature.
Posted by: Tanzim | June 12, 2008 09:27 AM