buildframework/helium/sf/java/imaker/imaker.rst
changeset 640 ac0bbc1e5d79
parent 628 7c4a911dc066
child 645 b8d81fa19e7d
equal deleted inserted replaced
639:0e65f93be3cb 640:ac0bbc1e5d79
     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