blob: a34b4dbcf84717cab3b566ef20b747e48447dc42 [file] [log] [blame]
<!--
*******************************************************************************
* Copyright (C) 2009-2013, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
-->
<project name="tzu" default="build" basedir=".">
<property name="tzdata.ver" value="2012j"/>
<property name="tzu.jar.file" value="icutzu.jar"/>
<property name="tzu.src.zip.file" value="icutzu-src.zip"/>
<property name="tzu.bin.zip.file" value="icutzu-bin.zip"/>
<property name="icu.tzres.zip" value="icu-tzres.zip"/>
<property name="src.dir" value="src"/>
<property name="out.dir" value="out"/>
<property name="bin.dir" value="${out.dir}/bin"/>
<property name="jar.dir" value="${out.dir}/lib"/>
<property name="tzu.dist.dir" value="${out.dir}/dist"/>
<property name="tzu.dist.tmp.dir" value="${tzu.dist.dir}/tmp"/>
<property name="tzu.test.dir" value="${out.dir}/test"/>
<target name="build" depends="src-zip, bin-zip"/>
<target name="clean" description="Clean up the build outputs">
<delete dir="${out.dir}"/>
</target>
<target name="compile" description="Compile ICUTZU java files">
<mkdir dir="${bin.dir}"/>
<javac srcdir="${src.dir}"
destdir="${bin.dir}"
source="1.5"
target="1.5"
debug="on"
deprecation="off"
encoding="ascii"/>
</target>
<target name="jar" depends="compile" description="Create ICUTZU jar file">
<mkdir dir="${jar.dir}"/>
<jar jarfile="${jar.dir}/${tzu.jar.file}"
manifest="${basedir}/manifest.stub"
basedir="${bin.dir}"
compress="true"/>
</target>
<target name="src-zip" description="Create ICUTZU distributable source zip file">
<mkdir dir="${tzu.dist.dir}"/>
<zip zipfile="${tzu.dist.dir}/${tzu.src.zip.file}">
<fileset dir="${basedir}/src" includes="**/*.java"/>
</zip>
</target>
<target name="bin-zip" depends="jar" description="Create ICUTZU distributable binary zip file">
<mkdir dir="${tzu.dist.tmp.dir}/res"/>
<unzip src="icu-tzres.zip" dest="${tzu.dist.tmp.dir}/res"/>
<mkdir dir="${tzu.dist.dir}"/>
<zip zipfile="${tzu.dist.dir}/${tzu.bin.zip.file}">
<fileset dir="${jar.dir}">
<include name="${tzu.jar.file}"/>
</fileset>
<fileset dir="${basedir}">
<include name="runicutzu*.cmd"/>
<include name="runicutzu*.bat"/>
<include name="runicutzu*.sh"/>
<include name="icu.gif"/>
<include name="DirectorySearch.txt"/>
<include name="readme.html"/>
<include name="license.html"/>
<include name="icu.css"/>
<include name="icu4j-core.jar"/>
</fileset>
<fileset dir="${tzu.dist.tmp.dir}">
<include name="**/*"/>
</fileset>
</zip>
</target>
<target name="check" depends="jar" description="Check ICU4J TimeZone Update Utility">
<delete dir="${tzu.test.dir}"/>
<echo>Testing ICUTZU ...</echo>
<mkdir dir="${tzu.test.dir}/scandir"/>
<echo file="${tzu.test.dir}/DirectorySearch.txt">+scandir</echo>
<copy todir="${tzu.test.dir}" file="icu4j-core.jar"/>
<copy tofile="${tzu.test.dir}/scandir/target-icu4j.jar" file="icu4j-core.jar"/>
<mkdir dir="${tzu.test.dir}/res"/>
<unzip src="icu-tzres.zip" dest="${tzu.test.dir}/res"/>
<echo>Running ICUTZU in Discovery Mode ...</echo>
<java jar="${jar.dir}/${tzu.jar.file}" fork="true" dir="${tzu.test.dir}" failonerror="true">
<jvmarg value="-Dnogui=true"/>
<jvmarg value="-Ddiscoveronly=true"/>
<jvmarg value="-Dsilentpatch=false"/>
<jvmarg value="-Doffline=true"/>
<arg value="."/>
<arg value="DirectorySearch.txt"/>
<arg value="ICUList.txt"/>
<arg value="res"/>
<arg value="backup_dir"/>
<arg value="icu.gif"/>
<classpath location="icu4j-core.jar"/>
</java>
<echo>Running ICUTZU in Patch Mode ...</echo>
<java jar="${jar.dir}/${tzu.jar.file}" fork="true" dir="${tzu.test.dir}" failonerror="true">
<jvmarg value="-Dnogui=true"/>
<jvmarg value="-Ddiscoveronly=false"/>
<jvmarg value="-Dsilentpatch=false"/>
<jvmarg value="-Doffline=true"/>
<arg value="."/>
<arg value="DirectorySearch.txt"/>
<arg value="ICUList.txt"/>
<arg value="res"/>
<arg value="backup_dir"/>
<arg value="icu.gif"/>
<classpath location="icu4j-core.jar"/>
</java>
<echo>Comparing results ...</echo>
<unjar src="${tzu.test.dir}/scandir/target-icu4j.jar" dest="${tzu.test.dir}/scandir">
<patternset>
<include name="com/ibm/icu/impl/data/*/zoneinfo64.res" />
<include name="com/ibm/icu/impl/data/*/metaZones.res" />
<include name="com/ibm/icu/impl/data/*/timezoneTypes.res" />
<include name="com/ibm/icu/impl/data/*/windowsZones.res" />
</patternset>
<mapper type="flatten"/>
</unjar>
<condition property="tzu.zoneinfo64.match">
<filesmatch file1="${tzu.test.dir}/res/44/be/zoneinfo64.res" file2="${tzu.test.dir}/scandir/zoneinfo64.res" />
</condition>
<fail unless="tzu.zoneinfo64.match"
message="ICUTZU test failed. ${tzu.test.dir}/res/44/be/zoneinfo64.res does not match ${tzu.test.dir}/scandir/zoneinfo64.res"/>
<condition property="tzu.metazones.match">
<filesmatch file1="${tzu.test.dir}/res/44/be/metaZones.res" file2="${tzu.test.dir}/scandir/metaZones.res" />
</condition>
<fail unless="tzu.metazones.match"
message="ICUTZU test failed. ${tzu.bin.dir}/res/44/be/metaZones.res does not match ${tzu.test.dir}/scandir/metaZones.res"/>
<condition property="tzu.timezonetypes.match">
<filesmatch file1="${tzu.test.dir}/res/44/be/timezoneTypes.res" file2="${tzu.test.dir}/scandir/timezoneTypes.res" />
</condition>
<fail unless="tzu.timezonetypes.match"
message="ICUTZU test failed. ${tzu.bin.dir}/res/44/be/timezoneTypes.res does not match ${tzu.test.dir}/scandir/timezoneTypes.res"/>
<condition property="tzu.windowszones.match">
<filesmatch file1="${tzu.test.dir}/res/44/be/windowsZones.res" file2="${tzu.test.dir}/scandir/windowsZones.res" />
</condition>
<fail unless="tzu.windowszones.match"
message="ICUTZU test failed. ${tzu.bin.dir}/res/44/be/windowsZones.res does not match ${tzu.test.dir}/scandir/windowsZones.res"/>
<echo>ICUTZU test successful.</echo>
</target>
<target name="createIcuTzRes">
<zip destfile="${icu.tzres.zip}">
<fileset dir="../icunew/${tzdata.ver}" includes="**/be/*.res"/>
</zip>
</target>
</project>