<!--
*******************************************************************************
* Copyright (C) 2009-2011, International Business Machines Corporation and    *
* others. All Rights Reserved.                                                *
*******************************************************************************
-->
<project name="common-targets" basedir=".">
    <dirname property="common-targets.dir" file="${ant.file.common-targets}"/>
    <property file="${common-targets.dir}/locations.properties"/>
    <property file="${common-targets.dir}/common.properties"/>

    <!-- common targets -->

    <target name="@clean">
        <delete dir="${out.dir}"/>
    </target>

    <target name="@compile">
        <echo message="--- java compiler arguments ------------------------"/>
        <echo message="source dir:     ${basedir}/${src.dir}"/>
        <echo message="output dir:     ${basedir}/${bin.dir}"/>
        <echo message="classpath:      ${toString:javac.classpathref}"/>
        <echo message="source:         ${javac.source}"/>
        <echo message="target:         ${javac.target}"/>
        <echo message="debug:          ${javac.debug}"/>
        <echo message="encoding:       ${java.src.encoding}"/>
        <echo message="compiler arg:   ${javac.compilerarg}"/>
        <echo message="----------------------------------------------------"/>

        <mkdir dir="${bin.dir}"/>
        <javac
            srcdir="${src.dir}"
            destdir="${bin.dir}"
            classpathref="javac.classpathref"
            source="${javac.source}"
            target="${javac.target}"
            encoding="${java.src.encoding}"
            debug="${javac.debug}">
            <compilerarg value="${javac.compilerarg}"/>
        </javac>
    </target>

    <target name="@copy">
        <mkdir dir="${bin.dir}"/>
        <copy todir="${bin.dir}">
            <fileset dir="${src.dir}" defaultexcludes="yes">
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>

    <target name="@jar">
        <mkdir dir="${jar.dir}"/>

        <copy file="manifest.stub" todir="${out.dir}">
            <filterset>
                <filter token="SPECVERSION" value="${jar.spec.version}"/>
                <filter token="IMPLVERSION" value="${jar.impl.version}"/>
                <filter token="COPYRIGHT" value="${jar.copyright.info}"/>
            </filterset>
        </copy>

        <jar jarfile="${jar.file}" manifest="${out.dir}/manifest.stub" compress="true">
            <fileset dir="${bin.dir}" includes="**/*"/>
            <fileset dir="${shared.dir}/licenses">
                <include name="license.html"/>
                <include name="unicode-license.txt"/>
            </fileset>
        </jar>
    </target>

    <target name="@build-all">
        <antcall target="_all.${ant.project.name}"/>
    </target>

    <target name="@full-locale-names">
        <echo message="Generating ${res.dir}/fullLocaleNames.lst"/>
        <pathconvert pathsep="${line.separator}" property="full.locale.names">
            <fileset dir="${res.dir}">
                <include name="??.res"/>
                <include name="??_*.res"/>
                <include name="???.res"/>
                <include name="???_*.res"/>
                <include name="root.res"/>
                <exclude name="res_index.res"/>
            </fileset>
            <chainedmapper>
                <flattenmapper/>
                <globmapper from="*.res" to="*"/>
            </chainedmapper>
        </pathconvert>
        <echo message="${full.locale.names}" file="${res.dir}/fullLocaleNames.lst"/>
    </target>

    <!-- Dependencies -->

    <!-- collate -->
    <path id="javac.classpathref.collate">
        <pathelement location="${icu4j.core.jar}"/>
    </path>

    <target name="_all.collate" depends="_all.core">
        <ant dir="${icu4j.collate.dir}" inheritAll="false"/>
    </target>

    <!-- core -->
    <path id="javac.classpathref.core"/>

    <target name="_all.core">
        <ant dir="${icu4j.core.dir}" inheritAll="false"/>
    </target>

    <!-- charset -->
    <path id="javac.classpathref.charset">
        <pathelement location="${icu4j.core.jar}"/>
    </path>

    <target name="_all.charset" depends="_all.core">
        <ant dir="${icu4j.charset.dir}" inheritAll="false"/>
    </target>

    <!-- currdata -->
    <path id="javac.classpathref.currdata">
        <pathelement location="${icu4j.core.jar}"/>
    </path>

    <target name="_all.currdata" depends="_all.core">
        <ant dir="${icu4j.currdata.dir}" inheritAll="false"/>
    </target>

    <!-- langdata -->
    <path id="javac.classpathref.langdata">
        <pathelement location="${icu4j.core.jar}"/>
    </path>

    <target name="_all.langdata" depends="_all.core">
        <ant dir="${icu4j.langdata.dir}" inheritAll="false"/>
    </target>

    <!-- localespi -->
    <path id="javac.classpathref.localespi">
        <pathelement location="${icu4j.core.jar}"/>
        <pathelement location="${icu4j.collate.jar}"/>
    </path>

    <target name="_all.localespi" depends="_all.core, _all.collate">
        <ant dir="${icu4j.localespi.dir}" inheritAll="false"/>
    </target>

    <!-- regiondata -->
    <path id="javac.classpathref.regiondata">
        <pathelement location="${icu4j.core.jar}"/>
    </path>

    <target name="_all.regiondata" depends="_all.core">
        <ant dir="${icu4j.regiondata.dir}" inheritAll="false"/>
    </target>

    <!-- translit -->
    <path id="javac.classpathref.translit">
        <pathelement location="${icu4j.core.jar}"/>
        <pathelement location="${icu4j.translit.jar}"/>
    </path>

    <target name="_all.translit" depends="_all.core">
        <ant dir="${icu4j.translit.dir}" inheritAll="false"/>
    </target>

    <!-- test-framework -->
    <path id="javac.classpathref.test-framework">
        <pathelement location="${icu4j.core.jar}"/>
    </path>

    <target name="_all.test-framework" depends="_all.core">
        <ant dir="${icu4j.test-framework.dir}" inheritAll = "false"/>
    </target>

    <!-- core-tests -->
    <path id="javac.classpathref.core-tests">
        <pathelement location="${icu4j.core.jar}"/>
        <pathelement location="${icu4j.test-framework.jar}"/>
    </path>

    <target name="_all.core-tests" depends="_all.core, _all.test-framework">
        <ant dir="${icu4j.core-tests.dir}" inheritAll="false"/>
    </target>

    <!-- collate-tests -->
    <path id="javac.classpathref.collate-tests">
        <pathelement location="${icu4j.core.jar}"/>
        <pathelement location="${icu4j.collate.jar}"/>
        <pathelement location="${icu4j.test-framework.jar}"/>
    </path>

    <target name="_all.collate-tests" depends="_all.core, _all.collate, _all.test-framework">
        <ant dir="${icu4j.collate-tests.dir}" inheritAll="false"/>
    </target>

    <!-- charset-tests -->
    <path id="javac.classpathref.charset-tests">
        <pathelement location="${icu4j.core.jar}"/>
        <pathelement location="${icu4j.charset.jar}"/>
        <pathelement location="${icu4j.test-framework.jar}"/>
    </path>

    <target name="_all.charset-tests" depends="_all.core, _all.charset, _all.test-framework">
        <ant dir="${icu4j.charset-tests.dir}" inheritAll="false"/>
    </target>

    <!-- localespi-tests -->
    <path id="javac.classpathref.localespi-tests">
        <pathelement location="${icu4j.core.jar}"/>
	<pathelement location="${icu4j.collate.jar}"/>
        <pathelement location="${icu4j.localespi.jar}"/>
        <pathelement location="${icu4j.test-framework.jar}"/>
    </path>

    <target name="_all.localespi-tests" depends="_all.core, _all.collate, _all.localespi, _all.test-framework">
        <ant dir="${icu4j.localespi-tests.dir}" inheritAll="false"/>
    </target>

    <!-- packaging-tests -->
    <path id="javac.classpathref.packaging-tests">
        <pathelement location="${icu4j.core.jar}"/>
        <pathelement location="${icu4j.charset.jar}"/>
        <pathelement location="${icu4j.test-framework.jar}"/>
    </path>

    <target name="_all.packaging-tests" depends="_all.core, _all.charset, _all.test-framework">
        <ant dir="${icu4j.packaging-tests.dir}" inheritAll="false"/>
    </target>

    <!-- translit-tests -->
    <path id="javac.classpathref.translit-tests">
        <pathelement location="${icu4j.core.jar}"/>
        <pathelement location="${icu4j.translit.jar}"/>
        <pathelement location="${icu4j.test-framework.jar}"/>
    </path>

    <target name="_all.translit-tests" depends="_all.core, _all.translit, _all.test-framework">
        <ant dir="${icu4j.translit-tests.dir}" inheritAll="false"/>
    </target>

    <!-- build-tools -->
    <path id="javac.classpathref.build-tools"/>

    <target name="_all.build-tools">
        <ant dir="${icu4j.build-tools.dir}" inheritAll="false"/>
    </target>

    <!-- tools -->
    <path id="javac.classpathref.tools">
        <pathelement location="${icu4j.core.jar}"/>
        <pathelement location="${icu4j.collate.jar}"/>
        <pathelement location="${icu4j.translit.jar}"/>
        <pathelement location="${icu4j.test-framework.jar}"/>
        <pathelement location="${icu4j.core-tests.jar}"/>
        <pathelement location="${icu4j.translit-tests.jar}"/>
    </path>

    <target name="_all.tools" depends="_all.core, _all.collate, _all.translit, _all.test-framework, _all.core-tests, _all.translit-tests">
        <ant dir="${icu4j.tools.dir}" inheritAll="false"/>
    </target>

    <!-- demos -->
    <path id="javac.classpathref.demos">
        <pathelement location="${icu4j.core.jar}"/>
        <pathelement location="${icu4j.translit.jar}"/>
        <pathelement location="${icu4j.charset.jar}"/>
    </path>

    <target name="_all.demos" depends="_all.core, _all.translit, _all.charset">
        <ant dir="${icu4j.demos.dir}" inheritAll="false"/>
    </target>

</project>
