core/com.nokia.carbide.cpp.doc.user/html/concepts/build_system.htm
author timkelly
Fri, 27 Mar 2009 10:47:09 -0500
changeset 17 71c0485f97c2
parent 2 d760517a8095
child 1225 a546534a48de
permissions -rw-r--r--
new image for CDK
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
cawthron
parents:
diff changeset
     1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
cawthron
parents:
diff changeset
     2
<html>
cawthron
parents:
diff changeset
     3
<head>
cawthron
parents:
diff changeset
     4
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
cawthron
parents:
diff changeset
     5
<meta http-equiv="Content-Style-Type" content="text/css" />
cawthron
parents:
diff changeset
     6
<meta name="LASTUPDATED" content="06/17/05 11:09:43" />
cawthron
parents:
diff changeset
     7
<title>Build System Overview</title>
cawthron
parents:
diff changeset
     8
<link rel="StyleSheet" href="../../book.css" type="text/css"/>
cawthron
parents:
diff changeset
     9
</head>
cawthron
parents:
diff changeset
    10
<body bgcolor="#FFFFFF">
cawthron
parents:
diff changeset
    11
<h2>Build System Overview </h2>
cawthron
parents:
diff changeset
    12
<p>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 <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 OS build system then you should feel right at home with the Carbide.c++ builder user interface. </p>
cawthron
parents:
diff changeset
    13
<p>In Carbide.c++, as in the Symbian OS, 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>
cawthron
parents:
diff changeset
    14
<h4>Basic Build Commands </h4>
cawthron
parents:
diff changeset
    15
<p>There are several methods of invoking the Symbian OS build tools on a project or source file. </p>
cawthron
parents:
diff changeset
    16
<ul>
cawthron
parents:
diff changeset
    17
  <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>
cawthron
parents:
diff changeset
    18
  <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>
cawthron
parents:
diff changeset
    19
  <li><b>Build All Configurations</b> - This command invokes the same command as Build Project, but on all configurations in the selected project.</li>
cawthron
parents:
diff changeset
    20
  <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>
cawthron
parents:
diff changeset
    21
</ul>
cawthron
parents:
diff changeset
    22
<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>
cawthron
parents:
diff changeset
    23
<h4>Command Line Arguments</h4>
cawthron
parents:
diff changeset
    24
<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 
cawthron
parents:
diff changeset
    25
<b>Carbide Build Configurations</b> panel in the <b>Properties for &lt;<i>project</i>&gt;</b> window.</p>
cawthron
parents:
diff changeset
    26
<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>
cawthron
parents:
diff changeset
    27
<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>
cawthron
parents:
diff changeset
    28
<h5>Other references </h5>
cawthron
parents:
diff changeset
    29
<ul>
cawthron
parents:
diff changeset
    30
  <li><a href="../reference/menus/build_all_targets.htm">Build All Configurations</a></li>
cawthron
parents:
diff changeset
    31
  <li><a href="../reference/build_properties/pane_build_config.htm">Carbide Build Configurations</a></li>
cawthron
parents:
diff changeset
    32
</ul>
cawthron
parents:
diff changeset
    33
<div id="footer">Copyright &copy; 2009 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>
cawthron
parents:
diff changeset
    34
cawthron
parents:
diff changeset
    35
</body>
cawthron
parents:
diff changeset
    36
</html>