buildframework/helium/tools/localisation/localisation-50.ant.xml
author Zheng Shen <zheng.shen@nokia.com>
Tue, 20 Jul 2010 15:02:28 +0800
changeset 617 3a747a240983
parent 588 c7c26511138f
child 628 7c4a911dc066
permissions -rw-r--r--
ROM Tools 12.2.0.4 Postlinker 2.2.5 Revert package_definition.xml to changeset 360bd6b35136

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
============================================================================ 
Name        : localisation-50.ant.xml 
Part of     : Helium 

Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
All rights reserved.
This component and the accompanying materials are made available
under the terms of the License "Eclipse Public License v1.0"
which accompanies this distribution, and is available
at the URL "http://www.eclipse.org/legal/epl-v10.html".

Initial Contributors:
Nokia Corporation - initial contribution.

Contributors:

Description:

============================================================================
-->
<!--* @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. 
            This is handled by the DTDLocaliser.pl script from S60.  
    --> 
    <target name="localisation-dtd">
        <mkdir dir="${localisation.log.dir}"/>
        <exec dir="${build.drive}/" executable="perl.exe" failonerror="false"> 
            <arg value="${build.drive}/epoc32/tools/DTDLocaliser.pl"/> 
            <arg value="-l"/> 
            <arg value="${localisation.log.dir}/${build.id}.dtd_localisation.log}"/> 
        </exec> 
    </target> 
     
     
    <!-- 
            This target launch the switch_loc_generator (for 5.0 build only). 
    --> 
    <target name="localisation-switch-loc-generator"> 
        <exec dir="${build.drive}/" executable="perl.exe" failonerror="false"> 
            <arg line="${build.drive}/epoc32/tools/switch_loc_generator.pl"/> 
        </exec> 
    </target>
    
    
    <!-- The createDeltaZipMacro enables to create regional variant like china and japan.
        
    e.g:
         
        <hlm:createDeltaZipMacro variant="china" type="armv5" ctool="true"/>
    -->
    <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.
    
        <hlm:createDeltaWesternZipMacro configs="S60_postbuild" ctool="true"/>
    -->
    <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>