GCCXML build target

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 (http://www.gccxml.org) tool, which is distributed on kits in the epoc32\tools\ directory.

To execute a GCCXML build, use the abld command as follows:

abld build gccxml [udeb/urel]

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 bld.inf file specifies otherwise with a prj_platforms statement.)

The build of a Symbian platform component for the GCCXML platform results in three actions:

  1. 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.

    The GCC-XML output format is not yet extensively documented: see http://www.gccxml.org/HTML/FAQ.html for the latest information.

  2. The tool chain also generates an XML file describing some elements of the component's .mmp file.

    The XML format is described below.

  3. The tool chain packages the output from steps 1 and 2 into a zip file named <project-name>.gxp. The file is stored in epoc32\release\gccxml\[udeb|urel]\.

Format of <project>.mmp.xml

A GCCXML build creates an XML representation of the project's mmp file named <project>.mmp.xml. Not all the mmp file statements are represented in the XML.

The following XML elements and attributes are used:

Element

Attribute

Description

mmpInfo

Top-level wrapper element

mmp

path

Full path of the .mmp file

target

name

TARGET statement value

type

TARGETTYPE statement value

 

path

TARGETPATH statement value

abi

type

Deduced ABI e.g. ARM4

linkas

name

LINKAS statement value

uids

u0

1st UID of the executable

u1

2nd UID of the executable (from the UID statement)

u2

3rd UID of the executable (from the UID statement)

defFile

path

Full path of the .def file

libs

Wrapper for lib elements that describe the libraries the project links to

lib

name

Name of the library

type

For standard libraries specified by the LIBRARY keyword this is not used.

For a stub library inserted by the build processor, this is "First".

For libraries specified by the ASSPLIBRARY statement, this is "ASSP".

Note: "ASSP" is applicable only for Symbian platform versions prior to v9.1. Since v9.1, it is not a valid library type.

For libraries specified by the STATICLIBRARY statement, this is "Static".

sourceFile

name

Source file name

 

path

Path to the source file

The population of some of attributes is dependent on the type and format of the component being built.