<!--
* © 2016 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html#License
*******************************************************************************
* Copyright (C) 2009-2016, 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}"/>
<!-- set java 6 bootclasspath to empty if not set -->
<property name="java6.bootclasspath" value=""/>
<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"/>
</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"/>
</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>