Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Ferguson2008-02-22 17:39:24 +0000
committerAndrew Ferguson2008-02-22 17:39:24 +0000
commitd3630393474642125ee0c5628fb9c8c82c43eb9f (patch)
tree816fa3dcb3e549f69d45400535c8777dafce1c93
parent7a98d26913fa7506aec2a487f55d76e0cf85ada6 (diff)
downloadorg.eclipse.cdt-d3630393474642125ee0c5628fb9c8c82c43eb9f.tar.gz
org.eclipse.cdt-d3630393474642125ee0c5628fb9c8c82c43eb9f.tar.xz
org.eclipse.cdt-d3630393474642125ee0c5628fb9c8c82c43eb9f.zip
201087: apply contributions on behalf of James Blackburn
-rw-r--r--core/org.eclipse.cdt.core/schema/templateProcessTypes.exsd2
-rw-r--r--doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html100
-rw-r--r--doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/exampletemplate.html251
3 files changed, 327 insertions, 26 deletions
diff --git a/core/org.eclipse.cdt.core/schema/templateProcessTypes.exsd b/core/org.eclipse.cdt.core/schema/templateProcessTypes.exsd
index 6dcd8a8b554..7914b5a3eba 100644
--- a/core/org.eclipse.cdt.core/schema/templateProcessTypes.exsd
+++ b/core/org.eclipse.cdt.core/schema/templateProcessTypes.exsd
@@ -62,7 +62,7 @@
<attribute name="processRunner" type="string" use="required">
<annotation>
<documentation>
- A class that extends org.eclipse.cdt.templateengine.process.ProcessRunner abstract class and implements all its abstract methods. This is the code that actually processes.
+ A class that extends org.eclipse.cdt.core.templateengine.process.ProcessRunner abstract class and implements all its abstract methods. This is the code that actually processes.
</documentation>
<appInfo>
<meta.attribute kind="java" basedOn="org.eclipse.cdt.templateengine.process.ProcessRunner"/>
diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html
index 44692ba8d34..1efadb18ea6 100644
--- a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html
+++ b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html
@@ -60,7 +60,7 @@ pages based on whether the template needs user input or not.
This document details the schema for writing project templates. The
schema file <code class="filename">TemplateDescriptorSchema.xsd</code>, which defines the
structure for the project templates, is part of
-<code class="filename">org.eclipse.cdt.templateengine</code> plug-in.
+<code class="filename">org.eclipse.cdt.core</code> plug-in.
</p>
<p>
The structure or schema for a project template is as follows:
@@ -369,7 +369,7 @@ The <code>process</code> element within the root element of a project
template defines the processes to be followed to create a project, based on the
inputs taken. Here is the syntax for this element:
</p>
-<p class="CodeBlock"><code>&lt;process type="org.eclipse.cdt.templateengine.&lt;process type&gt;"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="name" value=""/&gt; <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;complex name="name"&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/complex&gt; <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple-array name="values"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/simple-array&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;complex-array name="name"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/complex-array&gt; <br><br>&lt;/process&gt;</code></p>
+<p class="CodeBlock"><code>&lt;process type="org.eclipse.cdt.{core|managedbuilder.core}.&lt;process type&gt;"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="name" value=""/&gt; <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;complex name="name"&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/complex&gt; <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple-array name="values"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/simple-array&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;complex-array name="name"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/complex-array&gt; <br><br>&lt;/process&gt;</code></p>
<p>
A <code>process</code> element defines a single process. A process is
like a procedure with a set of parameters. In similar terms, the
@@ -380,7 +380,7 @@ arguments for the process matching their types and in the order specified.
<p>
You can specify the process type using the <code>type</code> attribute.
For example, to add files to a project you can use
-<code>org.eclipse.cdt.templateengine.AddFiles</code> as the process type.
+<code>org.eclipse.cdt.core.AddFiles</code> as the process type.
</p>
<p>
A <code>process</code> element may include the following child elements:
@@ -448,7 +448,7 @@ for the copy process.
</p>
<p>
The Template Engine plug-in provides a set of process types using the
-extension-point <code class="filename">org.eclipse.cdt.templateengine.processType</code>. Using
+extension-point <code class="filename">org.eclipse.cdt.core.templateProcessTypes</code>. Using
these process types you can describe a process in your template. For example,
you can describe the copy process by providing the source and destination
folder names.
@@ -456,7 +456,7 @@ folder names.
<p>
The following is a list of process types provided by the Template Engine:
</p>
-<ul>
+<!--<ul>
<li>
<p>
<b>NewProject</b>: It defines all the parameters required for a
@@ -493,10 +493,10 @@ type of the target binary. It is of type <code>simple</code>.
configurations for the project. It is of type <code>simple</code>.
</p>
</li>
-</ul>
+</ul> -->
<li>
<p>
-<b>NewManagedProject</b>: It defines all the parameters
+<i>org.eclipse.cdt.managedbuilder.core.</i><b>NewManagedProject</b>: It defines all the parameters
required for a new managed project and provides the fully qualified name of the
class, which processes these parameters.
</p>
@@ -533,7 +533,7 @@ configurations for the managed project. It is of type <code>simple</code>.
</ul>
<li>
<p>
-<b>Copy</b>: It defines all the parameters required to copy
+<i>org.eclipse.cdt.core.</i><b>Copy</b>: It defines all the parameters required to copy
files and provides the fully qualified name of the class, which processes these
parameters.
</p>
@@ -571,14 +571,14 @@ location.
</ul>
<li>
<p>
-<b>Append</b>: It defines all the parameters required to append
+<i>org.eclipse.cdt.core.</i><b>Append</b>: It defines all the parameters required to append
files to a project and provides the fully qualified name of the class, which
processes these parameters. For more information about the parameters, refer to
the <code>Copy</code> process type described above.
</p>
<li>
<p>
-<b>AddFile</b>: It defines all the parameters required to add a
+<i>org.eclipse.cdt.core.</i><b>AddFile</b>: It defines all the parameters required to add a
file to the project and provides the fully qualified name of the class, which
processes these parameters.
</p>
@@ -603,7 +603,7 @@ process type described above.
</ul>
<li>
<p>
-<b>AddFiles</b>: It defines all the parameters required to add
+<i>org.eclipse.cdt.core.</i><b>AddFiles</b>: It defines all the parameters required to add
files to a project and provides the fully qualified name of the class, which
processes these parameters.
</p>
@@ -628,7 +628,7 @@ process type described above.
</ul>
<li>
<p>
-<b>CreateSourceFolder</b>: It defines all the parameters
+<i>org.eclipse.cdt.core.</i><b>CreateSourceFolder</b>: It defines all the parameters
required to create a folder for the source files in a project and provides the
fully qualified name of the class, which processes these parameters.
</p>
@@ -652,7 +652,7 @@ created. It is of <code>simple</code> type.
</ul>
<li>
<p>
-<b>AddLink</b>: It defines all the parameters required to
+<i>org.eclipse.cdt.core.</i><b>AddLink</b>: It defines all the parameters required to
create a linked file and provides the fully qualified name of the class, which
processes these parameters.
</p>
@@ -682,7 +682,7 @@ file should be created. It is of <code>simple</code> type.
</ul>
<li>
<p>
-<b>CreateIncludeFolder</b>: It defines all the parameters
+<i>org.eclipse.cdt.managedbuilder.core.</i><b>CreateIncludeFolder</b>: It defines all the parameters
required to create a folder for the header files in a project and provides the
fully qualified name of the class, which processes these parameters. For
information about the parameters, refer to the <code>CreateSourceFolder</code>
@@ -690,7 +690,48 @@ process type described above.
</p>
<li>
<p>
-<b>SetMBSStringOptionValue</b>: It defines all the parameters
+<i>org.eclipse.cdt.managedbuilder.core.</i><b>ExcludeResources</b>: It defines all the parameters
+required to exclude resources from a CDT project and provides the
+fully qualified name of the class, which processes these parameters.
+</p>
+<p>
+Here is a list of parameters defined by this process type:
+</p>
+<ul>
+<li>
+<p>
+<em>projectName</em>: Use this parameter to specify the name
+of the project for which resources will be excluded. It is of <code>simple</code>
+type.
+</p>
+<li>
+<p>
+<em>configIdPattern</em>: Use this parameter to specify a regular expression of
+<code>java.util.regex.Pattern</code> syntax for matching against project configuration ids.
+The resources that match any of the regular expressions given in the <i>filePatterns</i> argument
+will be excluded from all matching project configurations. It is of <code>simple</code> type.
+</p>
+<li>
+<p>
+<em>filePatterns</em>: Use this parameter to specify a <code>simple-array</code> of
+<code>java.util.regex.Pattern</code> for matching against project resources to be excluded. The paths that
+will be matched against are workspace relative (include the project folder) and use forward slash as the file separator.
+That this argument is an array is purely to allow logically separate patterns to be given separately rather than as one big string.
+If any of the regular expressions matches then the resource in question will be excluded for the matching configuration(s).
+The resources that match any of the regular expressions given in the <i>filePatterns</i> argument
+will be excluded for all matching project configurations. It is of <code>simple-array</code> type.
+<li>
+<p>
+<em>invertedConfigMatching</em>: If this is set to "true" then the set of configurations for which resources
+matching any of the specified file patterns will be inverted. This enables you to specify which configurations the
+files should not be excluded for without having to know what other configurations may exist. It is of <code>simple</code> type.
+</p>
+</li>
+</ul>
+</p>
+<li>
+<p>
+<i>org.eclipse.cdt.managedbuilder.core.</i><b>SetMBSStringOptionValue</b>: It defines all the parameters
required to create a string option value and provides the fully qualified name
of the class, which processes these parameters.
</p>
@@ -733,7 +774,7 @@ the resource. It is of <code>simple</code> type.
</ul>
<li>
<p>
-<b>SetMBSStringListOptionValues</b>: It defines all the
+<i>org.eclipse.cdt.managedbuilder.core.</i><b>SetMBSStringListOptionValues</b>: It defines all the
parameters required to create a string list of option values and provides the
fully qualified name of the class, which processes these parameters. The
parameters required are similar to that of <code>SetMBSStringOptionValue</code>
@@ -743,7 +784,7 @@ option values. For information about the parameters, refer to the
</p>
<li>
<p>
-<b>SetMBSBooleanOptionValue</b>: It defines all the parameters
+<i>org.eclipse.cdt.managedbuilder.core.</i><b>SetMBSBooleanOptionValue</b>: It defines all the parameters
required to create a boolean option value and provides the fully qualified name
of the class, which processes these parameters. The parameters required are
similar to that of <code>SetMBSStringOptionValue</code> process type, only
@@ -753,7 +794,7 @@ For information about the parameters, refer to the
</p>
<li>
<p>
-<b>AppendMBSStringOptionValue</b>: It defines all the
+<i>org.eclipse.cdt.managedbuilder.core.</i><b>AppendToMBSStringOptionValue</b>: It defines all the
parameters required to append a string option value to an existing string
option. It also provides the fully qualified name of the class, which processes
these parameters. For information about the parameters, refer to the
@@ -761,14 +802,21 @@ these parameters. For information about the parameters, refer to the
</p>
<li>
<p>
-<b>AppendCreate</b>: It defines all the parameters required to
+<i>org.eclipse.cdt.managedbuilder.core.</i><b>AppendToMBSStringListOptionValues</b>: It defines all the
+parameters required to append a string list of option values to an existing string list of option value.
+It also provides the fully qualified name of the class, which processes these parameters. For information
+about the parameters, refer to the <code>SetMBSStringListOptionValues</code> process type described above.
+</p>
+<li>
+<p>
+<i>org.eclipse.cdt.core.</i><b>AppendCreate</b>: It defines all the parameters required to
append or create a file in a project. It also provides the fully qualified name
of the class, which processes these parameters. For information about the
parameters, refer to the <code>AddFiles</code> process type described above.
</p>
<li>
<p>
-<b>CreateResourceIdentifier</b>: It defines all the parameters
+<i>org.eclipse.cdt.core.</i><b>CreateResourceIdentifier</b>: It defines all the parameters
required to append or create a resource identifier. It also provides the fully
qualified name of the class, which processes these parameters.
</p>
@@ -789,9 +837,19 @@ type.
</p>
</li>
</ul>
+<li>
+<p>
+<i>org.eclipse.cdt.managedbuilder.core.</i><b>GenerateMakefileWithBuildDescription</b>:
+</p>
+<ul>
+<li>
+<p><em>projectName: </em>Use this parameter to specify the name
+of the project for which a makefile will be generated from the current project build info. It is of <code>simple</code>
+type.
+</p>
</li>
</ul>
-<p>
+<p><br>
Once the project template has been written, register it with Eclipse to
make it available for use. For more information on this, refer to
<A href="Howtoregistertemplates.html#Howto%2eregister%2etemplates">How to register a template with Eclipse</a>.
diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/exampletemplate.html b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/exampletemplate.html
index 0f916442609..dd644908d85 100644
--- a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/exampletemplate.html
+++ b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/exampletemplate.html
@@ -35,16 +35,259 @@
The following is an example template to create a simple Symbian OS
<code class="filename">EXE</code> project:
</p>
-<p class="CodeBlock"><code>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;<br>&lt;template type="ProjTempl" version="1.0" supplier="Symbian" revision="1.0" author="Bala Torati"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id="EXE" label="Simple EXE" description="A skeletal Symbian OS EXE project. Creates a folder for sources and another for include."<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; help="help.html"&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property-group id="basics" label="Basic Settings" description="Basic properties of a project" type="PAGES-ONLY" help="help.html"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&lt;property id="uid2"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="UID 2"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="UID 2"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default="0x00000000"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern="0x[0-9a-fA-F]{8}"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hidden="false"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mandatory="true"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&lt;property id="uid3"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="UID 3"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="UID 3"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default="0x00000000"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern="0x[0-9a-fA-F]{8}"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hidden="false"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mandatory="false"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br><br>&lt;property id="vid"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="Vendor ID"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="Vendor ID"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default="0x00000000"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern="0x[0-9a-fA-F]{8}"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hidden="false"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mandatory="true"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br><br>&lt;property id="author"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="Author"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="Name of the author"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern=".*"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default=""<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hidden="false"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br><br>&lt;property id="copyright"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="Copyright notice"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="Your copyright notice"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern=".*"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default="Your copyright notice"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hidden="false"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br><br>&lt;property id="targetType"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="Target Type"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="Select the target type"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="select"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hidden="false"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mandatory="true"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item label="APP" selected="true" name="app"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item label="LIB" selected="false" name="lib"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item label="DLL" selected="false" name="dll"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item label="EXE" selected="false" name="exe"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item label="EXEDLL" selected="false" name="exedll"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property-group&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property-group id="directories" label="Project Directories" description="Generated files will be copied to the specified directories under the project root directory" type="PAGES-ONLY" help="help.html"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property id="incDir"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="Include"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="Directory for C++ header files"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;default="inc"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern="[a-zA-Z0-9]+"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mandatory="true"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;property id="sourceDir"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="Source"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="Directory for C++ source files"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default="src"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern="[a-zA-Z0-9]+"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mandatory="true"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property-group&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;process type="org.eclipse.cdt.templates.NewSymbianProject"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="name" value="$(projectName)"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="targetType" value="$(targetType)"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="uid2" value="$(uid2)"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="uid3" value="$(uid3)"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="vid" value="$(vid)"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/process&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;process type="org.eclipse.cdt.core.templateengine.process.processes.CreateSourceFolder"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="projectName" value="$(projectName)"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="path" value="$(sourceDir)"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/process&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;process type="org.eclipse.cdt.managedbuilder.templateengine.processes.CreateIncludeFolder"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="projectName" value="$(projectName)"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="path" value="$(incDir)"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/process&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;process type="org.eclipse.cdt.core.templateengine.process.processes.AddFiles"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="projectName" value="$(projectName)"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;complex-array name="files"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;element&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="source" value="inc/Basename.h"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="target" value="$(incDir)/$(baseName).h"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="replaceable" value="true"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/element&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;element&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="source" value="src/Basename.cpp"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="target" value="$(sourceDir)/$(baseName).cpp"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="replaceable" value="true"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/element&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/complex-array&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/process&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;process type="org.eclipse.cdt.managedbuilder.templateengine.processes.AppendToMBSStringListOptionValues"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple
-name="projectName" value= "$(projectName)"/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;complex-array name="resourcePaths"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;element&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="id" value=".*linker\.libraries\.libraries.*" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple-array name="values"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;element value="euser.lib" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/simple-array&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="path" value="" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/element&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/complex-array&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/process&gt;<br>&lt;/template&gt;</code></p>
+<p class="CodeBlock"><code>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;<br>
+&lt;template type="ProjTempl" version="1.0" supplier="Symbian" revision="1.0" author="Bala Torati"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id="EXE" label="Simple EXE" description="A skeletal Symbian OS EXE project. Creates a folder for sources and another for include."<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; help="help.html"&gt;<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;property-group id="basics" label="Basic Settings" description="Basic properties of a project" type="PAGES-ONLY" help="help.html"&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+&lt;property id="uid2"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="UID 2"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="UID 2"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default="0x00000000"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern="0x[0-9a-fA-F]{8}"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hidden="false"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mandatory="true"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+&lt;property id="uid3"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="UID 3"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="UID 3"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default="0x00000000"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern="0x[0-9a-fA-F]{8}"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hidden="false"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mandatory="false"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br>
+<br>
+&lt;property id="vid"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="Vendor ID"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="Vendor ID"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default="0x00000000"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern="0x[0-9a-fA-F]{8}"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hidden="false"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mandatory="true"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br>
+<br>
+&lt;property id="author"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="Author"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="Name of the author"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern=".*"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default=""<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hidden="false"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br>
+<br>
+&lt;property id="copyright"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="Copyright notice"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="Your copyright notice"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern=".*"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default="Your copyright notice"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hidden="false"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br>
+<br>
+&lt;property id="targetType"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="Target Type"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="Select the target type"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="select"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hidden="false"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mandatory="true"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item label="APP" selected="true" name="app"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item label="LIB" selected="false" name="lib"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item label="DLL" selected="false" name="dll"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item label="EXE" selected="false" name="exe"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item label="EXEDLL" selected="false" name="exedll"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property-group&gt;<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;property-group id="directories" label="Project Directories" description="Generated files will be copied to the specified directories under the project root directory" type="PAGES-ONLY" help="help.html"&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;property id="incDir"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="Include"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="Directory for C++ header files"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>
+&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;default="inc"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern="[a-zA-Z0-9]+"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mandatory="true"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;property id="sourceDir"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label="Source"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description="Directory for C++ source files"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type="input"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default="src"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern="[a-zA-Z0-9]+"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mandatory="true"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persist="true"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property-group&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;process type="org.eclipse.cdt.managedbuilder.core.NewManagedProject"&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="name" value="$(projectName)"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="targetType" value="$(targetType)"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="uid2" value="$(uid2)"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="uid3" value="$(uid3)"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="vid" value="$(vid)"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;/process&gt;<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;process type="org.eclipse.cdt.core.CreateSourceFolder"&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="projectName" value="$(projectName)"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="path" value="$(sourceDir)"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;/process&gt;<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;process type="org.eclipse.cdt.managedbuilder.core.CreateIncludeFolder"&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="projectName" value="$(projectName)"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="path" value="$(incDir)"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;/process&gt;<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;process type="org.eclipse.cdt.core.AddFiles"&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="projectName" value="$(projectName)"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;complex-array name="files"&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;element&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="source" value="inc/Basename.h"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="target" value="$(incDir)/$(baseName).h"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="replaceable" value="true"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/element&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;element&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="source" value="src/Basename.cpp"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="target" value="$(sourceDir)/$(baseName).cpp"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="replaceable" value="true"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/element&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/complex-array&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;/process&gt;<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;process type="org.eclipse.cdt.managedbuilder.core.AppendToMBSStringListOptionValues"&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple
+name="projectName" value= "$(projectName)"/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;complex-array name="resourcePaths"&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;element&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="id" value=".*linker\.libraries\.libraries.*" /&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple-array name="values"&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;element value="euser.lib" /&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/simple-array&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simple name="path" value="" /&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/element&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/complex-array&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;/process&gt;<br>
+&lt;/template&gt;</code></p>
<p>
The above given template copies the following source (<code class="filename">.cpp</code>)
and header (<code class="filename">.h</code>) files in the <code>src</code> and <code>inc</code>
folders respectively. These files uses a set of macros to get the values
specified by the developer for file name, author name, copyright etc.
</p>
-<p class="CodeBlock"><code>/*<br>============================================================================<br>&nbsp;Name : $(baseName).cpp<br>&nbsp;Author : $(author)<br>&nbsp;Version :<br>&nbsp;Copyright : $(copyright)<br>&nbsp;Description : Exe source file<br>============================================================================<br>*/<br><br>// Include Files <br><br>#include "$(baseName).h"<br>#include &lt;e32base.h&gt;<br>#include &lt;e32std.h&gt;<br>#include &lt;e32cons.h&gt; // Console<br><br><br>// Constants<br><br>_LIT(KTextConsoleTitle, "Console");<br>_LIT(KTextFailed, " failed, leave code = %d");<br>_LIT(KTextPressAnyKey, " [press any key]\n");<br><br><br>// Global Variables<br><br>LOCAL_D CConsoleBase* console; // write all messages to this<br><br><br>// Local Functions<br><br>LOCAL_C void MainL(const TDesC&amp; aArgs)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;//<br>&nbsp;&nbsp;&nbsp;&nbsp;// add your program code here, example code below<br>&nbsp;&nbsp;&nbsp;&nbsp;//<br>&nbsp;&nbsp;&nbsp;&nbsp;console-&gt;Write(_L("Hello, world!\n"));<br>&nbsp;&nbsp;&nbsp;&nbsp;console-&gt;Printf(_L("Command line args: \"%S\"\n"), &amp;aArgs);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br><br>LOCAL_C void DoStartL()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;// Create active scheduler (to run active objects)<br>&nbsp;&nbsp;&nbsp;&nbsp;CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();<br>&nbsp;&nbsp;&nbsp;&nbsp;CleanupStack::PushL(scheduler);<br>&nbsp;&nbsp;&nbsp;&nbsp;CActiveScheduler::Install(scheduler);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;// Call main function with command line<br>&nbsp;&nbsp;&nbsp;&nbsp;TBuf&lt;256&gt; cmdLine;<br>&nbsp;&nbsp;&nbsp;&nbsp;RProcess().CommandLine(cmdLine);<br>&nbsp;&nbsp;&nbsp;&nbsp;MainL(cmdLine);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;// Delete active scheduler<br>&nbsp;&nbsp;&nbsp;&nbsp;CleanupStack::PopAndDestroy(scheduler);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br><br>// Global Functions<br><br>GLDEF_C TInt E32Main()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;// Create cleanup stack<br>&nbsp;&nbsp;&nbsp;&nbsp;__UHEAP_MARK;<br>&nbsp;&nbsp;&nbsp;&nbsp;CTrapCleanup* cleanup = CTrapCleanup::New();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;// Create output console<br>&nbsp;&nbsp;&nbsp;&nbsp;TRAPD(createError, console = Console::NewL(KTextConsoleTitle, TSize(KConsFullScreen,KConsFullScreen)));<br>&nbsp;&nbsp;&nbsp;&nbsp;if (createError)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return createError;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;// Run application code inside TRAP harness, wait keypress when terminated<br>&nbsp;&nbsp;&nbsp;&nbsp;TRAPD(mainError, DoStartL());<br>&nbsp;&nbsp;&nbsp;&nbsp;if (mainError)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console-&gt;Printf(KTextFailed, mainError);<br>&nbsp;&nbsp;&nbsp;&nbsp;console-&gt;Printf(KTextPressAnyKey);<br>&nbsp;&nbsp;&nbsp;&nbsp;console-&gt;Getch();<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;delete console;<br>&nbsp;&nbsp;&nbsp;&nbsp;delete cleanup;<br>&nbsp;&nbsp;&nbsp;&nbsp;__UHEAP_MARKEND;<br>&nbsp;&nbsp;&nbsp;&nbsp;return KErrNone;<br>&nbsp;&nbsp;&nbsp;&nbsp;}</code></p>
-<p class="CodeBlock"><code>/*<br>============================================================================<br>&nbsp;Name : $(baseName).h<br>&nbsp;Author : $(author)<br>&nbsp;Version :<br>&nbsp;Copyright : $(copyright)<br>&nbsp;Description : Exe header file<br>============================================================================<br>*/<br><br>#ifndef __$(baseName)_H__<br>#define __$(baseName)_H__<br><br><br>// Include Files<br><br>#include &lt;e32base.h&gt;<br><br><br>// Function Prototypes<br><br>GLDEF_C TInt E32Main();<br><br><br>#endif // __$(baseName)_H__</code></p>
+<p class="CodeBlock"><code>/*<br>
+============================================================================<br>
+&nbsp;Name : $(baseName).cpp<br>
+&nbsp;Author : $(author)<br>
+&nbsp;Version :<br>
+&nbsp;Copyright : $(copyright)<br>
+&nbsp;Description : Exe source file<br>
+============================================================================<br>
+*/<br>
+<br>
+// Include Files <br>
+<br>
+#include "$(baseName).h"<br>
+#include &lt;e32base.h&gt;<br>
+#include &lt;e32std.h&gt;<br>
+#include &lt;e32cons.h&gt; // Console<br>
+<br>
+<br>
+// Constants<br>
+<br>
+_LIT(KTextConsoleTitle, "Console");<br>
+_LIT(KTextFailed, " failed, leave code = %d");<br>
+_LIT(KTextPressAnyKey, " [press any key]\n");<br>
+<br>
+<br>
+// Global Variables<br>
+<br>
+LOCAL_D CConsoleBase* console; // write all messages to this<br>
+<br>
+<br>
+// Local Functions<br>
+<br>
+LOCAL_C void MainL(const TDesC&amp; aArgs)<br>
+&nbsp;&nbsp;&nbsp;&nbsp;{<br>
+&nbsp;&nbsp;&nbsp;&nbsp;//<br>
+&nbsp;&nbsp;&nbsp;&nbsp;// add your program code here, example code below<br>
+&nbsp;&nbsp;&nbsp;&nbsp;//<br>
+&nbsp;&nbsp;&nbsp;&nbsp;console-&gt;Write(_L("Hello, world!\n"));<br>
+&nbsp;&nbsp;&nbsp;&nbsp;console-&gt;Printf(_L("Command line args: \"%S\"\n"), &amp;aArgs);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br>
+<br>
+<br>
+LOCAL_C void DoStartL()<br>
+&nbsp;&nbsp;&nbsp;&nbsp;{<br>
+&nbsp;&nbsp;&nbsp;&nbsp;// Create active scheduler (to run active objects)<br>
+&nbsp;&nbsp;&nbsp;&nbsp;CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();<br>
+&nbsp;&nbsp;&nbsp;&nbsp;CleanupStack::PushL(scheduler);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;CActiveScheduler::Install(scheduler);<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;// Call main function with command line<br>
+&nbsp;&nbsp;&nbsp;&nbsp;TBuf&lt;256&gt; cmdLine;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;RProcess().CommandLine(cmdLine);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;MainL(cmdLine);<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;// Delete active scheduler<br>
+&nbsp;&nbsp;&nbsp;&nbsp;CleanupStack::PopAndDestroy(scheduler);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br>
+<br>
+<br>
+// Global Functions<br>
+<br>
+GLDEF_C TInt E32Main()<br>
+&nbsp;&nbsp;&nbsp;&nbsp;{<br>
+&nbsp;&nbsp;&nbsp;&nbsp;// Create cleanup stack<br>
+&nbsp;&nbsp;&nbsp;&nbsp;__UHEAP_MARK;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;CTrapCleanup* cleanup = CTrapCleanup::New();<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;// Create output console<br>
+&nbsp;&nbsp;&nbsp;&nbsp;TRAPD(createError, console = Console::NewL(KTextConsoleTitle, TSize(KConsFullScreen,KConsFullScreen)));<br>
+&nbsp;&nbsp;&nbsp;&nbsp;if (createError)<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return createError;<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;// Run application code inside TRAP harness, wait keypress when terminated<br>
+&nbsp;&nbsp;&nbsp;&nbsp;TRAPD(mainError, DoStartL());<br>
+&nbsp;&nbsp;&nbsp;&nbsp;if (mainError)<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console-&gt;Printf(KTextFailed, mainError);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;console-&gt;Printf(KTextPressAnyKey);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;console-&gt;Getch();<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;delete console;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;delete cleanup;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;__UHEAP_MARKEND;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;return KErrNone;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;}</code></p>
+<p class="CodeBlock"><code>/*<br>
+============================================================================<br>
+&nbsp;Name : $(baseName).h<br>
+&nbsp;Author : $(author)<br>
+&nbsp;Version :<br>
+&nbsp;Copyright : $(copyright)<br>
+&nbsp;Description : Exe header file<br>
+============================================================================<br>
+*/<br>
+<br>
+#ifndef __$(baseName)_H__<br>
+#define __$(baseName)_H__<br>
+<br>
+<br>
+// Include Files<br>
+<br>
+#include &lt;e32base.h&gt;<br>
+<br>
+<br>
+// Function Prototypes<br>
+<br>
+GLDEF_C TInt E32Main();<br>
+<br>
+<br>
+#endif // __$(baseName)_H__</code></p>
<p>
When the developer chooses the above template in the New Project wizard,
the following wizard pages are generated:

Back to the top