buildframework/helium/sf/java/imaker/imaker.rst
changeset 640 ac0bbc1e5d79
parent 628 7c4a911dc066
child 645 b8d81fa19e7d
--- a/buildframework/helium/sf/java/imaker/imaker.rst	Mon Sep 06 09:57:24 2010 +0100
+++ b/buildframework/helium/sf/java/imaker/imaker.rst	Mon Sep 13 13:11:19 2010 +0800
@@ -5,7 +5,8 @@
 Configuring ROM creation
 ========================
 
-Called by ``build-roms`` target.
+Called by :hlm-t:`build-roms` target. 
+
 
 .. index::
    single: imakerconfigurationset type
@@ -17,21 +18,21 @@
 
 The imakerconfigurationset supports imakerconfiguration nested elements.
 
-'''imakerconfiguration''' element:
+**imakerconfiguration** element:
 
-.. csv-table:: Ant properties to modify
+.. csv-table:: Attributes to modify
    :header: "Attribute", "Description", "Values"
 
-   "``regionalVariation``", "Enable regional variation switching. - Deprecated (always false)", "false"
+   ":hlm-p:`regionalVariation`", "Enable regional variation switching. - Deprecated (always false)", "false"
 
 The imakerconfiguration supports three sub-types:
 
-.. csv-table:: Ant properties to modify
+.. csv-table:: Attributes to modify
    :header: "Sub-type", "Description"
 
-   "``makefileset``", "Defines the list of iMaker configuration to run image creation on."
-   "``targetset``", "List of regular expression used to match which target need to be executed."
-   "``variableset``", "List of variable to set when executing iMaker."
+   ":hlm-p:`makefileset`", "Defines the list of iMaker configuration to run image creation on."
+   ":hlm-p:`targetset`", "List of regular expression used to match which target need to be executed."
+   ":hlm-p:`variableset`", "List of variable to set when executing iMaker."
 
 
 Example of configuration:
@@ -94,7 +95,7 @@
 How to configure the target
 ---------------------------
 
-The target can be configured by defining an hlm:imakerconfigurationset element with the '''imaker.rom.config''' reference.
+The target can be configured by defining an hlm:imakerconfigurationset element with the **imaker.rom.config** reference.
 
 .. code-block:: xml
     
@@ -102,10 +103,66 @@
     ...
     </hlm:imakerconfigurationset>
 
-The other configurable element is the engine. The '''imaker.engine''' property defines the reference
+The other configurable element is the engine. The :hlm-p:`imaker.engine` property defines the reference
 to the engine configuration to use for building the roms. Helium defines two engines by default:
-* imaker.engine.default: multithreaded engine (hlm:defaultEngine type)
-* imaker.engine.ec: ECA engine - cluster base execution (hlm:emakeEngine type)
+
+ - imaker.engine.default: multithreaded engine (hlm:defaultEngine type)
+ - imaker.engine.ec: ECA engine - cluster base execution (hlm:emakeEngine type)
   
-If the property is not defined Helium will guess the best engine to used based on the build.system property.
- 
\ No newline at end of file
+If the property is not defined Helium will guess the best engine to used based on the :hlm-p:`build.system` property.
+ 
+
+
+The imakerconfiguration
+-----------------------
+
+The imakerconfiguration enables the build manager to configure his iMaker builds based on introspection. 
+The makefileset element will configure the filtering of the "imaker help-config" command. 
+Then for each of the configuration found the targetset elements will be used to filter the output from 
+the "imaker -f configuration.mk help-target-*-list" command. Finally a set of command will be generated. 
+
+Each command will then be configure using the set of variables defined by the variableset elements. 
+Only the WORKDIR variable is under the task control to ensure call safety during the parallelization. 
+The usage of the variablegroup will allow you to duplicate the common set of commands and apply 
+additional variables. Example:
+
+ 
+ .. code-block:: xml
+ 
+ 
+     <imakerconfiguration regionalVariation="true">
+         <makefileset>
+             <include name="**/product/*ui.mk"/>
+         </makefileset>
+         <targetset>
+             <include name="^core$" />
+             <include name="langpack_\d+" />
+             <include name="^custvariant_.*$" />
+             <include name="^udaerase$" />
+         </targetset>
+         <variableset>
+             <variable name="USE_FOTI" value="0"/>
+             <variable name="USE_FOTA" value="1"/>
+         </variableset>
+         <variablegroup>
+             <variable name="TYPE" value="rnd"/>
+         </variablegroup>
+         <variablegroup>
+             <variable name="TYPE" value="subcon"/>
+         </variablegroup>
+     </imakerconfiguration>
+ 
+
+
+This configuration might produce the following calls :
+
+ .. code-block:: xml
+    
+    imaker -f /epoc32/rom/config/platform/product/image_conf_product_ui.mk TYPE=rnd USE_FOTI=0 USE_FOTA=1 core
+    imaker -f /epoc32/rom/config/platform/product/image_conf_product_ui.mk TYPE=subcon USE_FOTI=0 USE_FOTA=1 core
+    imaker -f /epoc32/rom/config/platform/product/image_conf_product_ui.mk TYPE=rnd USE_FOTI=0 USE_FOTA=1 langpack_01
+    imaker -f /epoc32/rom/config/platform/product/image_conf_product_ui.mk TYPE=subcon USE_FOTI=0 USE_FOTA=1 langpack_01
+
+
+ 
+   
\ No newline at end of file