<!-- © 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" basedir=".">

    <!-- 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')."/>
        <property name="testDataDir4C" value="${basedir}/../../icu4c/source/test/testdata/cldr"/>
        <property name="testDataDir4J" value="${basedir}/../../icu4j/main/tests/core/src/com/ibm/icu/dev/data/cldr"/>
    </target>

    <!-- Copies CLDR test data directories, after deleting previous
         contents to prevent inconsistent state. -->
    <target name="copy-cldr-testdata" depends="init-args, clean-cldr-testdata">
        <!-- CLDR test data directories to be copied into ICU. -->
        <fileset id="cldrTestData" dir="${cldrDir}/common/testData">
            <!-- Add directories here to control which test data is installed. -->
            <include name="units/**"/> <!-- Used in UnitsTest tests -->
        </fileset>

        <copy todir="${testDataDir4C}">
            <fileset refid="cldrTestData"/>
        </copy>
        <copy todir="${testDataDir4J}">
            <fileset refid="cldrTestData"/>
        </copy>
    </target>

    <!-- Deletes CLDR test data -->
    <target name="clean-cldr-testdata" depends="init-args">
        <delete dir="${testDataDir4C}"/>
        <delete dir="${testDataDir4J}"/>
    </target>

    <!-- 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>
