buildframework/helium/tools/localisation/localisation-32.ant.xml
changeset 307 22ecbfc20eb4
parent 215 b61c19d4168d
parent 217 0f5e3a7fb6af
child 308 7830b8253b5a
equal deleted inserted replaced
215:b61c19d4168d 307:22ecbfc20eb4
     1 <?xml version="1.0" encoding="UTF-8"?>
       
     2 <!-- 
       
     3 ============================================================================ 
       
     4 Name        : localisation-32.ant.xml 
       
     5 Part of     : Helium 
       
     6 
       
     7 Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     8 All rights reserved.
       
     9 This component and the accompanying materials are made available
       
    10 under the terms of the License "Eclipse Public License v1.0"
       
    11 which accompanies this distribution, and is available
       
    12 at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
    13 
       
    14 Initial Contributors:
       
    15 Nokia Corporation - initial contribution.
       
    16 
       
    17 Contributors:
       
    18 
       
    19 Description:
       
    20 
       
    21 ============================================================================
       
    22 -->
       
    23 <project name="localisation-32" xmlns:hlm="http://www.nokia.com/helium">
       
    24     <description>
       
    25       S60 3.2 localisation.
       
    26     </description>
       
    27 
       
    28     <!-- Should be overriden in team configuration! -->
       
    29     <!--<property name="localisation.tool" value="localisation-s60-localise" />-->
       
    30     <property name="localisation.tool" value="localise-resources" />
       
    31     <property name="parse_abld_what.tool" location="${build.drive}\s60\tools\build_platforms\build\tools\parse_what_log.pl" />
       
    32     <property name="ctool.dir" location="${build.drive}/s60/tools/toolsextensions/ConfigurationTool" />
       
    33     <property name="ctool.western.conf" value="-master_conf s60 -impl \epoc32\rom\config\confml_data\s60 -confml \epoc32\rom\config\confml_data\s60" />
       
    34     <property name="ctool.china.conf" value="-master_conf china -impl \epoc32\rom\config\confml_data\s60 -confml \epoc32\rom\config\confml_data\${ctool.region.china}" />
       
    35     <property name="ctool.japan.conf" value="-master_conf japan -impl \epoc32\rom\config\confml_data\s60 -confml \epoc32\rom\config\confml_data\${ctool.region.japan}" />
       
    36 
       
    37     <property name="localisation.buildfile" value="isis" />
       
    38     <property name="s60.delta.config.prefix" value="S60_variant_"/>
       
    39 
       
    40 
       
    41     <!--<property name="localisation.variation" value="western" />-->
       
    42 
       
    43     <property name="localisation.language.file" location="${build.drive}/epoc32/tools/s60tools/languages.xml" />
       
    44     <property name="localisation.s60locfiles.dir" location="${build.drive}/s60/misc/release/s60locfiles" />
       
    45     <property name="localisation.makefile.target" value="variants" />
       
    46     <property name="customer.makefile.target" value="customer_variants" />
       
    47 
       
    48     
       
    49     <!-- Additional input file per region -->
       
    50     <property name="localisation.files.western" value="" />
       
    51     <property name="localisation.files.china" value="" />
       
    52     <property name="localisation.files.japan" value="" />
       
    53     
       
    54     <!-- ctool translation -->
       
    55     <property name="ctool.region.china" value="apac"/>
       
    56     
       
    57     <!-- The createDeltaZipMacro enables to create regional variant like china and japan.
       
    58     e.g:
       
    59          <pre><hlm:createDeltaZipMacro variant="china" type="armv5" ctool="true"/></pre>
       
    60     -->
       
    61     <macrodef name="createDeltaZipMacro" uri="http://www.nokia.com/helium">
       
    62         <attribute name="variant"/>
       
    63         <attribute name="type" default=""/>
       
    64         <attribute name="ctool" default="false"/>
       
    65         <attribute name="force" default="false"/>
       
    66         <sequential>
       
    67             <mkdir dir="${build.log.dir}"/>
       
    68             <if>
       
    69                 <and>
       
    70                     <available file="${zips.loc.dir}/delta_@{variant}_package.zip" />
       
    71                     <isfalse value="@{force}"/>
       
    72                 </and>                    
       
    73                 <then>
       
    74                     <echo>Unzipping ${zips.loc.dir}/delta_@{variant}_package.zip</echo>
       
    75                     <unzip src="${zips.loc.dir}/delta_@{variant}_package.zip" dest="${build.drive}/" overwrite="true" />
       
    76                 </then>
       
    77                 <else>
       
    78                     <if>
       
    79                         <equals arg1="@{type}" arg2=""/>
       
    80                         <then>
       
    81                             <var name="internal.variant.type" value="@{type}"/>
       
    82                         </then>
       
    83                         <else>
       
    84                             <var name="internal.variant.type" value="_@{type}"/>
       
    85                         </else>
       
    86                     </if>
       
    87                     <echo>Generating ${build.drive}\epoc32\tools\s60tools\variant_build_@{variant}${internal.variant.type}.xml</echo>
       
    88                     <hlm:compileGenxmlMacro input="-x ${canonical.sysdef.file}"
       
    89                                           configuration="${s60.delta.config.prefix}@{variant}${internal.variant.type}"
       
    90                                           output="${build.drive}\epoc32\tools\s60tools\variant_build_@{variant}${internal.variant.type}.xml"
       
    91                                           log="${build.log.dir}/${build.id}.variant_build_@{variant}${internal.variant.type}_genxml.log"/>
       
    92 
       
    93                     <echo>Building ${build.drive}\epoc32\tools\s60tools\variant_build_@{variant}${internal.variant.type}.xml</echo>
       
    94                     <hlm:compileEbsMacro input="${build.drive}\epoc32\tools\s60tools\variant_build_@{variant}${internal.variant.type}.xml" log="${build.log.dir}/${build.id}.@{variant}${internal.variant.type}_compile.log" />
       
    95                     <hlm:compileHtmlscanlogMacro input="${build.log.dir}/${build.id}.@{variant}${internal.variant.type}_compile.log" output="${build.log.dir}/${build.id}.@{variant}${internal.variant.type}_scan2.html" />
       
    96                     
       
    97                     <if>
       
    98                         <istrue value="@{ctool}"/>
       
    99                         <then>
       
   100                             <property name="ctool.region.@{variant}" value="@{variant}"/>
       
   101                             <echo>Region ctool: ${ctool.region.@{variant}} (@{variant}).</echo>
       
   102                             <preset.exec executable="cmd" dir="${ctool.dir}/" failonerror="true" output="${build.log.dir}/${build.id}.configtool_@{variant}_log.txt">
       
   103                                 <arg line="/c cli_build.cmd ${ctool.@{variant}.conf} -report ${build.log.dir}/${build.id}.configtool_@{variant}_delta.txt -ignore_errors"/>
       
   104                             </preset.exec>
       
   105                         </then>
       
   106                     </if>
       
   107                     <preset.exec executable="perl" dir="${build.drive}/" failonerror="true">
       
   108                         <arg value="${parse_abld_what.tool}"/>
       
   109                         <arg line="-i ${build.log.dir}/${build.id}.@{variant}${internal.variant.type}_compile.log -filter \epoc32 -zip ${zips.loc.dir}/delta_@{variant}_package -ex productvariant.hrh"/>
       
   110                     </preset.exec>
       
   111                     <if>
       
   112                         <istrue value="@{ctool}"/>
       
   113                         <then>
       
   114                             <preset.exec executable="${build.drive}\epoc32\tools\zip.exe" dir="${build.drive}/" input="${build.log.dir}/${build.id}.configtool_@{variant}_delta.txt">
       
   115                                 <arg line="-r -u ${zips.loc.dir}/delta_@{variant}_package -@"/>
       
   116                             </preset.exec>
       
   117                         </then>
       
   118                     </if>
       
   119                     <var name="internal.variant.type" unset="true"/>
       
   120                 </else>
       
   121             </if>
       
   122         </sequential>
       
   123     </macrodef>
       
   124 
       
   125 
       
   126     <!-- The createDeltaWesternZipMacro enables to create western regional variant
       
   127     e.g: build western variation using the results from S60_postbuild config
       
   128          and enabling configuration tool support.
       
   129          <pre><hlm:createDeltaWesternZipMacro configs="S60_postbuild" ctool="true"/></pre>
       
   130     -->
       
   131     <macrodef name="createDeltaWesternZipMacro"  uri="http://www.nokia.com/helium">
       
   132         <attribute name="configs"/>
       
   133         <attribute name="ctool" default="false"/>
       
   134         <sequential>
       
   135             <mkdir dir="${zips.loc.dir}"/>
       
   136             <for list="@{configs}" delimiter="," param="conf" >
       
   137                 <sequential>
       
   138                     <if>
       
   139                         <istrue value="@{ctool}"/>
       
   140                         <then>
       
   141                             <preset.exec executable="cmd" dir="${ctool.dir}/" failonerror="true" output="${build.log.dir}/${build.id}.configtool_western_log.txt">
       
   142                                 <arg line="/c cli_build.cmd ${ctool.western.conf} -report ${build.log.dir}/${build.id}.configtool_western_delta.txt -ignore_errors"/>
       
   143                             </preset.exec>
       
   144                         </then>
       
   145                     </if>
       
   146                     <preset.exec executable="perl" dir="${build.drive}/" failonerror="true">
       
   147                         <arg value="${parse_abld_what.tool}"/>
       
   148                         <arg line="-i ${build.log.dir}/${build.id}.@{conf}_compile.log -filter \epoc32 -zip ${zips.loc.dir}/delta_western_package -ex productvariant.hrh"/>
       
   149                     </preset.exec>
       
   150                     <if>
       
   151                         <istrue value="@{ctool}"/>
       
   152                         <then>
       
   153                             <preset.exec executable="${build.drive}\epoc32\tools\zip.exe" dir="${build.drive}/" input="${build.log.dir}/${build.id}.configtool_western_delta.txt">
       
   154                                 <arg line="-r -u ${zips.loc.dir}/delta_western_package -@"/>
       
   155                             </preset.exec>
       
   156                         </then>
       
   157                     </if>
       
   158                 </sequential>
       
   159             </for>
       
   160         </sequential>
       
   161     </macrodef>
       
   162 
       
   163     <!--
       
   164         Target to be run after the compile-main to zipup western variation.
       
   165         <deprecated>Please consider using binary variation to solve that problem.</deprecated>
       
   166     -->
       
   167     <target name="localisation-postbuild-western">
       
   168         <mkdir dir="${zips.loc.dir}"/>
       
   169 
       
   170         <antcall target="compile-main">
       
   171             <param name="sysdef.configurations.list" value="S60_bldmelast" />
       
   172         </antcall>
       
   173 
       
   174         <preset.exec executable="perl" dir="${build.drive}/" failonerror="true">
       
   175             <arg value="${parse_abld_what.tool}"/>
       
   176             <arg line="-i ${build.log.dir}/${build.id}.S60_bldmelast_compile.log -filter \epoc32 -zip ${zips.loc.dir}/delta_western_package -ex productvariant.hrh"/>
       
   177         </preset.exec>
       
   178         <copy file="${build.drive}\epoc32\release\ARMV5\urel\elocl.dll" tofile="${build.drive}\epoc32\release\ARMV5\urel\elocl.01" />
       
   179         <copy file="${build.drive}\epoc32\release\ARMV5\udeb\elocl.dll" tofile="${build.drive}\epoc32\release\ARMV5\udeb\elocl.01" />
       
   180     </target>
       
   181 
       
   182 
       
   183     <!--
       
   184         This targe generate the language pack related files using informations from the XML configuration file.
       
   185         The generated files are:
       
   186             * languages.[product].[langid].txt
       
   187             * lang.[product].[langid].txt
       
   188             * /epoc32/rom/config/[platform]/.../[product]/variant_[langid].iby
       
   189         <deprecated>This feature is now supported by iMaker, please update your  Makefile templates to migrate the language data from XML.</deprecated>
       
   190     -->
       
   191     <target name="localisation-create-languagepack" depends="rombuild-prepare-input">
       
   192         <for list="${product.list}" delimiter="," param="product.name" >
       
   193             <sequential>
       
   194                 <echo>Language Pack configuration for @{product.name}</echo>
       
   195                 <exec executable="python" dir="${build.drive}/" failonerror="${failonerror}">                    
       
   196                     <arg line="${helium.dir}/tools/localisation/create_language_pack.py @{product.name} ${rombuild.config.file.parsed}"/>
       
   197                 </exec>        
       
   198             </sequential>
       
   199         </for>    
       
   200     </target>
       
   201 
       
   202     <!--
       
   203         Developement target that generated the languages.mk using the information from
       
   204         the languages.xml file provided by S60.
       
   205         <deprecated>Those information will be generated throught Carbon.</deprecated>
       
   206     -->
       
   207     <target name="localisation-create-system-languages-mk">
       
   208         <echo>Generating ${build.drive}/epoc32/rom/config/language/system_languages.mk</echo>
       
   209         <mkdir dir="${build.drive}/epoc32/rom/config/language"/>
       
   210         <hlm:python>
       
   211 """ Create a makefile that contains all languages.  """
       
   212 import localisation
       
   213 import sys
       
   214 import ant
       
   215             
       
   216 languages = localisation.Languages(ant.get_property(r'${localisation.language.file}'))
       
   217 output = open(ant.get_property(r'${build.drive}')+r'\epoc32\rom\config\language\system_languages.mk', "w+")
       
   218 
       
   219 output.write("############################################\n")
       
   220 output.write("# DO NOT EDIT - File generated by Helium\n")
       
   221 output.write("############################################\n")
       
   222 output.write("system_languages\t\t\t\t=\\\n")
       
   223 lids = languages.get_language_ids()
       
   224 lids.sort()
       
   225 lids.reverse()
       
   226 while len(lids)>0:
       
   227     lid = lids.pop()
       
   228     endofline = "\\"
       
   229     if (len(lids)==0):
       
   230         endofline = ""
       
   231     output.write ("%s\t\t\t\t%s %s" % (languages.get_name(lid), lid, endofline))
       
   232     output.write("\n")
       
   233 output.close()
       
   234     </hlm:python>
       
   235     </target>
       
   236 
       
   237     <!--
       
   238         This target run the generation of cenrep variation on language pack and customer variants configuration folders.
       
   239         <deprecated>S60 3.2 only for 3.2.3 use iMaker</deprecated>
       
   240     -->
       
   241     <target name="localisation-create-cenrep" depends="localisation-create-language-cenrep,localisation-create-customer-cenrep"/>
       
   242 
       
   243     <!--
       
   244         This target run the generation of cenrep variation on language pack configuration folders.
       
   245         <deprecated>S60 3.2 only for 3.2.3 use iMaker</deprecated>
       
   246     -->
       
   247     <target name="localisation-create-language-cenrep" depends="rombuild-prepare-input">
       
   248         <for list="${product.list}" delimiter="," param="product.name" >
       
   249             <sequential>
       
   250                 <echo>Cenrep generation for @{product.name} languagepack</echo>
       
   251                 <exec executable="python" dir="${build.drive}/" failonerror="${failonerror}">
       
   252                     <arg line="${helium.dir}/tools/localisation/create_variant_cenrep.py @{product.name} ${rombuild.config.file.parsed} languagepack"/>
       
   253                 </exec>
       
   254             </sequential>
       
   255         </for>
       
   256     </target>
       
   257 
       
   258     <!--
       
   259         This target run the generation of cenrep variation on customer variants configuration folders.
       
   260         <deprecated>S60 3.2 only for 3.2.3 use iMaker</deprecated>
       
   261     -->
       
   262     <target name="localisation-create-customer-cenrep" depends="rombuild-prepare-input">
       
   263         <for list="${product.list}" delimiter="," param="product.name" >
       
   264             <sequential>
       
   265                 <echo>Cenrep generation for @{product.name} customer variant</echo>
       
   266                 <exec executable="python" dir="${build.drive}/" failonerror="${failonerror}">                    
       
   267                     <arg line="${helium.dir}/tools/localisation/create_variant_cenrep.py @{product.name} ${rombuild.config.file.parsed} customer"/>
       
   268                 </exec>        
       
   269             </sequential>
       
   270         </for>    
       
   271     </target>
       
   272     
       
   273     <!-- Localisation configuration -->
       
   274     <target name="localisation-create-config">
       
   275         <record name="${build.log.dir}/${build.id}_localisation_config.log" action="start"/>
       
   276         <antcall target="localisation-create-languagepack" />
       
   277         <antcall target="localisation-create-cenrep" />
       
   278         <copy file="${helium.dir}/tools/localisation/templates/rom/mc_variant_imaker.oby" todir="${build.drive}/epoc32/rom"/>
       
   279         <record name="${build.log.dir}/${build.id}_localisation_config.log" action="stop"/>
       
   280     </target>
       
   281 
       
   282     <!-- Localise resources using either EC / EBS based on build system type-->
       
   283     <target name="localise-resources">
       
   284         <copy file="${helium.dir}/tools/localisation/localiser/isis_EClocaliser.pl" todir="${build.drive}/epoc32/tools"/>
       
   285         <copy file="${helium.dir}/tools/localisation/localiser/ECLocaliser.pm" todir="${build.drive}/epoc32/tools"/>
       
   286         <propertycopy name="localisation.files.region" from="localisation.files.${localisation.region}" />
       
   287         <property name="isis_mktarget.list" value="${localisation.region}_${localisation.buildfile},${localisation.region}_${localisation.buildfile}_what,${localisation.region}_${localisation.buildfile}_check"/>
       
   288         <if>
       
   289             <equals arg1="${build.system}" arg2="ec-helium" />
       
   290             <then>
       
   291                 <!-- localisation build for EC -->
       
   292                 <echo message="isis_EClocaliser.pl ${localisation.files} ${localisation.files.region} -b=${localisation.region}_${localisation.buildfile} --ecbuild -state=0 -c=&quot;${localisation.languages}&quot; -dest=&quot;${zips.loc.dir}&quot; -s60locfiles=&quot;${localisation.s60locfiles.dir}&quot; -l=&quot;${localisation.log}&quot; -h" />
       
   293                 <exec executable="perl" dir="${build.drive}/" failonerror="${failonerror}">
       
   294                     <arg line="${build.drive}/epoc32/tools/isis_EClocaliser.pl ${localisation.files} ${localisation.files.region} -state=0 -b=${localisation.region}_${localisation.buildfile} --ecbuild -c=&quot;${localisation.languages}&quot; -dest=&quot;${zips.loc.dir}&quot; -s60locfiles=&quot;${localisation.s60locfiles.dir}&quot; -l=&quot;${localisation.log}&quot; -nolocal -k"/>
       
   295                 </exec>
       
   296                 <antcall target="localisation-emake"/>
       
   297             </then>
       
   298             <else>
       
   299                 <!-- localisation build for TBS -->
       
   300                 <echo message="isis_EClocaliser.pl ${localisation.files} ${localisation.files.region} -b=${localisation.region}_${localisation.buildfile} --noecbuild -state=0 -c=&quot;${localisation.languages}&quot; -dest=&quot;${zips.loc.dir}&quot; -s60locfiles=&quot;${localisation.s60locfiles.dir}&quot; -l=&quot;${localisation.log}&quot; -h" />
       
   301                 <exec executable="perl" dir="${build.drive}/" failonerror="${failonerror}">
       
   302                     <arg line="${build.drive}/epoc32/tools/isis_EClocaliser.pl ${localisation.files} ${localisation.files.region} -state=0 -b=${localisation.region}_${localisation.buildfile} --noecbuild -c=&quot;${localisation.languages}&quot; -dest=&quot;${zips.loc.dir}&quot; -s60locfiles=&quot;${localisation.s60locfiles.dir}&quot; -l=&quot;${localisation.log}&quot; -nolocal -k"/>
       
   303                 </exec>
       
   304                 <antcall target="localisation-ebs"/>
       
   305             </else>
       
   306         </if>        
       
   307         <!-- localisation build cleanup -->
       
   308         <echo message="isis_EClocaliser.pl -b=${localisation.region}_${localisation.buildfile} -state=2 -dest=&quot;${zips.loc.dir}&quot; -h" />
       
   309         <exec executable="perl" dir="${build.drive}/" failonerror="${failonerror}">
       
   310             <arg line="${build.drive}/epoc32/tools/isis_EClocaliser.pl ${localisation.files} ${localisation.files.region} -b=${build.log.dir}/${build.id}.${localisation.region}_${localisation.buildfile} -state=2 -c=&quot;${localisation.languages}&quot; -dest=&quot;${zips.loc.dir}&quot; -s60locfiles=&quot;${localisation.s60locfiles.dir}&quot; -l=&quot;${localisation.log}&quot; -nolocal -k"/>
       
   311         </exec>
       
   312     </target>
       
   313 
       
   314 
       
   315     <!-- Localise resources using EBS-->
       
   316     <target name="localisation-ebs" if="build.system.ebs" depends="set-arm-version" >
       
   317         <for list="${isis_mktarget.list}" delimiter="," param="mktarget">
       
   318             <sequential>
       
   319                 <antcall target="compile-ebs">
       
   320                     <param name="sysdef.configuration" value="@{mktarget}"/>
       
   321                     <param name="genxml.output.file" location="${build.drive}/@{mktarget}.xml"/>
       
   322                 </antcall>
       
   323                 <!-- <echo message="isis_EClocaliser.pl ${localisation.files} ${localisation.files.region} -b=${localisation.region}_${localisation.buildfile} -state=1 -c=&quot;${localisation.languages}&quot; -dest=&quot;${zips.loc.dir}&quot; -s60locfiles=&quot;${localisation.s60locfiles.dir}&quot; -l=&quot;${localisation.log}&quot; -h" />
       
   324                 <exec executable="perl" dir="${build.drive}/" failonerror="${failonerror}">
       
   325                     <arg line="${build.drive}/epoc32/tools/isis_EClocaliser.pl -b=${localisation.region}_${localisation.buildfile} -state=1 -dest=&quot;${zips.loc.dir}&quot; -k"/>
       
   326                 </exec>
       
   327                 -->
       
   328             </sequential>
       
   329         </for>
       
   330     </target>
       
   331 
       
   332 
       
   333     <!-- Localise resources using EC-->
       
   334     <target name="localisation-emake" if="build.system.ec-helium" depends="set-arm-version" >
       
   335         <propertycopy name="localisation.files.region" from="localisation.files.${localisation.region}" />
       
   336         <for list="${isis_mktarget.list}" delimiter="," param="mktarget">
       
   337             <sequential>
       
   338                 <hlm:recordStartMacro name="@{mktarget}.log" emacsmode="true"/>
       
   339                 <hlm:emakeMacro name="localisation" makefile="${build.drive}/${localisation.region}_${localisation.buildfile}.make" target="@{mktarget}" dir="${build.drive}/" annodetail="basic,history,file,waiting"/>
       
   340                 <hlm:recordStopMacro name="@{mktarget}.log"/>
       
   341             </sequential>
       
   342         </for>
       
   343     </target>
       
   344 
       
   345 
       
   346     <!-- S60 localiser tool -->
       
   347     <target name="localisation-s60-localiser">
       
   348         <propertycopy name="localisation.files.region" from="localisation.files.${localisation.region}" />
       
   349         <echo message="s60Localiser.pl ${localisation.files} ${localisation.files.region} -c=&quot;${localisation.languages}&quot; -dest=&quot;${zips.loc.dir}&quot; -s60locfiles=&quot;${localisation.s60locfiles.dir}&quot; -l=&quot;${localisation.log}&quot;" />
       
   350         <exec executable="perl" dir="${build.drive}/" failonerror="${failonerror}">
       
   351             <arg line="${build.drive}/epoc32/tools/s60Localiser.pl ${localisation.files} ${localisation.files.region} -c=&quot;${localisation.languages}&quot; -dest=&quot;${zips.loc.dir}&quot; -s60locfiles=&quot;${localisation.s60locfiles.dir}&quot; -l=&quot;${localisation.log}&quot;"/>
       
   352         </exec>    
       
   353     </target>
       
   354     
       
   355     
       
   356     <!-- Build localised content -->
       
   357     <target name="localisation-build" depends="rombuild-prepare-input">
       
   358         <record name="${build.log.dir}/${build.id}_localisation_build.log" action="start"/>
       
   359         <copy file="${parse_abld_what.tool}" todir="${build.drive}/epoc32/tools/s60tools" failonerror="false"/>
       
   360         <mkdir dir="${zips.loc.dir}"/>    
       
   361         
       
   362         <!-- get all variation available -->    
       
   363         <exec executable="python" outputproperty="localisation.variation" dir="${build.drive}/" failonerror="${failonerror}">
       
   364             <arg line="${helium.dir}/tools/localisation/getallvariantion.py ${localisation.language.file}"/> 
       
   365         </exec>
       
   366 
       
   367         <!-- get all variation available -->    
       
   368         <echo>We will create zip variation for ${localisation.variation}</echo>
       
   369         <for list="${localisation.variation}" delimiter="," param="variant">
       
   370             <sequential>    
       
   371                 <hlm:createDeltaZipMacro variant="@{variant}" />
       
   372                 <!-- getting all languages to localise -->
       
   373                 <var name="localisation.languages" unset="true"/>
       
   374                 <exec executable="python" outputproperty="localisation.languages" dir="${build.drive}/" failonerror="${failonerror}">
       
   375                     <arg line="${helium.dir}/tools/localisation/getalllanguages.py ${localisation.language.file} @{variant}"/> 
       
   376                 </exec>
       
   377                 
       
   378                 <echo>Localising ${localisation.languages}</echo>
       
   379                 <propertyregex property="localisation.log" input="${build.log.dir}/localisation_${localisation.languages}.html" regexp="\s+" replace="_" override="true"/>
       
   380                 <echo>Localising using ${localisation.tool}.</echo>
       
   381                 <antcall target="${localisation.tool}">
       
   382                     <param name="localisation.region" value="@{variant}"/>
       
   383                 </antcall>
       
   384                 
       
   385                 <for list="${product.list}" delimiter="," param="product.name" >
       
   386                     <sequential>
       
   387                         <for list="${localisation.languages}" delimiter=" " param="lid" >
       
   388                             <sequential>
       
   389                                 <exec executable="python" dir="${build.drive}/epoc32/rom" failonerror="${failonerror}">
       
   390                                     <arg line="${helium.dir}/tools/localisation/createlocales.py @{product.name} @{lid} -include Override.oby"/> 
       
   391                                 </exec>
       
   392                             </sequential>
       
   393                         </for>
       
   394                     </sequential>
       
   395                 </for>
       
   396             </sequential>
       
   397         </for>
       
   398         <record name="${build.log.dir}/${build.id}_localisation_build.log" action="stop"/>
       
   399     </target>
       
   400     
       
   401     
       
   402     <!--
       
   403         Target to rebuild locales 
       
   404         This could be useful for incremental changes/test.
       
   405     -->
       
   406     <target name="localisation-create-locales"> 
       
   407         <record name="${build.log.dir}/${build.id}_create_locales.log" action="start"/>
       
   408         
       
   409         <!-- get all variation available -->    
       
   410         <exec executable="python" outputproperty="localisation.variation" dir="${build.drive}/" failonerror="${failonerror}">
       
   411             <arg line="${helium.dir}/tools/localisation/getallvariantion.py ${localisation.language.file}"/> 
       
   412         </exec>
       
   413                 
       
   414         <!-- get all variation available -->    
       
   415         <echo>We will create zip variation for ${localisation.variation}</echo>
       
   416         <for list="${localisation.variation}" delimiter="," param="variant">
       
   417             <sequential>
       
   418                 <hlm:createDeltaZipMacro variant="@{variant}" />
       
   419                 <!-- getting all languages to localise -->
       
   420                 <var name="localisation.languages" unset="true"/>
       
   421                 <exec executable="python" outputproperty="localisation.languages" dir="${build.drive}/" failonerror="${failonerror}">
       
   422                     <arg line="${helium.dir}/tools/localisation/getalllanguages.py ${localisation.language.file} @{variant}"/> 
       
   423                 </exec>
       
   424            
       
   425                 <for list="${product.list}" delimiter="," param="product.name" >
       
   426                     <sequential>
       
   427                         <for list="${localisation.languages}" delimiter=" " param="lid" >
       
   428                             <sequential>
       
   429                                 <exec executable="python" dir="${build.drive}/epoc32/rom" failonerror="${failonerror}">
       
   430                                     <arg line="${helium.dir}/tools/localisation/createlocales.py @{product.name} @{lid} -include Override.oby"/> 
       
   431                                 </exec>
       
   432                             </sequential>
       
   433                         </for>
       
   434                     </sequential>
       
   435                 </for>
       
   436             </sequential>
       
   437         </for>
       
   438         <record name="${build.log.dir}/${build.id}_create_locales.log" action="stop"/>
       
   439     </target>    
       
   440 
       
   441     
       
   442     <!-- Creates localised rom images -->
       
   443     <target name="localisation-roms" depends="rombuild-create-makefile,flash-config-file"> 
       
   444         <!-- get product path -->
       
   445         <record name="${build.log.dir}/${build.id}_localisation_roms.log" action="start"/>
       
   446         <hlm:preECImakerMacro/>
       
   447         <for list="${product.list}" delimiter="," param="product.name" >
       
   448             <sequential>
       
   449                 <hlm:rombuildImakerMacro product="@{product.name}" target="${localisation.makefile.target}" />
       
   450             </sequential>
       
   451         </for>
       
   452         <hlm:ecImakerMacro makefile.target="${localisation.makefile.target}" />
       
   453         <record name="${build.log.dir}/${build.id}_localisation_roms.log" action="stop"/>
       
   454         <hlm:logextract file="${build.log.dir}/${build.id}_localisation_roms.log"/>
       
   455     </target>
       
   456 
       
   457     
       
   458     <!-- Creates customer rom images -->
       
   459     <target name="customer-roms" depends="rombuild-create-makefile,flash-config-file"> 
       
   460         <!-- get product path -->
       
   461         <record name="${build.log.dir}/${build.id}_customer_roms.log" action="start"/>
       
   462         <hlm:preECImakerMacro/>
       
   463         <for list="${product.list}" delimiter="," param="product.name" >
       
   464             <sequential>
       
   465                 <hlm:rombuildImakerMacro product="@{product.name}" target="${customer.makefile.target}" />
       
   466             </sequential>
       
   467         </for>
       
   468         <hlm:ecImakerMacro makefile.target="${customer.makefile.target}" />
       
   469         <record name="${build.log.dir}/${build.id}_customer_roms.log" action="stop"/>
       
   470         <hlm:logextract file="${build.log.dir}/${build.id}_customer_roms.log"/>
       
   471     </target>
       
   472 
       
   473     
       
   474     <!-- Runs localisation for product builds.
       
   475     
       
   476     Creates:
       
   477     * Localisation configuration
       
   478     * Build localised content
       
   479     * Localised rom images
       
   480     
       
   481      -->
       
   482     <target name="localisation" depends="localisation-create-config,precompile-ec,localisation-build,localisation-roms"> 
       
   483         <antcall target="postcompile-ec"/>
       
   484     </target>
       
   485 
       
   486 </project>