Dependency

A dependency statement is used to indicate that the component being installed depends on another installed component that is not embedded in the current SIS file. It also indicates the hardware and platform dependency of the component to be installed. For information on embedded files, see Embedded SIS Files

The following sections detail the syntax for specifying:

Component dependency

For a component with a dependency to be installed, the component it depends on must already be installed on the Symbian device. In addition to this, the version number of the required component must be same as or greater than the version number specified in the dependency statement, or if a range is specified, it must be within the range. If even one of these conditions is not met, the installation fails.

Syntax

(package-UID), version-range, {"Component name for language 1","Component name for language n",...}

version-range can consist of a single set of major, minor and build numbers, for example,

(0x10000003), 2, 2, 3, {"Depend-EN"}

Or it can specify two sets of numbers, representing lower and upper bounds, separated by a tilde character, for example,

(0x10000003), 2, 2, 3 ~ 3, 0, 0, {"Depend-EN"}

A wildcard character can occur in any part of version-range. * or -1 can be used as wildcard characters, for example,

(0x10000003), *, *, * ~ 2, 2, 3, {"Depend-EN"}

which means any version less than and including 2, 2, 3 is acceptable.

The component names are used for reporting than for matching; the required component is identified by the package UID, as specified in its package header. For more information see, Package Header.

Example

This example demonstrates a PKG file that another PKG file depends on.

; A simple PKG file upon which others depend

; Languages
&EN,FR

; Header
#{"Depend-EN", "Depend-FR"}, (0x80000003), 1, 2, 3

%{"Vendor-EN","Vendor-FR"}
:"Vendor"

;Ordinary language-specific file to system drive
{
"text\englishfile.txt"
"text\frenchfile.txt"
}-"$:\private\80000004\import\dep-lang.txt"

;Ordinary language-neutral file to system drive
"file.txt" - "$:\private\80000004\file.txt"

Hardware/UI platform dependency

Syntax

[productUID], version-range, {"ProductName"}

productUID is a UID that identifies a specific Symbian device or a UI platform. For lists of product UIDs, see the device creator website or SDK documentation. The product UID is specified within square brackets to distinguish a hardware dependency from a component dependency.

version-range identifies the required version of the target Symbian device or UI platform. It is used in the same way as in a component dependency statement. It can specify a single set of major, minor and build numbers, or may specify upper and lower bounds, for a range of versions.

It is recommended that versioning information be supplied using version-range, for example, UI platform versions. However, in practice, the target hardware version may be inherent in the product UID, in which case the version-range can consist of wildcards.

The component name is used for reporting rather than matching purposes. See the Symbian device or UI platform manufacturer's technical documentation for the recommended text to use.

For example, the following statement defines a dependency on UIQ v2.1:

[0x101F61CE], *, *, *, {"UIQ21ProductID"}

and this statement defines a dependency on the Series 60 platform second edition:

[0x101f7960], *, *, *, {"Series60ProductID"}

Example

This example package file demonstrates a UI platform dependency. The platform name and UID used are for illustration only.

; Example package file showing a dependency on "Platform1"

; Languages supported
&EN

; Localised vendor name
%{"Nokia Corporation"}

; Global vendor name 
:"Nokia Corporation"

; Standard PKG file header
#{"ExampleForPlatform1"}, (0x12345678), 1, 2, 3

; Can only be installed on a Platform1 device, any version. 
; The UID, (0x00001000) identifies the target hardware/UI platform. 

; UI Dependency: Refer to the device creator's or UI platform's website for real values.
[0x00001000], *, *, *, {"Platform1ProductID"}

; File to install
"ExampleForPlatform1.txt"-"!:\private\12345679\import\ExampleForPlatform1.txt"