587
|
1 |
.. index::
|
|
2 |
module: Configuring ROM creation
|
|
3 |
|
|
4 |
========================
|
|
5 |
Configuring ROM creation
|
|
6 |
========================
|
|
7 |
|
628
|
8 |
Called by :hlm-t:`build-roms` target.
|
|
9 |
|
587
|
10 |
|
|
11 |
.. index::
|
|
12 |
single: imakerconfigurationset type
|
|
13 |
|
|
14 |
The imakerconfigurationset type
|
|
15 |
-------------------------------
|
|
16 |
|
|
17 |
Information on how to configure the properties is given below:
|
|
18 |
|
|
19 |
The imakerconfigurationset supports imakerconfiguration nested elements.
|
|
20 |
|
628
|
21 |
**imakerconfiguration** element:
|
587
|
22 |
|
628
|
23 |
.. csv-table:: Attributes to modify
|
587
|
24 |
:header: "Attribute", "Description", "Values"
|
|
25 |
|
628
|
26 |
":hlm-p:`regionalVariation`", "Enable regional variation switching. - Deprecated (always false)", "false"
|
587
|
27 |
|
|
28 |
The imakerconfiguration supports three sub-types:
|
|
29 |
|
628
|
30 |
.. csv-table:: Attributes to modify
|
587
|
31 |
:header: "Sub-type", "Description"
|
|
32 |
|
628
|
33 |
":hlm-p:`makefileset`", "Defines the list of iMaker configuration to run image creation on."
|
|
34 |
":hlm-p:`targetset`", "List of regular expression used to match which target need to be executed."
|
|
35 |
":hlm-p:`variableset`", "List of variable to set when executing iMaker."
|
587
|
36 |
|
|
37 |
|
|
38 |
Example of configuration:
|
|
39 |
|
|
40 |
.. code-block:: xml
|
|
41 |
|
|
42 |
<hlm:imakerconfigurationset>
|
|
43 |
<hlm:imakerconfiguration regionalVariation="true">
|
|
44 |
<makefileset>
|
|
45 |
<include name="**/product_name/*ui.mk" />
|
|
46 |
</makefileset>
|
|
47 |
<targetset>
|
|
48 |
<include name="^core${r'$'}" />
|
|
49 |
<include name="langpack_\d+" />
|
|
50 |
<include name="^custvariant_.*${r'$'}" />
|
|
51 |
<include name="^udaerase${r'$'}" />
|
|
52 |
</targetset>
|
|
53 |
<variableset>
|
|
54 |
<variable name="USE_FOTI" value="0" />
|
|
55 |
<variable name="USE_FOTA" value="1" />
|
|
56 |
<variable name="TYPE" value="rnd" />
|
|
57 |
</variableset>
|
|
58 |
</hlm:imakerconfiguration>
|
|
59 |
</hlm:imakerconfigurationset>
|
|
60 |
|
|
61 |
|
|
62 |
Other example using product list and variable group:
|
|
63 |
|
|
64 |
.. code-block:: xml
|
|
65 |
|
|
66 |
<hlm:imakerconfigurationset>
|
|
67 |
<hlm:imakerconfiguration>
|
|
68 |
<hlm:product list="product_name" ui="true" failonerror="false" />
|
|
69 |
<targetset>
|
|
70 |
<include name="^core${r'$'}" />
|
|
71 |
<include name="langpack_\d+" />
|
|
72 |
<include name="^custvariant_.*${r'$'}" />
|
|
73 |
<include name="^udaerase${r'$'}" />
|
|
74 |
</targetset>
|
|
75 |
<variableset>
|
|
76 |
<variable name="USE_FOTI" value="0" />
|
|
77 |
<variable name="USE_FOTA" value="1" />
|
|
78 |
</variableset>
|
|
79 |
<variablegroup>
|
|
80 |
<variable name="TYPE" value="rnd" />
|
|
81 |
</variablegroup>
|
|
82 |
<variablegroup>
|
|
83 |
<variable name="TYPE" value="subcon" />
|
|
84 |
</variablegroup>
|
|
85 |
<variablegroup>
|
|
86 |
<variable name="TYPE" value="prd" />
|
|
87 |
</variablegroup>
|
|
88 |
</hlm:imakerconfiguration>
|
|
89 |
</hlm:imakerconfigurationset>
|
|
90 |
|
|
91 |
|
|
92 |
.. index::
|
|
93 |
single: The iMaker Task
|
|
94 |
|
|
95 |
How to configure the target
|
|
96 |
---------------------------
|
|
97 |
|
628
|
98 |
The target can be configured by defining an hlm:imakerconfigurationset element with the **imaker.rom.config** reference.
|
587
|
99 |
|
|
100 |
.. code-block:: xml
|
|
101 |
|
|
102 |
<hlm:imakerconfigurationset id="imaker.rom.config">
|
|
103 |
...
|
|
104 |
</hlm:imakerconfigurationset>
|
|
105 |
|
628
|
106 |
The other configurable element is the engine. The :hlm-p:`imaker.engine` property defines the reference
|
587
|
107 |
to the engine configuration to use for building the roms. Helium defines two engines by default:
|
628
|
108 |
|
|
109 |
- imaker.engine.default: multithreaded engine (hlm:defaultEngine type)
|
|
110 |
- imaker.engine.ec: ECA engine - cluster base execution (hlm:emakeEngine type)
|
587
|
111 |
|
628
|
112 |
If the property is not defined Helium will guess the best engine to used based on the :hlm-p:`build.system` property.
|
|
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 |
|