Symbian3/SDK/Source/GUID-F79EE68F-FFC3-541E-AE3A-D7203034DA43.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Thu, 21 Jan 2010 18:18:20 +0000
changeset 0 89d6a7a84779
permissions -rw-r--r--
Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385

<?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-F79EE68F-FFC3-541E-AE3A-D7203034DA43" xml:lang="en"><title>mmp
project specification</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>This page describes the MMP for a typical GUI application.</p>
<p><b>TARGETTYPE</b> </p>
<p>From v9.0, a GUI application is an exe. This is specified with the <xref href="GUID-9535CF67-7541-554E-BE5C-9FDDFDB58EA5.dita">targettype</xref> statement:</p>
<codeblock id="GUID-CC425464-79E3-5388-B133-F031FD283943" xml:space="preserve">TARGETTYPE exe</codeblock>
<p>The target filename's extension can be either .app or .exe. This is specified
using a <xref href="GUID-5D4DA7CA-DAB8-51E6-B597-4E8B0AB56477.dita">target</xref> statement:</p>
<codeblock id="GUID-B8AD94B2-1E08-5E6F-A6B3-0665A5285DF3" xml:space="preserve">TARGET &lt;appname&gt;.exe</codeblock>
<p><b>UID</b> </p>
<p>Specify the UID for the application in a <xref href="GUID-BFCFD93E-D591-50D2-8263-D13D08DD9F15.dita">uid</xref> statement:</p>
<codeblock id="GUID-F6B71A27-0986-5E95-8125-39A7175F0D6C" xml:space="preserve">UID 0x100039CE &lt;UID3&gt;</codeblock>
<p>The UID2 value <codeph>0x100039CE</codeph> should be used for all applications.
The UID3 value is the unique identifier for the particular application.</p>
<p><b>Stack size</b> </p>
<p>By default, processes have a stack size of 8K. This can be insufficient
for some applications. To increase the size, use an <xref href="GUID-A8ECAA53-9094-5C0A-8893-2757559C15F0.dita">epocstacksize</xref> statement:</p>
<codeblock id="GUID-FCE56679-AB1D-5545-9ECF-7B4DD4637A8A" xml:space="preserve">// set stack to 20K
epocstacksize 0x5000</codeblock>
<p><b>UI resource</b> </p>
<p>Specify the application's UI resource file using a <xref href="GUID-5280EC0E-1A1F-5777-ACB1-CF4791EE2147.dita">start
resource</xref> statement:</p>
<codeblock id="GUID-5BC525DC-AF07-59C4-A59A-2ACF6CB82441" xml:space="preserve">START RESOURCE    &lt;appname&gt;.RSS
HEADER
TARGETPATH        \Resource\Apps
END</codeblock>
<p>The resource should be built into the <filepath>\Resource\Apps</filepath> directory.
This is specified using the <codeph>TARGETPATH</codeph> part of the statement. </p>
<p>The <codeph>header</codeph> line tells the resource compiler to produce
a file <filepath>\epoc32\include\&lt;appname&gt;.rsg</filepath>, which defines
macro constants through which C++ programs can refer to resource structures.</p>
<p><b>Caption/icon resource</b> </p>
<p>An application can specify localisable captions and icons to display on
the shell using a <xref href="GUID-2431355F-E4D8-3226-9E9D-BAD6F23C418E.dita"><apiname>LOCALISABLE_APP_INFO</apiname></xref> resource, either
in the UI resource file or in a separate resource file.</p>
<p><b>Registration file</b> </p>
<p>Specify the application's registration file using another <xref href="GUID-5280EC0E-1A1F-5777-ACB1-CF4791EE2147.dita">start
resource</xref> statement:</p>
<codeblock id="GUID-BADCE07B-0FD7-5B08-8A12-F88A7F681BEF" xml:space="preserve">START RESOURCE    &lt;appname&gt;_reg.rss
TARGETPATH        \private\10003a3f\apps
END</codeblock>
<p>The registration file must be built to the private system directory <filepath>\private\10003a3f\apps</filepath> directory.</p>
<p>Note that for security reasons a registration file cannot be installed
directly to this location on a target device. When creating a PKG file (software
install package file) for an application, the registration file must be installed
to the <filepath>\private\10003a3f\import\apps\</filepath> directory.</p>
<p>For more information, see <xref href="GUID-3AFA877F-41DE-5343-8BC2-C0FB894A062C.dita">Application
registration information</xref>.</p>
<p><b>Icons</b> </p>
<p>A bitmap file containing icons for an application can be specified using
a <xref href="GUID-B707887A-E0FA-5DF6-A906-A91E31E17321.dita">start bitmap</xref> statement:</p>
<codeblock id="GUID-0B636524-66F0-5B00-A922-6FABFF5DD2C8" xml:space="preserve">START BITMAP    &lt;appname&gt;.mbm
TARGETPATH        \Resource\Apps
SOURCE            &lt;color-depth&gt; &lt;source-bitmap-list&gt;
END</codeblock>
<p>Icon files, like the UI resource file, should be built into the <filepath>\Resource\Apps</filepath> directory.</p>
<example><p>An example of a real GUI application project file
is given below:</p><codeblock id="GUID-CB2FA2A3-E8B1-5334-9DEA-B5811B2C1A2E" xml:space="preserve">TARGET        HelloWorld.exe
TARGETTYPE    exe
UID           0x100039CE 0x10004299
VENDORID 0x70000001
epocstacksize 0x5000

SOURCEPATH    .
SOURCE        HelloWorld_Main.cpp
SOURCE        HelloWorld_Application.cpp
SOURCE        HelloWorld_Document.cpp
SOURCE        HelloWorld_AppUi.cpp
SOURCE        HelloWorld_AppView.cpp
USERINCLUDE   .
SYSTEMINCLUDE \epoc32\include

START RESOURCE    HelloWorld.RSS
HEADER
TARGETPATH        \Resource\Apps
end

START RESOURCE    HelloWorld_reg.rss
TARGETPATH        \private\10003a3f\apps
END

START BITMAP    HelloWorld.mbm
TARGETPATH        \Resource\Apps
SOURCE            c8,1 icon24.bmp icon2m.bmp icon32.bmp icon3m.bmp icon48.bmp icon4m.bmp
END

LIBRARY       euser.lib apparc.lib cone.lib eikcore.lib</codeblock></example>
</conbody></concept>