Archived:Creating dependencies to Open C components
m |
hamishwillee
(Talk | contribs) m (moved TSS000698 - Creating dependencies to Open C components to Archived:Creating dependencies to Open C components) |
||
| (7 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
| − | {{ | + | {{Archived|timestamp=20120313105202|user=roy.debjit| }} |
| − | + | [[Category:Symbian C++]][[Category:Base/System]][[Category:Open C/C++]][[Category:S60 3rd Edition (initial release)]][[Category:S60 3rd Edition FP1]] | |
| − | + | ||
| − | [[ | + | {{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 | ||
| + | }} | ||
| − | + | ||
| − | + | ==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. | |
| − | + | ||
| − | |||
| − | |||
| − | |||
| − | + | ==Solution== | |
| − | + | ||
| − | ==== | + | |
| − | + | ||
| − | + | Creating dependencies to other components is done by declaring the required components in the PKG file: | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | <code> | |
| − | + | (componentUID), version-range, {"Name for lang 1","Name for lang n",...} | |
| − | + | </code><br> | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | For Open C plug-in components, the dependencies can be declared as follows: | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | <code> | |
| − | + | (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"} | ||
| + | </code> | ||
| − | | | + | In the above example, the dependencies are created to the four OpenC components: |
| − | + | ||
| + | * {{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
Article Metadata
Tested with
Compatibility
S60 3rd Edition, FP1
S60 3rd Edition, FP2
S60 5th Edition
Article
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.
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
; requiredFrom 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

