build.xml   [plain text]


<!DOCTYPE project [
    <!ENTITY icu-config SYSTEM "file:./icu-config.xml">
]>
<!--
/*
*******************************************************************************
* Copyright (C) 2005-2006, International Business Machines Corporation and         *
* others. All Rights Reserved.                                                *
*******************************************************************************
*/
-->
<project name="icu-build" default="all" basedir=".">
    <target name="init">
        <tstamp/>
        
        <!-- Load environment variables -->
        <property environment="env"/>
        
        <condition property="is.icu4j.classes.set" >
            <or>
                <isset property="env.ICU4J_CLASSES" />
                <isset property="env.ICU4J_JAR" />
            </or>
        </condition > 
        <fail unless="is.icu4j.classes.set" message="Please set the ICU4J_CLASSES or ICU4J_JAR environment variable."/>
        
        <condition property="is.icu4c.dir.set" >
            <isset property="env.ICU4C_DIR" />
        </condition > 
        <fail unless="is.icu4c.dir.set" message="Please set the ICU4C_DIR environment variable."/>
        
        <condition property="is.cldr.dir.set" >
            <isset property="env.CLDR_DIR" />
        </condition > 
        <fail unless="is.cldr.dir.set" message="Please set the CLDR_DIR environment variable."/>
        
        <condition property="is.cldr.classes.set" >
            <or>
                <isset property="env.CLDR_CLASSES" />
                <isset property="env.CLDR_JAR" />
            </or>
        </condition > 
        <fail unless="is.cldr.classes.set" message="Please set the CLDR_CLASSES or CLDR_JAR environment variable."/>

        <condition property="is.utilities.classes.set" >
            <or>
                <isset property="env.ICU4J_CLASSES" />
                <isset property="env.UTILITIES_JAR" />
            </or>
        </condition > 
        <fail unless="is.utilities.classes.set" message="Please set the ICU4J_CLASSES or UTILITIES_JAR environment variable."/>
   
        <echo message="java home: ${java.home}"/>
        <echo message="java version: ${java.version}"/>
        <echo message="ant java version: ${ant.java.version}"/>
        <echo message="${ant.version}"/>
    </target>
    <target name="setup">
    
        <echo message="${env.CLDR_CLASSES}"/>
        <taskdef name="cldr-build" classname="org.unicode.cldr.ant.CLDRBuild">
            <classpath>
                <pathelement path="${java.class.path}/"/>
                <pathelement path="${env.ICU4J_CLASSES}"/>
                <pathelement path="${env.CLDR_CLASSES}"/>
                <pathelement location="${env.ICU4J_JAR}"/>
                <pathelement location="${env.CLDR_JAR}"/>
                <pathelement location="${env.UTILITIES_JAR}"/>
            </classpath>
        </taskdef> 
    </target>
    <!-- target for generating ICU data -->
    <target name="all" depends="locales, resfiles, collation, colfiles, supplementalData, brkitr, brkfiles" />
    
    <target name="locales" depends="init,setup" description="builds locale files in ICU text format">
        <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" srcFile=".*xml" destFile=".*txt">
            <!-- launch the tool and generate the data after reading the config file -->
            <run>
                <args>
                    <arg name="--sourcedir"       value="${env.CLDR_DIR}/common/main" />
                    <arg name="--destdir"         value="${env.ICU4C_DIR}/source/data/locales"/>
                    <arg name="--specialsdir"     value="${env.ICU4C_DIR}/source/data/xml/main"/>
                    <arg name="--supplementaldir" value="${env.CLDR_DIR}/common/supplemental" />
                </args>
                <!-- http://ant.apache.org/faq.html#xml-entity-include -->
                &icu-config;
            </run>
        </cldr-build>
    </target>
    <target name="resfiles" depends="init,setup" description="builds resfiles.mk">
        <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" destFile="resfiles.mk" noArgs="true">
            <run>
                <args>
                    <arg name="-s" value="${env.CLDR_DIR}/common/main" />
                    <arg name="-d" value="${env.ICU4C_DIR}/source/data/locales"/>
                    <arg name="-p" value="${env.ICU4C_DIR}/source/data/xml/main"/>
                    <arg name="-m" value="${env.CLDR_DIR}/common/supplemental" />
                    <arg name="-w" value="${env.CLDR_DIR}/common/main" />
                </args>
                  <!-- locale aliases (main) -->
                <deprecates> 
                    <alias from="in" to="id" /> 
                    <alias from="in_ID" to="id_ID" /> 
                    <alias from="iw" to="he" /> 
                    <alias from="iw_IL" to="he_IL" /> 
                    <alias from="ja_JP_TRADITIONAL" to="ja_JP@calendar=japanese" xpath="//ldml/dates/calendars/default[@type='japanese']"/> 
                    <alias from="ji" to="yi" /> 
                    <alias from="jw" to="jv"/> 
                    <alias from="no" to="nb"/> 
                    <alias from="no_NO" to="nb_NO"/> 
                    <alias from="no_NO_NY" to="nn_NO" />
                    <alias from="en_RH" to="en_ZW" />    
                    <alias from="th_TH_TRADITIONAL" to="th_TH@calendar=buddhist" xpath="//ldml/dates/calendars/default[@type='buddhist']" /> 
                    <aliasLocale locale="az_AZ" /> 
                    <aliasLocale locale="sh" /> 
                    <aliasLocale locale="sh_BA" /> 
                    <aliasLocale locale="sh_CS" /> 
                    <aliasLocale locale="sh_YU" /> 
                    <aliasLocale locale="sr_BA" /> 
                    <aliasLocale locale="sr_CS" /> 
                    <aliasLocale locale="sr_YU" /> 
                    <aliasLocale locale="sr_Cyrl_YU" /> 
                    <aliasLocale locale="sr_Latn_YU" /> 
                    <aliasLocale locale="uz_AF" /> 
                    <aliasLocale locale="uz_UZ" /> 
                    <aliasLocale locale="zh_CN" /> 
                    <aliasLocale locale="zh_HK" /> 
                    <aliasLocale locale="zh_MO" /> 
                    <aliasLocale locale="zh_SG" /> 
                    <aliasLocale locale="zh_TW" />
                </deprecates> 
            </run>
        </cldr-build>
    </target>
    <target name="collation" depends="init,setup" description="builds collation files in ICU text format">
        <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" srcFile=".*xml" destFile=".*txt">
            <run>
                <args>
                    <arg name="--sourcedir"       value="${env.CLDR_DIR}/common/collation" />
                    <arg name="--destdir"         value="${env.ICU4C_DIR}/source/data/coll"/>
                    <arg name="--specialsdir"     value="${env.ICU4C_DIR}/source/data/xml/collation"/>
                    <arg name="--supplementaldir" value="${env.CLDR_DIR}/common/supplemental" />  
                </args>
                <!-- http://ant.apache.org/faq.html#xml-entity-include -->
                &icu-config;
            </run>
        </cldr-build>
    </target>
    <target name="colfiles" depends="init, setup" description="builds colfiles.mk">
        <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" destFile="colfiles.mk" noArgs="true">
            <!-- launch the tool and generate the data after reading the config file -->
            <run>
                <args>
                    <arg name="-s" value="${env.CLDR_DIR}/common/collation" />
                    <arg name="-d" value="${env.ICU4C_DIR}/source/data/coll"/>
                    <arg name="-p" value="${env.ICU4C_DIR}/source/data/xml/collation"/>
                    <arg name="-m" value="${env.CLDR_DIR}/common/supplemental" />
                    <arg name="-w" value="${env.CLDR_DIR}/common/collation" />
                </args>
                 <deprecates> 
                    <alias from="de__PHONEBOOK" to="de@collation=phonebook"  xpath="//ldml/collations/default[@type='phonebook']"/> 
                    <alias from="es__TRADITIONAL" to="es@collation=traditional" xpath="//ldml/collations/default[@type='traditional']"/> 
                    <alias from="hi__DIRECT" to="hi@collation=direct" xpath="//ldml/collations/default[@type='direct']"/> 
                    <alias from="zh__PINYIN" to="zh@collation=pinyin" xpath="//ldml/collations/default[@type='pinyin']"/> 
                    <alias from="zh_TW_STROKE" to="zh@collation=stroke" xpath="//ldml/collations/default[@type='stroke']"/> 
                    <alias from="in" to="id" /> 
                    <alias from="in_ID" to="id_ID" /> 
                    <alias from="iw" to="he" /> 
                    <alias from="iw_IL" to="he_IL" />
                    <emptyLocale locale="de_" />
                    <emptyLocale locale="es_" />
                    <emptyLocale locale="hi_" />
                    <emptyLocale locale="zh_" />
                </deprecates> 
            </run>
        </cldr-build>
    </target>
    <target name="supplementalData" depends="init,setup" description="builds supplementalData.txt from supplementalData.xml">
        <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" destFile="supplementalData.txt" noArgs="true">
            <!-- launch the tool and generate the data after reading the config file -->
            <run>
                <args>
                    <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" />
                    <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/>
                    <arg name="-l"/>
                    <arg name="-f"/>
                    <arg name="-m" value="${env.CLDR_DIR}/common/supplemental" />
                </args>
            </run>
        </cldr-build>
    </target>
    <target name="brkitr" depends="init,setup" description="builds break iterator files in ICU text format">
        <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" srcFile=".*xml" destFile=".*txt">
            <run>
                <args>
                    <arg name="--sourcedir"       value="${env.ICU4C_DIR}/source/data/xml/brkitr"/>
                    <arg name="--destdir"         value="${env.ICU4C_DIR}/source/data/brkitr"/>
                    <arg name="--supplementaldir" value="${env.CLDR_DIR}/common/supplemental" />  
                </args>
                <!-- The entity include is not required for this target -->
                <!-- http://ant.apache.org/faq.html#xml-entity-include 
                &icu-config;
                -->
            </run>
        </cldr-build>
    </target>
    <target name="brkfiles" depends="init, setup" description="builds brkfiles.mk">
        <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" destFile="brkfiles.mk" noArgs="true">
            <!-- launch the tool and generate the data after reading the config file -->
            <run>
                <args>
                    <arg name="-s" value="${env.ICU4C_DIR}/source/data/xml/brkitr" />
                    <arg name="-d" value="${env.ICU4C_DIR}/source/data/brkitr"/>
                    <arg name="-m" value="${env.CLDR_DIR}/common/supplemental" />
                    <arg name="-w" value="${env.ICU4C_DIR}/source/data/xml/brkitr" />
                </args>
            </run>
        </cldr-build>
    </target>
        <target name="translit" depends="init,setup" description="builds collation files in ICU text format">
        <cldr-build toolName="org.unicode.cldr.icu.ConvertTransforms" srcFile=".*xml" destFile=".*txt">
            <run>
                <args>
                    <arg name="--sourcedir" value="${env.CLDR_DIR}/common/transforms" />
                    <arg name="--destdir"   value="${env.ICU4C_DIR}/source/data/translit"/>
                    <arg name="--commentSkip"/>
                </args>
                <!-- http://ant.apache.org/faq.html#xml-entity-include -->
                
            </run>
        </cldr-build>
    </target>
    <target name="trnsfiles" depends="init, setup" description="builds colfiles.mk">
        <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" destFile="colfiles.mk" noArgs="true">
            <!-- launch the tool and generate the data after reading the config file -->
            <run>
                <args>
                    <arg name="-s" value="${env.CLDR_DIR}/common/collation" />
                    <arg name="-d" value="${env.ICU4C_DIR}/source/data/coll"/>
                    <arg name="-p" value="${env.ICU4C_DIR}/source/data/xml/collation"/>
                    <arg name="-m" value="${env.CLDR_DIR}/common/supplemental" />
                    <arg name="-w" value="${env.CLDR_DIR}/common/collation" />
                </args>
                 <deprecates> 
                    <alias from="de__PHONEBOOK" to="de@collation=phonebook"  xpath="//ldml/collations/default[@type='phonebook']"/> 
                    <alias from="es__TRADITIONAL" to="es@collation=traditional" xpath="//ldml/collations/default[@type='traditional']"/> 
                    <alias from="hi__DIRECT" to="hi@collation=direct" xpath="//ldml/collations/default[@type='direct']"/> 
                    <alias from="zh__PINYIN" to="zh@collation=pinyin" xpath="//ldml/collations/default[@type='pinyin']"/> 
                    <alias from="zh_TW_STROKE" to="zh@collation=stroke" xpath="//ldml/collations/default[@type='stroke']"/> 
                    <alias from="in" to="id" /> 
                    <alias from="in_ID" to="id_ID" /> 
                    <alias from="iw" to="he" /> 
                    <alias from="iw_IL" to="he_IL" />
                    <emptyLocale locale="de_" />
                    <emptyLocale locale="es_" />
                    <emptyLocale locale="hi_" />
                    <emptyLocale locale="zh_" />
                </deprecates> 
            </run>
        </cldr-build>
    </target>
    <target name="clean" depends="init, setup" description="deletes all txt files and mk files from coll and locales directories">
        <delete>
            <fileset id="locales" dir="${env.ICU4C_DIR}/source/data/locales">
                <include name="*.txt" />
                <include name="resfiles.mk" />
            </fileset>
            <fileset id="locales" dir="${env.ICU4C_DIR}/source/data/coll">
                <include name="*.txt" />
                <include name="colfiles.mk" />
            </fileset>
            <fileset id="locales" dir="${env.ICU4C_DIR}/source/data/brkitr">
                <!-- brkitr directory contains bunch of txt files that are not produced by LDML2ICUConverter. 
                     So can't clean up everything. This needs to be updated when new files are added to xml/brkitr directory -->
                <include name="root.txt, en.txt, en_US.txt, en_US_POSIX.txt, ja.txt" />
                <include name="brkfiles.mk" />
            </fileset>
            <fileset id="locales" dir="${env.ICU4C_DIR}/source/data/misc">
                <include name="CurrencyData.txt" />
            </fileset>
        </delete>
    </target>
</project>