×
Namespaces

Variants
Actions
(Difference between revisions)

Archived:Creating dependencies to Open C components

From Nokia Developer Wiki
Jump to: navigation, search
Forum Nokia KB (Talk | contribs)
m
hamishwillee (Talk | contribs)
 
(8 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{KBTS}}
+
{{Archived|timestamp=20120313105202|user=roy.debjit| }}
__NOTOC__
+
[[Category:Symbian C++]][[Category:Base/System]][[Category:Open C/C++]][[Category:S60 3rd Edition (initial release)]][[Category:S60 3rd Edition FP1]]
__NOEDITSECTION__
+
  
[[Category:Technical Solution]]
+
{{ArticleMetaData <!-- v1.2 -->
 +
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) -->
 +
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
 +
|devices= All (S60)
 +
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
 +
|platform= S60 3rd Edition<br>S60 3rd Edition, FP1<br>S60 3rd Edition, FP2<br>S60 5th Edition
 +
|devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) -->
 +
|dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 -->
 +
|signing= <!-- Empty or one of Self-Signed, DevCert, Manufacturer -->
 +
|capabilities= <!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. -->
 +
|keywords= n/a
 +
|language= <!-- Language category code for non-English topics - e.g. Lang-Chinese -->
 +
|translated-by= <!-- [[User:XXXX]] -->
 +
|translated-from-title= <!-- Title only -->
 +
|translated-from-id= <!-- Id of translated revision -->
 +
|review-by= <!-- After re-review: [[User:username]] -->
 +
|review-timestamp= <!-- After re-review: YYYYMMDD -->
 +
|update-by= <!-- After significant update: [[User:username]]-->
 +
|update-timestamp= <!-- After significant update: YYYYMMDD -->
 +
|creationdate= June 25, 2007, updated December 17, 2008
 +
|author= [[User:Technical writer 2]]
 +
<!-- The following are not in current metadata -->
 +
|subcategory= Base/System, SW Installation
 +
|id= TSS000698
 +
}}
  
{|border="2" cellspacing="0" cellpadding="4" width="100%"
+
 
|
+
==Description==
====Subject:====
+
|colspan = "2"|
+
====Creating dependencies to Open C components====
+
|TSS000698
+
  
|-
+
To ensure that an Open C application will work, it is worthwhile to create
|rowspan = "2"|
+
dependencies to any Open C plug-in components that are required to run the
====&nbsp;====
+
application. This way the user will be warned during installation if Open C
|Platform(s):
+
libraries are not present in the device.
|colspan = "2"|Device(s), SW version(s):
+
  
|-
 
|S60 3rd Edition<br>S60 3rd Edition, FP1
 
|colspan = "2"|&nbsp;
 
  
|-
+
==Solution==
|
+
====Category:====
+
|colspan = "3"|Symbian C<nowiki>++</nowiki>
+
  
|-
+
Creating dependencies to other components is done by declaring the required components in the PKG file:
|
+
====Subcategory:====
+
|colspan = "3"|Base & System, SW installer
+
  
|-
+
<code>
|
+
  (componentUID), version-range, {"Name for lang 1","Name for lang n",...}
====Description:====
+
</code><br>
|colspan = "3"|To ensure that an Open C application will work, it is worthwhile to create dependencies to any Open C plug-in components that are required to run the application. This way, the user will be warned during installation if Open C libraries are not present in the device.<br>
+
To create dependencies to other components by declaring the required components in the PKG file:<br>&nbsp;&nbsp;(componentUID), version-range, <nowiki>{</nowiki>"Component name for lang 1","Component name for lang n",...<nowiki>}</nowiki><br>
+
For Open C plug-in components, the dependencies can be declared as follows:<br>&nbsp;&nbsp;(0x20009a80), 1, 0, 0, <nowiki>{</nowiki>"Symbian OS PIPS"<nowiki>}</nowiki><br>&nbsp;&nbsp;(0x20009aa2), 1, 0, 0, <nowiki>{</nowiki>"Symbian OS STDIOSERVER"<nowiki>}</nowiki><br>&nbsp;&nbsp;(0x10281f34), 1, 0, 0, <nowiki>{</nowiki>"Open C LIBSSL"<nowiki>}</nowiki><br>&nbsp;&nbsp;(0x10281f2c), 1, 0, 0, <nowiki>{</nowiki>"Open C GLIBRARY"<nowiki>}</nowiki><br>In the above example, the dependencies are created to the four OpenC components:<br>&nbsp;&nbsp;<nowiki>’</nowiki>Symbian OS STDIOSERVER<nowiki>’</nowiki> (installed from stdioserver.sis),<br>&nbsp;&nbsp;<nowiki>’</nowiki>Symbian OS PIPS<nowiki>’</nowiki> (pips_s60_wp.sis),<br>&nbsp;&nbsp;<nowiki>’</nowiki>Open C LIBSSL<nowiki>’</nowiki> (openc_ssl.sis),<br>&nbsp;&nbsp;<nowiki>’</nowiki>Open C GLIBRARY<nowiki>’</nowiki> (openc_glib.sis),<br>Dependencies may also be targeted to specific component versions:<br>&nbsp;&nbsp;(0x0123BABE), 1, 2, 0 <nowiki>~</nowiki> *, *, *, <nowiki>{</nowiki>"ComponentName"<nowiki>}</nowiki> ; Version greater than or equal to 1.2.0 is required<br>&nbsp;&nbsp;(0x0123BABE), 1, 2, 0 <nowiki>~</nowiki> 2, 0, 0, <nowiki>{</nowiki>"ComponentName"<nowiki>}</nowiki> ; Version from 1.2.0 to 2.00 required<br>&nbsp;&nbsp;(0x0123BABE), *, *, * <nowiki>~</nowiki> 2, 0, 0, <nowiki>{</nowiki>"ComponentName"<nowiki>}</nowiki> ; Any older version up to (and including) 2.0.0 is required
+
  
|-
+
For Open C plug-in components, the dependencies can be declared as follows:
|
+
====Creation date:====
+
|colspan = "3"|June 25, 2007
+
  
|-
+
<code>
|
+
  (0x20009a80), 1, 0, 0, {"Symbian OS PIPS"}
====Last modified:====
+
  (0x20009aa2), 1, 0, 0, {"Symbian OS STDIOSERVER"}
|colspan = "3"|-
+
  (0x10281f34), 1, 0, 0, {"Open C LIBSSL"}
 +
  (0x10281f2c), 1, 0, 0, {"Open C GLIBRARY"}
 +
</code>
  
|-
+
In the above example, the dependencies are created to the four OpenC components:
[[Category:Symbian C++]][[Category:Base/System]][[Category:Open C]] [[Category:S60 3rd Edition]] [[Category:S60 3rd Edition, Feature Pack 1]]
+
 
 +
* {{Icode|’Symbian OS STDIOSERVER’ (installed from stdioserver.sis)}}
 +
* {{Icode|’Symbian OS PIPS’ (pips_s60_wp.sis)}}
 +
* {{Icode|’Open C LIBSSL’ (openc_ssl.sis)}}
 +
* {{Icode|’Open C GLIBRARY’ (openc_glib.sis)}}
 +
<br>
 +
 
 +
Dependencies may also be targeted to specific component versions:
 +
 
 +
<code>
 +
  (0x0123BABE), 1, 2, 0 ~ *, *, *, {"ComponentName"} ; Version greater than or
 +
                                                    ; equal to 1.2.0 required
 +
 +
  (0x0123BABE), 1, 2, 0 ~ 2, 0, 0, {"ComponentName"} ; Version from 1.2.0 to
 +
                                                    ; 2.00 required
 +
 +
  (0x0123BABE), *, *, * ~ 2, 0, 0, {"ComponentName"} ; Any older version up to
 +
                                                    ; (and including) 2.0.0
 +
                                                    ; required
 +
</code><br>
 +
 
 +
From S60 3rd Edition, Feature Pack 2 onwards, Open C libraries are part of the S60 platform and therefore always included in the device software builds. It is possible to check if the Open C libraries are located on the ROM (Z: drive) during installation using the following IF statement:
 +
 
 +
<code>
 +
  IF exists(z:\system\install\openc_stdlibs_stub.sis)
 +
  ; Open C libraries are located on ROM
 +
  ENDIF
 +
</code>

Latest revision as of 10:42, 14 June 2012

Archived.pngArchived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.


Article Metadata
Tested with
Devices(s): All (S60)
Compatibility
Platform(s): S60 3rd Edition
S60 3rd Edition, FP1
S60 3rd Edition, FP2
S60 5th Edition
S60 3rd Edition FP1
S60 3rd Edition (initial release)
Article
Keywords: n/a
Created: User:Technical writer 2 (June 25, 2007, updated December 17, 2008)
Last edited: hamishwillee (14 Jun 2012)


[edit] Description

To ensure that an Open C application will work, it is worthwhile to create dependencies to any Open C plug-in components that are required to run the application. This way the user will be warned during installation if Open C libraries are not present in the device.


[edit] Solution

Creating dependencies to other components is done by declaring the required components in the PKG file:

  (componentUID), version-range, {"Name for lang 1","Name for lang n",...}

For Open C plug-in components, the dependencies can be declared as follows:

  (0x20009a80), 1, 0, 0, {"Symbian OS PIPS"}
(0x20009aa2), 1, 0, 0, {"Symbian OS STDIOSERVER"}
(0x10281f34), 1, 0, 0, {"Open C LIBSSL"}
(0x10281f2c), 1, 0, 0, {"Open C GLIBRARY"}

In the above example, the dependencies are created to the four OpenC components:

  • ’Symbian OS STDIOSERVER’ (installed from stdioserver.sis)
  • ’Symbian OS PIPS’ (pips_s60_wp.sis)
  • ’Open C LIBSSL’ (openc_ssl.sis)
  • ’Open C GLIBRARY’ (openc_glib.sis)


Dependencies may also be targeted to specific component versions:

  (0x0123BABE), 1, 2, 0 ~ *, *, *, {"ComponentName"} ; Version greater than or
 ; equal to 1.2.0 required
 
(0x0123BABE), 1, 2, 0 ~ 2, 0, 0, {"ComponentName"} ; Version from 1.2.0 to
 ; 2.00 required
 
(0x0123BABE), *, *, * ~ 2, 0, 0, {"ComponentName"} ; Any older version up to
 ; (and including) 2.0.0
 ; required

From S60 3rd Edition, Feature Pack 2 onwards, Open C libraries are part of the S60 platform and therefore always included in the device software builds. It is possible to check if the Open C libraries are located on the ROM (Z: drive) during installation using the following IF statement:

  IF exists(z:\system\install\openc_stdlibs_stub.sis)
 ; Open C libraries are located on ROM
ENDIF
This page was last modified on 14 June 2012, at 10:42.
63 page views in the last 30 days.