<!--
*******************************************************************************
* Copyright (C) 2009-2014, 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"/>

    <!-- global (top-level) propeties - need locations.properties loaded first -->
    <property file="${global.build-local.properties}"/>
    <property file="${global.build.properties}"/>

    <property file="${common-targets.dir}/common.properties"/>
    <property environment="env"/>

    <!-- common targets -->

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

    <target name="@compile">
        <echo message="build-local:     ${global.build-local.properties}"/>
        <echo message="${java5.bootclasspath}"/>
        <!-- set java5/6 bootclasspath to empty if not set -->
        <property name="java5.bootclasspath" value=""/>
        <property name="java6.bootclasspath" value=""/>

        <condition property="javac.bootclasspath" value="${java5.bootclasspath}">
            <equals arg1="${javac.target}" arg2="1.5"/>
        </condition>
        <condition property="javac.bootclasspath" value="${java6.bootclasspath}" else="">
            <equals arg1="${javac.target}" arg2="1.6"/>
        </condition>

        <echo message="--- java compiler arguments ------------------------"/>
        <echo message="source dir:     ${basedir}/${src.dir}"/>
        <echo message="output dir:     ${basedir}/${bin.dir}"/>
        <echo message="bootclasspath:  ${javac.bootclasspath}"/>
        <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}"
            bootclasspath="${javac.bootclasspath}"
            classpathref="javac.classpathref"
            source="${javac.source}"
            target="${javac.target}"
            debug="${javac.debug}"
            encoding="${java.src.encoding}"
            includeAntRuntime="no">
            <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}"/>
                <filter token="EXECENV" value="${jar.exec.env}"/>
            </filterset>
        </copy>

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

    <target name="@src-jar">
        <mkdir dir="${jar.dir}"/>
        <jar jarfile="${jar.dir}/${src.jar.name}" compress="true">
            <fileset dir="${src.dir}" includes="**/*.java"/>
            <fileset dir="${shared.dir}/licenses">
                <include name="license.html"/>
            </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>

    <!-- FindBugs targets -->
    <target name="_findbugs_init">
        <property name="findbugs.home" value="${env.FINDBUGS_HOME}"/>
        <echo message="----------------------------------------------------"/>
        <echo message="findbugs.home:  ${findbugs.home}"/>
        <echo message="----------------------------------------------------"/>

        <fail message="FindBugs task not found. Set environment variable FINDBUGS_HOME properly.">
            <condition>
                <not>
                    <or>
                        <available classname="edu.umd.cs.findbugs.anttask.FindBugsTask" property="_findbugs.task.available" />
                        <available file="${findbugs.home}/lib/findbugs-ant.jar" />
                    </or>
                </not>
            </condition>
        </fail>
        <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"
            classpath="${findbugs.home}/lib/findbugs-ant.jar"/>

        <property name="aux.classpath" value="${toString:javac.classpathref}"/>
        <condition property="empty.aux.classpath">
            <length string="${aux.classpath}" when="eq" length="0"/>
        </condition>
    </target>

    <target name="_findbugs_empty_aux_classpath" if="empty.aux.classpath">
        <findbugs
            home="${findbugs.home}"
            output="html"
            outputFile="${out.dir}/fb-${ant.project.name}.html"
            excludeFilter="findbugs-exclude.xml">
 
            <sourcePath path="${src.dir}"/>
            <class location="${jar.dir}/${jar.name}"/>
        </findbugs>
    </target>

    <target name="_findbugs_non_empty_aux_classpath" unless="empty.aux.classpath">
        <findbugs
            home="${findbugs.home}"
            output="html"
            outputFile="${out.dir}/fb-${ant.project.name}.html"
            excludeFilter="findbugs-exclude.xml">
 
            <sourcePath path="${src.dir}"/>
            <class location="${jar.dir}/${jar.name}"/>
            <auxClasspath path="${aux.classpath}"/>
        </findbugs>
    </target>

    <target name="@findbugs" depends="_findbugs_init, @build-all, _findbugs_empty_aux_classpath, _findbugs_non_empty_aux_classpath"/>

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

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

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


    <!-- build-tools -->
    <path id="javac.classpathref.build-tools">
        <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
    </path>

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

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

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

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

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

</project>
