Symbian3/PDK/Source/GUID-F5D49215-B34A-5FCC-A7E1-0AF3275694B3.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Thu, 11 Mar 2010 18:02:22 +0000
changeset 3 46218c8b8afa
parent 1 25a17d01db0c
child 5 f345bda72bc4
permissions -rw-r--r--
week 10 bug fix submission (SF PDK version): Bug 1892, Bug 1897, Bug 1319. Also 3 or 4 documents were found to contain code blocks with SFL, which has been fixed. Partial fix for broken links, links to Forum Nokia, and the 'Symbian platform' terminology issues.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-F5D49215-B34A-5FCC-A7E1-0AF3275694B3" xml:lang="en"><title>GCCXML
build target</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The GCCXML build target generates an XML description of the project and
the program. This XML is intended to be parsed by other development and program
analysis tools. The XML is generated using the GCC-XML (<xref href="http://www.gccxml.org" scope="external">http://www.gccxml.org</xref>) tool, which is distributed
on kits in the <filepath>epoc32\tools\</filepath> directory. </p>
<p>To execute a GCCXML build, use the <filepath>abld</filepath> command as
follows: </p>
<p><userinput>abld build gccxml [udeb/urel]</userinput> </p>
<p>GCCXML is available as a target for all projects that can be built for
an ARM target (this is assumed by the build tools unless the <filepath>bld.inf</filepath> file
specifies otherwise with a <codeph>prj_platforms</codeph> statement.) </p>
<p>The build of a Symbian platform component for the GCCXML platform results
in three actions: </p>
<ol id="GUID-631DFF50-B9DB-5FAD-A1F5-DBD74995772E">
<li id="GUID-E51ED016-411E-5754-8B7B-13C6459B4206"><p>The GCC-XML tool is
called on each source file used in the build of a component's binary. An XML
file is output as a result. </p> <p>The GCC-XML output format is not yet extensively
documented: see <xref href="http://www.gccxml.org/HTML/FAQ.html" scope="external">http://www.gccxml.org/HTML/FAQ.html</xref> for
the latest information. </p> </li>
<li id="GUID-7C664D07-2D30-5A96-A4CF-B3404C622206"><p>The tool chain also
generates an XML file describing some elements of the component's .mmp file. </p> <p>The
XML format is described below. </p> </li>
<li id="GUID-9259CF29-1B9D-5607-BDCC-104AD99F34C3"><p>The tool chain packages
the output from steps 1 and 2 into a zip file named <filepath>&lt;project-name&gt;.gxp</filepath>.
The file is stored in <filepath>epoc32\release\gccxml\[udeb|urel]\</filepath>. </p> </li>
</ol>
<section><title>Format of &lt;project&gt;.mmp.xml </title><p>A GCCXML build creates
an XML representation of the project's mmp file named <filepath>&lt;project&gt;.mmp.xml</filepath>.
Not all the mmp file statements are represented in the XML. </p><p>The following
XML elements and attributes are used: </p><table id="GUID-93991E16-AE60-550C-80BA-316285A463C7">
<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
<tbody>
<row>
<entry><p> <b>Element</b>  </p> </entry>
<entry><p> <b>Attribute</b>  </p> </entry>
<entry><p> <b>Description</b>  </p> </entry>
</row>
<row>
<entry><p>mmpInfo </p> </entry>
<entry><p> </p> </entry>
<entry><p>Top-level wrapper element </p> </entry>
</row>
<row>
<entry><p>mmp </p> </entry>
<entry><p>path </p> </entry>
<entry><p>Full path of the .mmp file </p> </entry>
</row>
<row>
<entry><p>target </p> </entry>
<entry><p>name </p> </entry>
<entry><p>TARGET statement value </p> </entry>
</row>
<row>
<entry><p> </p> </entry>
<entry><p>type </p> </entry>
<entry><p>TARGETTYPE statement value </p> </entry>
</row>
<row>
<entry/>
<entry><p>path </p> </entry>
<entry><p>TARGETPATH statement value </p> </entry>
</row>
<row>
<entry><p>abi </p> </entry>
<entry><p>type </p> </entry>
<entry><p>Deduced ABI e.g. ARM4 </p> </entry>
</row>
<row>
<entry><p>linkas </p> </entry>
<entry><p>name </p> </entry>
<entry><p>LINKAS statement value </p> </entry>
</row>
<row>
<entry><p>uids </p> </entry>
<entry><p>u0 </p> </entry>
<entry><p>1st UID of the executable </p> </entry>
</row>
<row>
<entry><p> </p> </entry>
<entry><p>u1 </p> </entry>
<entry><p>2nd UID of the executable (from the UID statement) </p> </entry>
</row>
<row>
<entry><p> </p> </entry>
<entry><p>u2 </p> </entry>
<entry><p>3rd UID of the executable (from the UID statement) </p> </entry>
</row>
<row>
<entry><p>defFile </p> </entry>
<entry><p>path </p> </entry>
<entry><p>Full path of the .def file </p> </entry>
</row>
<row>
<entry><p>libs </p> </entry>
<entry><p> </p> </entry>
<entry><p>Wrapper for lib elements that describe the libraries the project
links to </p> </entry>
</row>
<row>
<entry><p>lib </p> </entry>
<entry><p>name </p> </entry>
<entry><p>Name of the library </p> </entry>
</row>
<row>
<entry><p> </p> </entry>
<entry><p>type </p> </entry>
<entry><p>For standard libraries specified by the <codeph>LIBRARY</codeph> keyword
this is not used. </p> <p>For a stub library inserted by the build processor,
this is "First". </p> <p>For libraries specified by the <codeph>ASSPLIBRARY</codeph> statement,
this is "ASSP". </p> <p> <b>Note</b>: "ASSP" is applicable only for Symbian
platform versions prior to v9.1. Since v9.1, it is not a valid library type. </p> <p>For
libraries specified by the <codeph>STATICLIBRARY</codeph> statement, this
is "Static". </p> </entry>
</row>
<row>
<entry><p>sourceFile </p> </entry>
<entry><p>name </p> </entry>
<entry><p>Source file name </p> </entry>
</row>
<row>
<entry/>
<entry><p>path </p> </entry>
<entry><p>Path to the source file </p> </entry>
</row>
</tbody>
</tgroup>
</table><p>The population of some of attributes is dependent on the type and
format of the component being built. </p></section>
</conbody></concept>