## Build preferences

The Carbide.c++ > Build page in the Preferences window provides global preferences to control general build options like clean, test components, dependency tracking, concurrent build jobs, build behavior, and emulator options.

NOTE Based on which SDKs the project uses, one or both of the SBSvX tabs are shown.

Figure 1 - Build workspace preferences page

The following options are available in both the global Build preference panel and the project Properties > Carbide.c++ > Project Settings panel.

##### Table 1 Build Preferences —items

Item | Explanation
--- | ---
Use built-in Nokia x86 environment variables for WINSCW builds | If enabled, Carbide adds the built-in x86 compiler environment variables to the build environment. If the option is not checked, the build process will build with whatever tools are defined in your environment. A directory named x86Build at the root of the product installation contains the build tools, libraries, and env_update.exe.
Build test components when building from bld.inf | Enable to build all the projects defined by .MMP files listed under the PRJ_TESTMMPFILES section of the component description file. If not enabled, only those projects defined by .MMP files listed under the PRJ_MMPFILES section of the component description file are built.
Run builds concurrently (improves compile time) | Enable to tell Carbide to generate concurrent builds up to the amount specified in the Build jobs field. This option can significantly reduce build times as it takes advantage of multi-core processors and hyperthreading to run multiple threads at once. If not enabled, only a single build is run. Note this may be required if your project contains circular dependencies or other issues that prevent concurrent builds from executing correctly.
Use default incremental builder | Enable to have Carbide determine if a build is required by checking the state of any file in the workspace.

Figure 2 - SBSv1 tab

##### Table 2 Symbian Build System v1 tab

Item | Explanation
--- | ---
Clean level | Specifies the level of clean to perform on project files. The levels include: Level 0 (abld clean) - removes all the intermediate files created during compilation, and all the executables and import libraries created by the linker Level 1 (abld reallyclean) - performs a clean operation, but also removes all exported files and makefiles Level 2 (abld reallyclean, bldmake clean) - performs a reallyclean operation and then removes all files created by bldmake
Manage dependency tracking (improves build speed) | Enable to have Carbide manage the dependency tracking for source and resource files. Carbide does this by separating out the generation of dependency information from the makefile and managing the entire process. All builds now can quickly compare whether new dependency information is required due to changes in a source file and only build those that need updating. If not enabled, the Symbian command line build system handles all dependency tracking by generating the dependency information in the makefiles. Because it does this for all project files, regardless of the number of changes, it can result in a performance penalty. A single edit in a MMP file forces a complete regeneration of the makefile dependency information for all project files.
Show a dialog to modify build actions when modified MMPs are detected | Enable to have Carbide ask before starting a build what action to take when modified files are detected. When disabled, do not show a dialog but use the default action listed below.
Default action to take when mmp files are modified | Defines the default action Carbide should execute when it detects modified MMP files and the option above is disabled: None Link Only Compile and Link
Do not offer to track dependencies for projects build on command-line | If you build a project from the command-line (with 'abld build') and then import the project into Carbide and attempt to build, Carbide will ask if you would like Carbide to manage source dependencies for you. Enabling this option insures Carbide will not ask you to manage dependencies (they will be done as normally done via 'abld build' command).

Figure 3 - SBSv2 tab

##### Table 3 Symbian Build System v2 tab

Item | Explanation
--- | ---
Clean level | Select the level of clean when cleaning a project. sbs clean erases all files created by a corresponding sbs target command (all intermediate files created during compilation and all executables and import libraries created by the linker) sbs reallyclean does what sbs clean does, and also removes files exported by sbs export and makefiles generated by sbs makefile, or the sbs test equivalents
Keep going | This build option tells a particular command to keep going even if unrelated build steps report errors or files are missing.
Debug mode | This option generates symbolic debug information for release or debug builds, independent of the compiler optimization level. By default, the build system generates symbolic debug information only for the debug builds. With this option, the generation of symbolic debug information is extended to release builds to support debugging of release binaries on ARM ABI compliant platforms.
Additional SBSv2 arguments | Enter additional SBSv2 build arguments here.
Override default make engine | Check this box to enable an edit box to specify the make engine to use, for example, eMake from Electric Cloud.

##### Related references

- Project Settings