## Build System Overview

The Carbide.c++ build system provides a wrapper around the standard Symbian OS build process utilizing component description files (bld.inf) and project definition files (.mmp files). Because the Carbide.++ build system provides a visual view into this system, it will be useful for new developers to the Symbian OS to become familiar with the basic Symbian OS build process. Further information on the Symbian OS build system can be found in the Symbian Developer Library under the Build Tools Guide and Build Tools Reference sections. If you are already familiar with the Symbian OS build system then you should feel right at home with the Carbide.c++ builder user interface.

In Carbide.c++, as in the Symbian OS, a project is described by a bld.inf file. Hence, all projects must start with a bld.inf file. Carbide.c++ supports either building all components of a project (including extension makefiles) or only building selected sub-components. This gives the developer the granularity to either build all of a project’s dependencies or, if you are working on very large projects, only building a small sub-component of a larger project.

#### Basic Build Commands

There are several methods of invoking the Symbian OS build tools on a project or source file.

- Build Project - The is the default build process which invokes the call: calls 'abld build <platform> <target>'. The basic build process insures that the project definition makefiles are up to date and calls 'bldmake bldfiles' for the current platform where necessary.
- Compile - This command simply compiles a single file for a project by calling its makefile target directly.
- Build All Configurations - This command invokes the same command as Build Project, but on all configurations in the selected project.
- Build Symbian Component - This is a context menu option available on .mmp and .mk files only. You can use this to build a component outside the normal build process. This command invokes: 'abld build <platform> <target>' on the selected component.

NOTE The debugger has a setting under the Run/Debug > Launching preference page which performs a full build before the start of each debug session. If you prefer to do your own target build only you will want to turn the “Build (if required) before launching” setting off.

#### Command Line Arguments

The Carbide build system supports the use of command-line arguments for all stages of the build system. You can add these arguments in the Arguments pane of the Carbide Build Configurations panel in the Properties for <project> window.

For example, to generate a SYM file for UREL build you need to add the -debug argument to the abld makefile stage of the build process.

Always refer to the Symbian Developer Library to learn which arguments are supported by the SDK used by the project.

##### Other references

- Build All Configurations
- Carbide Build Configurations