core/com.nokia.carbide.cpp.doc.user/html/concepts/build_system.htm
author stechong
Wed, 20 Oct 2010 11:19:31 -0500
changeset 2165 2a7b5eccb0bc
parent 2131 ff0156b93599
permissions -rw-r--r--
Keeping PlatSim internal only.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="LASTUPDATED" content="06/17/05 11:09:43" />
<title>Build System Overview</title>
<link rel="StyleSheet" href="../../book.css" type="text/css"/>
</head>
<body >
<h2>Build System Overview </h2>
<p>The Carbide.c++ build system provides a wrapper around the standard Symbian 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 to become familiar with the basic Symbian build process. Further information on the Symbian build system can be found in the <a href="http://developer.symbian.com/main/oslibrary/osdocs/index.jsp">Symbian Developer Library</a> under the <b>Build Tools Guide</b> and <b>Build Tools Reference</b> sections. If you are already familiar with the Symbian build system then you should feel right at home with the Carbide.c++ builder user interface. </p>
<p>In Carbide.c++, as in the Symbian, a project is described by a <span class="code">bld.inf</span> file. Hence, all projects must start with a <span class="code">bld.inf</span> 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&#8217;s dependencies or, if you are working on very large projects, only building a small sub-component of a larger project. </p>
<h4>Basic Build Commands </h4>
<p>There are several methods of invoking the Symbian build tools on a project or source file. </p>
<ul>
  <li><b>Build Project</b> - The is the default build process which invokes the call: calls <span class="code">'abld build &lt;platform&gt; &lt;target&gt;'</span>. The basic build process insures that the project definition makefiles are up to date and calls 'bldmake bldfiles' for the current platform where necessary. </li>
  <li><b>Compile</b> - This command simply compiles a single file for a project by calling its <span class="code">makefile</span> target directly.</li>
  <li><b>Build All Configurations</b> - This command invokes the same command as Build Project, but on all configurations in the selected project.</li>
  <li><b>Build Symbian Component</b> - 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: <span class="code">'abld build &lt;platform&gt; &lt;target&gt;'</span> on the selected component. </li>
</ul>
<p class="note"><b>NOTE</b> The debugger has a setting under the Run/Debug &gt; 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 &#8220;Build (if required) before launching&#8221; setting off. </p>
<h4>Command Line Arguments</h4>
<p>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 <a href="../reference/build_properties/pane_build_config_args.htm">Arguments</a> pane of the
<b>Carbide Build Configurations</b> panel in the <b>Properties for &lt;<i>project</i>&gt;</b> window.</p>
<p>For example, to generate a SYM file for UREL build you need to add the <span class="code">-debug</span> argument to the <b>abld makefile</b> stage of the build process. </p>
<p>Always refer to the <a href="http://developer.symbian.com/main/oslibrary/osdocs/index.jsp">Symbian Developer Library</a> to learn which arguments are supported by the SDK used by the project. </p>
<h5>Other references </h5>
<ul>
  <li><a href="../reference/menus/build_all_targets.htm">Build All Configurations</a></li>
  <li><a href="../reference/build_properties/prop_carb_build_config.htm">Carbide Build Configurations</a></li>
</ul>
<div id="footer">Copyright &copy; 2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. <br>License: <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a></div>

</body>
</html>