3 |
3 |
4 ======================== |
4 ======================== |
5 Configuring ROM creation |
5 Configuring ROM creation |
6 ======================== |
6 ======================== |
7 |
7 |
8 Called by ``build-roms`` target. |
8 Called by :hlm-t:`build-roms` target. |
|
9 |
9 |
10 |
10 .. index:: |
11 .. index:: |
11 single: imakerconfigurationset type |
12 single: imakerconfigurationset type |
12 |
13 |
13 The imakerconfigurationset type |
14 The imakerconfigurationset type |
15 |
16 |
16 Information on how to configure the properties is given below: |
17 Information on how to configure the properties is given below: |
17 |
18 |
18 The imakerconfigurationset supports imakerconfiguration nested elements. |
19 The imakerconfigurationset supports imakerconfiguration nested elements. |
19 |
20 |
20 '''imakerconfiguration''' element: |
21 **imakerconfiguration** element: |
21 |
22 |
22 .. csv-table:: Ant properties to modify |
23 .. csv-table:: Attributes to modify |
23 :header: "Attribute", "Description", "Values" |
24 :header: "Attribute", "Description", "Values" |
24 |
25 |
25 "``regionalVariation``", "Enable regional variation switching. - Deprecated (always false)", "false" |
26 ":hlm-p:`regionalVariation`", "Enable regional variation switching. - Deprecated (always false)", "false" |
26 |
27 |
27 The imakerconfiguration supports three sub-types: |
28 The imakerconfiguration supports three sub-types: |
28 |
29 |
29 .. csv-table:: Ant properties to modify |
30 .. csv-table:: Attributes to modify |
30 :header: "Sub-type", "Description" |
31 :header: "Sub-type", "Description" |
31 |
32 |
32 "``makefileset``", "Defines the list of iMaker configuration to run image creation on." |
33 ":hlm-p:`makefileset`", "Defines the list of iMaker configuration to run image creation on." |
33 "``targetset``", "List of regular expression used to match which target need to be executed." |
34 ":hlm-p:`targetset`", "List of regular expression used to match which target need to be executed." |
34 "``variableset``", "List of variable to set when executing iMaker." |
35 ":hlm-p:`variableset`", "List of variable to set when executing iMaker." |
35 |
36 |
36 |
37 |
37 Example of configuration: |
38 Example of configuration: |
38 |
39 |
39 .. code-block:: xml |
40 .. code-block:: xml |
92 single: The iMaker Task |
93 single: The iMaker Task |
93 |
94 |
94 How to configure the target |
95 How to configure the target |
95 --------------------------- |
96 --------------------------- |
96 |
97 |
97 The target can be configured by defining an hlm:imakerconfigurationset element with the '''imaker.rom.config''' reference. |
98 The target can be configured by defining an hlm:imakerconfigurationset element with the **imaker.rom.config** reference. |
98 |
99 |
99 .. code-block:: xml |
100 .. code-block:: xml |
100 |
101 |
101 <hlm:imakerconfigurationset id="imaker.rom.config"> |
102 <hlm:imakerconfigurationset id="imaker.rom.config"> |
102 ... |
103 ... |
103 </hlm:imakerconfigurationset> |
104 </hlm:imakerconfigurationset> |
104 |
105 |
105 The other configurable element is the engine. The '''imaker.engine''' property defines the reference |
106 The other configurable element is the engine. The :hlm-p:`imaker.engine` property defines the reference |
106 to the engine configuration to use for building the roms. Helium defines two engines by default: |
107 to the engine configuration to use for building the roms. Helium defines two engines by default: |
107 * imaker.engine.default: multithreaded engine (hlm:defaultEngine type) |
108 |
108 * imaker.engine.ec: ECA engine - cluster base execution (hlm:emakeEngine type) |
109 - imaker.engine.default: multithreaded engine (hlm:defaultEngine type) |
|
110 - imaker.engine.ec: ECA engine - cluster base execution (hlm:emakeEngine type) |
109 |
111 |
110 If the property is not defined Helium will guess the best engine to used based on the build.system property. |
112 If the property is not defined Helium will guess the best engine to used based on the :hlm-p:`build.system` property. |
111 |
113 |
|
114 |
|
115 |
|
116 The imakerconfiguration |
|
117 ----------------------- |
|
118 |
|
119 The imakerconfiguration enables the build manager to configure his iMaker builds based on introspection. |
|
120 The makefileset element will configure the filtering of the "imaker help-config" command. |
|
121 Then for each of the configuration found the targetset elements will be used to filter the output from |
|
122 the "imaker -f configuration.mk help-target-*-list" command. Finally a set of command will be generated. |
|
123 |
|
124 Each command will then be configure using the set of variables defined by the variableset elements. |
|
125 Only the WORKDIR variable is under the task control to ensure call safety during the parallelization. |
|
126 The usage of the variablegroup will allow you to duplicate the common set of commands and apply |
|
127 additional variables. Example: |
|
128 |
|
129 |
|
130 .. code-block:: xml |
|
131 |
|
132 |
|
133 <imakerconfiguration regionalVariation="true"> |
|
134 <makefileset> |
|
135 <include name="**/product/*ui.mk"/> |
|
136 </makefileset> |
|
137 <targetset> |
|
138 <include name="^core$" /> |
|
139 <include name="langpack_\d+" /> |
|
140 <include name="^custvariant_.*$" /> |
|
141 <include name="^udaerase$" /> |
|
142 </targetset> |
|
143 <variableset> |
|
144 <variable name="USE_FOTI" value="0"/> |
|
145 <variable name="USE_FOTA" value="1"/> |
|
146 </variableset> |
|
147 <variablegroup> |
|
148 <variable name="TYPE" value="rnd"/> |
|
149 </variablegroup> |
|
150 <variablegroup> |
|
151 <variable name="TYPE" value="subcon"/> |
|
152 </variablegroup> |
|
153 </imakerconfiguration> |
|
154 |
|
155 |
|
156 |
|
157 This configuration might produce the following calls : |
|
158 |
|
159 .. code-block:: xml |
|
160 |
|
161 imaker -f /epoc32/rom/config/platform/product/image_conf_product_ui.mk TYPE=rnd USE_FOTI=0 USE_FOTA=1 core |
|
162 imaker -f /epoc32/rom/config/platform/product/image_conf_product_ui.mk TYPE=subcon USE_FOTI=0 USE_FOTA=1 core |
|
163 imaker -f /epoc32/rom/config/platform/product/image_conf_product_ui.mk TYPE=rnd USE_FOTI=0 USE_FOTA=1 langpack_01 |
|
164 imaker -f /epoc32/rom/config/platform/product/image_conf_product_ui.mk TYPE=subcon USE_FOTI=0 USE_FOTA=1 langpack_01 |
|
165 |
|
166 |
|
167 |
|
168 |