|
1 20/10/2003 MurrayR |
|
2 This text file describes unusual features of the AknLayout2 build system. |
|
3 |
|
4 AknLayout2 builds the layout components for the CDL based layout system. |
|
5 There is a feature flag, __CDL_LAYOUT, which affects whether the Series 60 build uses |
|
6 this flag or not. It is intended that Series 60 will use CDL based layout permanently |
|
7 in the future. Until then, CDL based layout will only be used in Series 60 if the |
|
8 __CDL_LAYOUT feature flag is enabled. |
|
9 |
|
10 Without __CDL_LAYOUT: |
|
11 If AknLayout2 is build without the __CDL_LAYOUT feature flag, it will create the CDL |
|
12 interfaces and instances for the Avkon Layout System. The CDL interfaces will be |
|
13 available for layout clients to use. |
|
14 |
|
15 With __CDL_LAYOUT: |
|
16 When the __CDL_LAYOUT feature flag is enabled, AknLayout2 attempts to replace AknLayout |
|
17 in a source compatibvle way, so that transition to the new layout system is as smooth as |
|
18 possible. The AknLayout2 build system does the following things to replace AknLayout. |
|
19 1) AknLayout.lag is replaced with a version that uses the CDL interface. |
|
20 2) AknLayoutData.h and AknLayoutDataDef.h are replaced with the equivalent AknLayout2 |
|
21 headers. |
|
22 3) AknLayout.lib is replaced with CdlEngine.lib. |
|
23 These build tricks all require that AknLayout2 is built after AknLayout. |
|
24 |
|
25 When __CDL_LAYOUT is no longer required: |
|
26 Eventually, Series 60 will be entirely ported across to the CDL based layout system. |
|
27 This will be complete when the following things happen: |
|
28 1) AknLayout is no longer in the build. |
|
29 2) No clients link to AknLayout.lib. |
|
30 3) No clients use AknLayout.lag, and those that did now use the CDL interface. |
|
31 At this point, none of the build tricks described above will be required. |
|
32 |
|
33 05/11/2003 MurrayR |
|
34 Building the layout instance DLL. |
|
35 Avkon will assume that there is a CDL layout instance DLL called LayoutInst.DLL available. |
|
36 The build files and all contents of this DLL are generated according to the device |
|
37 requirements. For S60 builds, all possible layouts are in this DLL. |
|
38 Since the MMP file does not exist at the "bldmake bldfiles" stage, a "redirection" MMP |
|
39 file called LayoutInstRedir.mmp is used. This #includes the generated MMP file. |
|
40 Bld.inf only requires that the LayoutInstRedir.mmp file is present at "bldmake bldfiles". |
|
41 To make the build work, an extension makefile is used. This appears before |
|
42 LayoutInstRedir.mmp in bld.inf, so it is actioned first. |
|
43 The extension makefile, in it's MAKMAKE target, builds all the build files and source |
|
44 for LayoutInst.dll. |