buildframework/helium/tools/localisation/localisation-50.ant.xml
changeset 217 0f5e3a7fb6af
parent 179 d8ac696cc51f
child 588 c7c26511138f
--- a/buildframework/helium/tools/localisation/localisation-50.ant.xml	Fri Feb 05 11:59:41 2010 +0000
+++ b/buildframework/helium/tools/localisation/localisation-50.ant.xml	Thu Mar 04 15:10:37 2010 +0200
@@ -20,13 +20,47 @@
 
 ============================================================================
 -->
-<project name="localisation-50">
+<!--* @package localisation -->
+<project name="localisation-50" xmlns:hlm="http://www.nokia.com/helium">
     <description>
         S60 5.0+ localisation.
     </description>
 
     <!-- Main target for 5.0 build localisation process. -->
     <target name="localisation-50-build" depends="localisation-switch-loc-generator,localisation-dtd"/> 
+
+    <!-- Regional variation support for 5.0 -->
+    <!-- Location of the parse_what_log.pl tool.
+    @type string
+    -->
+    <property name="parse_abld_what.tool" location="${build.drive}\s60\tools\build_platforms\build\tools\parse_what_log.pl" />
+    <!-- Location of the configuration tool.
+    @type string
+    -->
+    <property name="ctool.dir" location="${build.drive}/s60/tools/toolsextensions/ConfigurationTool" />
+    <!-- configuration for the western variant.
+    @type string
+    -->
+    <property name="ctool.western.conf" value="-master_conf s60 -impl \epoc32\rom\config\confml_data\s60 -confml \epoc32\rom\config\confml_data\s60" />
+    <!-- configuration for the chinese variant.
+    @type string
+    -->
+    <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}" />
+    <!-- configuration for the japanese variant.
+    @type string
+    -->
+    <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}" />
+    <!-- Define the prefix part of the configuration name that builds delta variant.
+    @type string
+    -->
+    <property name="s60.delta.config.prefix" value="S60_variant_"/>
+
+    <!-- ctool translation -->
+    <!-- .
+    @type string
+    @scope private
+    -->
+    <property name="ctool.region.china" value="apac"/>
    
     <!-- 
             This target launch the localisation of DTD files. 
@@ -49,5 +83,115 @@
         <exec dir="${build.drive}/" executable="perl.exe" failonerror="false"> 
             <arg line="${build.drive}/epoc32/tools/switch_loc_generator.pl"/> 
         </exec> 
-    </target> 
+    </target>
+    
+    
+    <!-- The createDeltaZipMacro enables to create regional variant like china and japan.
+    e.g:
+         <pre><hlm:createDeltaZipMacro variant="china" type="armv5" ctool="true"/></pre>
+    -->
+    <macrodef name="createDeltaZipMacro" uri="http://www.nokia.com/helium">
+        <attribute name="variant"/>
+        <attribute name="type" default=""/>
+        <attribute name="ctool" default="false"/>
+        <attribute name="force" default="false"/>
+        <sequential>
+            <mkdir dir="${build.log.dir}"/>
+            <mkdir dir="${localisation.log.dir}"/>            
+            <if>
+                <and>
+                    <available file="${zips.loc.dir}/delta_@{variant}_package.zip" />
+                    <isfalse value="@{force}"/>
+                </and>                    
+                <then>
+                    <echo>Unzipping ${zips.loc.dir}/delta_@{variant}_package.zip</echo>
+                    <unzip src="${zips.loc.dir}/delta_@{variant}_package.zip" dest="${build.drive}/" overwrite="true" />
+                </then>
+                <else>
+                    <if>
+                        <equals arg1="@{type}" arg2=""/>
+                        <then>
+                            <var name="internal.variant.type" value="@{type}"/>
+                        </then>
+                        <else>
+                            <var name="internal.variant.type" value="_@{type}"/>
+                        </else>
+                    </if>
+                    <echo>Generating ${build.drive}\epoc32\tools\s60tools\variant_build_@{variant}${internal.variant.type}.xml</echo>
+                    <hlm:compileGenxmlMacro input="-x ${canonical.sysdef.file}"
+                                          configuration="${s60.delta.config.prefix}@{variant}${internal.variant.type}"
+                                          output="${build.drive}\epoc32\tools\s60tools\variant_build_@{variant}${internal.variant.type}.xml"
+                                          log="${localisation.log.dir}/${build.id}.variant_build_@{variant}${internal.variant.type}_genxml.log"/>
+
+                    <echo>Building ${build.drive}\epoc32\tools\s60tools\variant_build_@{variant}${internal.variant.type}.xml</echo>
+                    <hlm:compileEbsMacro input="${build.drive}\epoc32\tools\s60tools\variant_build_@{variant}${internal.variant.type}.xml" log="${localisation.log.dir}/${build.id}.@{variant}${internal.variant.type}_compile.log" />
+                    <hlm:compileHtmlscanlogMacro input="${localisation.log.dir}/${build.id}.@{variant}${internal.variant.type}_compile.log" output="${build.log.dir}/${build.id}.@{variant}${internal.variant.type}_scan2.html" />
+                    
+                    <if>
+                        <istrue value="@{ctool}"/>
+                        <then>
+                            <property name="ctool.region.@{variant}" value="@{variant}"/>
+                            <echo>Region ctool: ${ctool.region.@{variant}} (@{variant}).</echo>
+                            <preset.exec executable="cmd" dir="${ctool.dir}/" failonerror="true" output="${localisation.log.dir}/${build.id}.configtool_@{variant}_log.txt">
+                                <arg line="/c cli_build.cmd ${ctool.@{variant}.conf} -report ${localisation.log.dir}/${build.id}.configtool_@{variant}_delta.txt -ignore_errors"/>
+                            </preset.exec>
+                        </then>
+                    </if>
+                    <preset.exec executable="perl" dir="${build.drive}/" failonerror="true">
+                        <arg value="${parse_abld_what.tool}"/>
+                        <arg line="-i ${localisation.log.dir}/${build.id}.@{variant}${internal.variant.type}_compile.log -filter \epoc32 -zip ${zips.loc.dir}/delta_@{variant}_package -ex productvariant.hrh"/>
+                    </preset.exec>
+                    <if>
+                        <istrue value="@{ctool}"/>
+                        <then>
+                            <preset.exec executable="${build.drive}\epoc32\tools\zip.exe" dir="${build.drive}/" input="${localisation.log.dir}/${build.id}.configtool_@{variant}_delta.txt">
+                                <arg line="-r -u ${zips.loc.dir}/delta_@{variant}_package -@"/>
+                            </preset.exec>
+                        </then>
+                    </if>
+                    <var name="internal.variant.type" unset="true"/>
+                </else>
+            </if>
+        </sequential>
+    </macrodef>
+
+
+    <!-- The createDeltaWesternZipMacro enables to create western regional variant
+    e.g: build western variation using the results from S60_postbuild config
+         and enabling configuration tool support.
+         <pre><hlm:createDeltaWesternZipMacro configs="S60_postbuild" ctool="true"/></pre>
+    -->
+    <macrodef name="createDeltaWesternZipMacro"  uri="http://www.nokia.com/helium">
+        <attribute name="configs"/>
+        <attribute name="ctool" default="false"/>
+        <sequential>
+            <mkdir dir="${zips.loc.dir}"/>
+            <mkdir dir="${localisation.log.dir}"/>
+            <for list="@{configs}" delimiter="," param="conf" >
+                <sequential>
+                    <if>
+                        <istrue value="@{ctool}"/>
+                        <then>
+                            <preset.exec executable="cmd" dir="${ctool.dir}/" failonerror="true" output="${localisation.log.dir}/${build.id}.configtool_western_log.txt">
+                                <arg line="/c cli_build.cmd ${ctool.western.conf} -report ${localisation.log.dir}/${build.id}.configtool_western_delta.txt -ignore_errors"/>
+                            </preset.exec>
+                        </then>
+                    </if>
+                    <preset.exec executable="perl" dir="${build.drive}/" failonerror="true">
+                        <arg value="${parse_abld_what.tool}"/>
+                        <arg line="-i ${compile.log.dir}/${build.id}.@{conf}_compile.log -filter \epoc32 -zip ${zips.loc.dir}/delta_western_package -ex productvariant.hrh"/>
+                    </preset.exec>
+                    <if>
+                        <istrue value="@{ctool}"/>
+                        <then>
+                            <preset.exec executable="${build.drive}\epoc32\tools\zip.exe" dir="${build.drive}/" input="${localisation.log.dir}/${build.id}.configtool_western_delta.txt">
+                                <arg line="-r -u ${zips.loc.dir}/delta_western_package -@"/>
+                            </preset.exec>
+                        </then>
+                    </if>
+                </sequential>
+            </for>
+        </sequential>
+    </macrodef>
+    
 </project>