blob: 76aaec7af7434aa6179706893ab62ab5f7682563 [file] [log] [blame]
<!-- © 2020 and later: Unicode, Inc. and others.
License & terms of use: http://www.unicode.org/copyright.html -->
<!-- This build file is intended to become the single mechanism for working with CLDR
code and data when building ICU data.
Eventually it will encompass:
* Building ICU data form CLDR data via cldr-to-icu.
* Building the CLDR libraries needed to support ICU data conversion.
* Copying CLDR test data for ICU regression tests.
It's not complete yet, so for now follow the instructions in:
icu4c/source/data/cldr-icu-readme.txt
-->
<!-- Using the directory of this build.xml file as ${basedir}. -->
<project name="CLDR" default="install" basedir=".">
<!-- Installs prerequisite data from CLDR (test data and CLDR libraries).
This target will not rebuild the ICU data however (since that's a
lengthy process). -->
<target name="install" depends="clean, copy-cldr-testdata, install-cldr-libs"/>
<!-- Cleans CLDR dependencies (testdata, CLDR libraries). This target does
not delete any generated ICU data. -->
<target name="clean" depends="clean-cldr-testdata"/>
<!-- Initialize any properties not already set on the command line. -->
<target name="init-args">
<property environment="env"/>
<!-- Inherit properties from environment variable unless specified. As usual
with Ant, this is messier than it should be. All we are saying here is:
"Use the property if explicitly set, otherwise use the environment variable."
We cannot just set the property to the environment variable, since expansion
fails for non existant properties, and you are left with a literal value of
"${env.CLDR_DIR}". -->
<condition property="cldrDir" value="${env.CLDR_DIR}">
<isset property="env.CLDR_DIR"/>
</condition>
<fail unless="cldrDir"
message="Set the CLDR_DIR environment variable (or cldrDir property) to the top level CLDR source directory (containing 'common')."/>
</target>
<!-- TODO: Add properties and targets for copying test data. -->
<!-- Builds the ICU data, using the Ant build file in the cldr-to-icu directory and passing.
through any specified arguments for controlling the build. If you need more control when
building ICU data (such as incrementally building parts of the data), you should use the
build-icu-data.xml file directly. -->
<target name="build-icu-data">
<ant dir="cldr-to-icu" antfile="build-icu-data.xml" target="all" inheritAll="true"/>
</target>
<!-- Deletes generated ICU data by invoking "clean" in cldr-to-icu/build-icu-data.xml -->
<target name="clean-icu-data">
<ant dir="cldr-to-icu" antfile="build-icu-data.xml" target="clean" inheritAll="true"/>
</target>
<!-- Installs the CLDR library dependencies needed for building ICU data. -->
<target name="install-cldr-libs" depends="init-args">
<exec dir="lib" executable="install-cldr-jars.sh" resolveexecutable="true" failonerror="true">
<arg line="${cldrDir}"/>
</exec>
</target>
</project>