build.xml   [plain text]


<!DOCTYPE project [
    <!ENTITY icu-config SYSTEM "./icu-config.xml">
]>
<!--
/*
*******************************************************************************
* Copyright (C) 2005-2008, 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, metazoneInfo, likelySubtags, plurals, translit, brkitr, brkfiles" />
    <!-- parallel target -->
    <target name="pall" depends="init">
        <parallel threadsPerProcessor ="1">
          <sequential>
            <ant target='locales'>
            </ant>
            <ant target='resfiles'>
            </ant>
          </sequential>
          <sequential>
            <ant target='collation'>
            </ant>
            <ant target='colfiles'>
            </ant>
          </sequential>
          <ant target='supplementalData'>
          </ant>
          <sequential>
            <ant target='brkitr'>
            </ant>
            <ant target='brkfiles'>
            </ant>
          </sequential>
          <sequential>
            <ant target='translit'>
            </ant>
            <!--<ant target='trnsfiles'></ant>    Not ANT-built - see note below. -->
          </sequential>
        </parallel>
     </target>

    <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_ID" to="id_ID" />
                    <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="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="ha_NG" />
                    <aliasLocale locale="kk_KZ" />
                    <aliasLocale locale="in" />
                    <aliasLocale locale="iw" />
                    <aliasLocale locale="no" />
                    <aliasLocale locale="pa_IN" />
                    <aliasLocale locale="pa_PK" />
                    <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_ME" />
                    <aliasLocale locale="sr_RS" />
                    <aliasLocale locale="sr_YU" />
                    <aliasLocale locale="sr_Cyrl_YU" />
                    <aliasLocale locale="sr_Cyrl_CS" />
                    <aliasLocale locale="sr_Latn_YU" />
                    <aliasLocale locale="sr_Latn_CS" />
                    <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" />
                    <alias from="no" to="nb" />
                    <alias from="no_NO" to="nb_NO" />
                    <alias from="sh" to="sr_Latn" />
                    <alias from="sh_BA" to="sr_Latn_BA" />
                    <alias from="sh_CS" to="sr_Latn_RS" />
                    <alias from="sh_YU" to="sr_Latn_RS" />
                    <alias from="sr_BA" to="sr_Cyrl_BA" />
                    <alias from="sr_ME" to="sr_Cyrl_ME" />
                    <alias from="sr_RS" to="sr_Cyrl_RS" />
                    <alias from="zh_CN" to="zh_Hans_CN" />
                    <alias from="zh_SG" to="zh_Hans_SG" />
                    <alias from="zh_HK" to="zh_Hant_HK" />
                    <alias from="zh_MO" to="zh_Hant_MO" />
                    <alias from="zh_TW" to="zh_Hant_TW" />
                    <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="metazoneInfo" depends="init,setup" description="builds metazoneInfo.txt from metazoneInfo.xml">
        <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" destFile="metazoneInfo.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="-z"/>
                    <arg name="-f"/>
                    <arg name="-m" value="${env.CLDR_DIR}/common/supplemental" />
                </args>
            </run>
        </cldr-build>
    </target>
    <target name="likelySubtags" depends="init,setup" description="builds likelySubtags.txt from likelySubtags.xml">
        <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" destFile="likelySubtags.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="-t"/>
                    <arg name="-f"/>
                    <arg name="-m" value="${env.CLDR_DIR}/common/supplemental" />
                </args>
            </run>
        </cldr-build>
    </target>
    <target name="plurals" depends="init,setup" description="builds plurals.txt from plurals.xml">
        <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" destFile="plurals.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="-r"/>
                    <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="-m" value="((?!.*(BGN|Canadian|Ethiopic).*).*)" />
                    <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>
    <!-- we don't generate en.txt or el.txt - so don't change trnsfiles.mk for now. -->
<!--   
     <target name="trnsfiles" depends="init, setup" description="builds trnsfiles.mk">
        <cldr-build toolName="org.unicode.cldr.icu.ConvertTransforms" srcFile=".*xml" destFile="trnsfiles.mk" noArgs="true">
            <run>
                <args>   [ double hyphen not allowed in comments - transpose -" to fix below ]
                    <arg name=-"-sourcedir" value="${env.CLDR_DIR}/common/transforms" />
                    <arg name=-"-destdir"   value="${env.ICU4C_DIR}/source/data/translit"/>
                    <arg name=-"-commentSkip"/>
                    <arg name=-"-writeIndex"/>
                </args>
            </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" />
            </fileset>
            <fileset id="resfiles" dir="${env.ICU4C_DIR}/source/data/locales">
                <include name="resfiles.mk" />
            </fileset>
            <fileset id="collation" dir="${env.ICU4C_DIR}/source/data/coll">
                <include name="*.txt" />
            </fileset>
            <fileset id="colfiles" dir="${env.ICU4C_DIR}/source/data/coll">
                <include name="colfiles.mk" />
            </fileset>
            <fileset id="locales" dir="${env.ICU4C_DIR}/source/data/translit">
                <include name="*_*.txt" />
                <include name="root.txt" />
            </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="supplementalData" dir="${env.ICU4C_DIR}/source/data/misc">
                <include name="supplementalData.txt" />
            </fileset>
            <fileset id="metazoneInfo" dir="${env.ICU4C_DIR}/source/data/misc">
                <include name="metazoneInfo.txt" />
            </fileset>
            <fileset id="likelySubtags" dir="${env.ICU4C_DIR}/source/data/misc">
                <include name="likelySubtags.txt" />
            </fileset>
            <fileset id="plurals" dir="${env.ICU4C_DIR}/source/data/misc">
                <include name="plurals.txt" />
            </fileset>
        </delete>
    </target>
</project>