diff -r 80ef3a206772 -r 48780e181b38 Symbian3/SDK/Source/GUID-2C1DB75C-FB12-520C-85B1-57F1EDB61E3B.dita --- a/Symbian3/SDK/Source/GUID-2C1DB75C-FB12-520C-85B1-57F1EDB61E3B.dita Fri Jul 16 17:23:46 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ - - - - - -Feature variants

Symbian platform can be built for multiple product configurations (variants). Each variant can include, enable or disable various features

A variant-specific .hrh file is used to configure each different product. For example, the following .hrh files define features for products phone1, phone2 and phone3 respectively:

The .hrh files contain macros which are used throughout the Symbian platform source. A DLL containing variant macros may be built differently for certain variants. It may also be common for certain variants. In order to identify variant DLLs, and to establish before compilation whether a variant DLL will be unique, a checksum value is calculated based on the combination of variant macros and appended to the DLL filename. If the checksum matches an existing DLL, already built for a different variant, that DLL is shared.

For example, a my.dll with checksum appended appears as follows:

/epoc32/release/armv5/urel/my.685dfabca1f1d90889ef4ac115c01a14.dll

Support for variant builds is included in the Symbian platform build tool-chain as follows:

If no .var file is specified the default.var file is used. The checksum will still be calculated and appended. You may avoid the checksum calculation by using the -invariant (or -inv) option with abld. This will build a default DLL with no checksum in the filename. If a DLL has FEATUREVARIANT specified in its mmp file, however, the -invariant option will be ignored.

Notes
  • The .var file name must be same as the variant name.

  • If the .var file does not include an .hrh file, the build system uses default.hrh in /epoc32/include/variant/.

  • A DLL can be explicitly marked as a feature variant using the MMP keyword FEATUREVARIANT.

  • The DLLs built for a variant are placed in the appropriate folder under /epoc32/release/. For example, for all urel builds of ARMV5 variants the DLLs are stored in /epoc32/release/armv5/urel/.

  • The -inv or -invariant abld option is effective only if the DLL is not marked as feature variant explicitly.

How to build feature based - variants How to build ROMs with - variants
\ No newline at end of file