buildframework/helium/tools/rombuild/imaker.ant.xml
changeset 217 0f5e3a7fb6af
parent 179 d8ac696cc51f
child 587 85df38eb4012
equal deleted inserted replaced
181:59bb7c4d6172 217:0f5e3a7fb6af
    18 
    18 
    19 Description:
    19 Description:
    20 
    20 
    21 ============================================================================
    21 ============================================================================
    22 -->
    22 -->
       
    23 <!--* @package rombuild -->
    23 <project name="rombuild.imaker" xmlns:hlm="http://www.nokia.com/helium">
    24 <project name="rombuild.imaker" xmlns:hlm="http://www.nokia.com/helium">
    24     <description>
    25     <description>
    25         ROM image creation using iMaker (future implementation).
    26         ROM image creation using iMaker (future implementation).
    26     </description>
    27     </description>
    27 
    28 
    72     <!--
    73     <!--
    73        This target is an helper to recompose the rom image configuration using the output of iMaker.
    74        This target is an helper to recompose the rom image configuration using the output of iMaker.
    74     -->
    75     -->
    75     <target name="imaker-merge-rom-xml">
    76     <target name="imaker-merge-rom-xml">
    76         <mkdir dir="${temp.build.dir}"/>
    77         <mkdir dir="${temp.build.dir}"/>
       
    78         <!-- Locates the parsed configuration for ROM builds.
       
    79         @type string
       
    80         @scope private
       
    81         -->
    77         <property name="rombuild.config.file.parsed" location="${build.output.dir}/rom_config.xml.parsed" />
    82         <property name="rombuild.config.file.parsed" location="${build.output.dir}/rom_config.xml.parsed" />
    78         <hlm:mergeConfigXML filename="${rombuild.config.file.parsed}">
    83         <hlm:mergeConfigXML filename="${rombuild.config.file.parsed}">
    79             <fileset dir="${release.images.dir}" includes="**/*.iconfig.xml"/>    
    84             <fileset dir="${release.images.dir}" includes="**/*.iconfig.xml"/>    
    80         </hlm:mergeConfigXML>
    85         </hlm:mergeConfigXML>
    81     </target>
    86     </target>
    82 
    87 
    83     <!-- Future official target for building roms using iMaker.
    88     <!--
       
    89         Implement a solution to create build information for imaker.
       
    90     -->
       
    91     <target name="rombuild-imaker-create-buildinfo">
       
    92         <!-- FMPP template to generate a buildinfo makefile.
       
    93         @type string
       
    94         -->
       
    95         <property name="rombuild.buildinfo.template" location="${helium.dir}/tools/common/templates/imaker/image_conf_buildinfo.mk.ftl" />
       
    96         <!-- Location of the output file.
       
    97         @type string
       
    98         @scope private
       
    99         -->
       
   100         <property name="rombuild.buildinfo.output" location="${build.drive}${env.EPOCROOT}epoc32/rom/config/image_conf_buildinfo.mk" />
       
   101         <fmpp sourceFile="${rombuild.buildinfo.template}" outputFile="${rombuild.buildinfo.output}">
       
   102             <data expandProperties="yes">
       
   103                 ant: antProperties()
       
   104             </data>
       
   105         </fmpp>
       
   106     </target>
       
   107 
       
   108     <!--
       
   109          Official target to build rom images using iMaker under Helium.
    84          To configure that target you have to define an imakerconfigurationset type identified by
   110          To configure that target you have to define an imakerconfigurationset type identified by
    85          'imaker.rom.config'.
   111          'imaker.rom.config'.
       
   112          The accelerator will automatically be selected based on the build.system property. But this
       
   113          default behaviour can be overriden by defining the reference of the engine to use via the 'imaker.engine'
       
   114          property.
    86     -->
   115     -->
    87     <target name="build-roms" depends="rombuild-imaker-create-buildinfo">
   116     <target name="build-roms" depends="rombuild-imaker-create-buildinfo">
    88         <mkdir dir="${roms.log.dir}"/>
   117         <mkdir dir="${roms.log.dir}"/>
    89         <if>
   118         <if>
    90             <not>
   119             <not>
    95                     <or>
   124                     <or>
    96                         <equals arg1="${build.system}" arg2="ec-helium" />
   125                         <equals arg1="${build.system}" arg2="ec-helium" />
    97                         <equals arg1="${build.system}" arg2="sbs-ec" />
   126                         <equals arg1="${build.system}" arg2="sbs-ec" />
    98                     </or>
   127                     </or>
    99                     <then>
   128                     <then>
       
   129                         <!-- Defines which accelerator to use for running iMaker. (default value from build.system property)
       
   130                         @type string
       
   131                         @scope private
       
   132                         -->
   100                         <property name="imaker.engine" value="imaker.engine.ec" />
   133                         <property name="imaker.engine" value="imaker.engine.ec" />
   101                     </then>
   134                     </then>
   102                 </if>
   135                 </if>
   103             </then>
   136             </then>
   104         </if>
   137         </if>
       
   138         <!-- Defines which accelerator to use for running iMaker. (default value from build.system property)
       
   139         @type string
       
   140         @scope private
       
   141         -->
   105         <property name="imaker.engine" value="imaker.engine.default" />        
   142         <property name="imaker.engine" value="imaker.engine.default" />        
   106         <property name="imaker.rom.name" value=""/>
   143         <property name="imaker.rom.name" value=""/>
   107         <hlm:imaker epocroot="${build.drive}/" engineRefid="${imaker.engine}"
   144         <hlm:imaker epocroot="${build.drive}/" engineRefid="${imaker.engine}"
   108                         output="${roms.log.dir}/${build.id}${imaker.rom.name}.roms.log" verbose="true">
   145                         output="${roms.log.dir}/${build.id}${imaker.rom.name}.roms.log" verbose="true">
   109             <hlm:imakerconfigurationset refid="imaker.rom.config" />
   146             <hlm:imakerconfigurationset refid="imaker.rom.config" />
   110         </hlm:imaker>
   147         </hlm:imaker>
       
   148         <if>
       
   149             <available file="${roms.log.dir}/${build.id}${imaker.rom.name}.roms.log" />
       
   150             <then>
       
   151                 <echo message="WARNING: Nothing to build." file="${roms.log.dir}/${build.id}${imaker.rom.name}.roms.log" />
       
   152             </then>
       
   153         </if>
       
   154         <hlm:metadatarecord database="${metadata.dbfile}">
       
   155             <hlm:textmetadatainput>
       
   156                 <fileset casesensitive="false" file="${roms.log.dir}/${build.id}${imaker.rom.name}.roms.log" />
       
   157                 <metadatafilterset refid="filterset.imaker" />
       
   158             </hlm:textmetadatainput>
       
   159         </hlm:metadatarecord>
       
   160         <hlm:signalMacro logfile="${roms.log.dir}/${build.id}${imaker.rom.name}.roms.log" 
       
   161                          signal.input="rombuildSignalInput" />
   111         <if>
   162         <if>
   112             <istrue value="${blocks.enabled}" />
   163             <istrue value="${blocks.enabled}" />
   113             <then>
   164             <then>
   114                 <mkdir dir="${blocks.config.dir}" />
   165                 <mkdir dir="${blocks.config.dir}" />
   115                 <exec executable="python">
   166                 <exec executable="python">
   129     
   180     
   130     <!-- iMaker engine configuration -->
   181     <!-- iMaker engine configuration -->
   131     <hlm:defaultEngine id="imaker.engine.default" threads="${number.of.threads}" />
   182     <hlm:defaultEngine id="imaker.engine.default" threads="${number.of.threads}" />
   132 
   183 
   133     <hlm:emakeEngine id="imaker.engine.ec">
   184     <hlm:emakeEngine id="imaker.engine.ec">
       
   185         <arg value="--emake-emulation=symbian" />
   134         <arg value="--emake-annofile=${roms.log.dir}/${build.id}${imaker.rom.name}.anno.xml"/>
   186         <arg value="--emake-annofile=${roms.log.dir}/${build.id}${imaker.rom.name}.anno.xml"/>
   135         <arg value="--emake-root=${env.EMAKE_ROOT}${path.separator}${helium.dir}"/>
   187         <arg value="--emake-root=${env.EMAKE_ROOT}${path.separator}${helium.dir}"/>
   136         <arg value="--emake-annodetail=basic,history,file,waiting"/>
   188         <arg value="--emake-annodetail=basic,history,file,waiting"/>
   137         <arg value="--emake-historyfile=${roms.log.dir}/${build.id}${imaker.rom.name}.emake.data" />
   189         <arg value="--emake-historyfile=${roms.log.dir}/${build.id}${imaker.rom.name}.emake.data" />
   138         <arg value="--emake-class=${ec.build.class}" />
   190         <arg value="--emake-class=${ec.build.class}" />