<!-- /* ******************************************************************************* * Copyright (C) 1997-2001, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* * * $Source: /xsrl/Nsvn/icu/icu4j/build.xml,v $ * $Date: 2002/12/13 00:19:40 $ * $Revision: 1.62 $ * ******************************************************************************* * This is the ant build file for ICU4J. See readme.html for more information. */ --> <project name="ICU4J" default="core" basedir="."> <!-- ### begin clover setup ### --> <property name="icu4j.tempdir" value="tmp"/> <property name="clover.initstring" value="${icu4j.tempdir}/icu4j.db"/> <path id="clover.classpath"> <!-- ***** you will need to change the paths below to point to clover.jar and velocity.jar on your filesystem ***** --> <pathelement path="${java.class.path}/"/> <pathelement location="clover.jar"/> <pathelement location="velocity.jar"/> </path> <!-- target to switch Clover on --> <target name="with.clover"> <property name="build.compiler" value="org.apache.tools.ant.taskdefs.CloverCompilerAdapter"/> <!-- instruct clover to use a class-based instrumentation strategy when instrumenting SimpleTimeZone.java --> <property name="clover.useclass.includes" value="**/SimpleTimeZone.java"/> </target> <!-- target to generate a Clover html report --> <target name="clover.report"> <java classname="com.cortexeb.tools.clover.reporters.html.HtmlReporter" fork="yes"> <arg line="--outputdir ${icu4j.tempdir}/icu4j_html --showSrc --initstring ${clover.initstring} --title 'icu4j core'"/> <classpath refid="clover.classpath"/> </java> </target> <!-- ### end clover setup ### --> <target name="anthack1"> <!-- It's a real pain to set properties conditionally. Ant 1.5 isn't really any better than 1.4, in fact 1.5 enforces that properties are write-once so you can't even set a default and then override it, which we used to do for Ant 1.4. --> <condition property="version.1.4"> <or> <equals arg1="${ant.java.version}" arg2="1.4"/> </or> </condition> <condition property="doc.params" value="-breakiterator -use -tagletpath ./classes -taglet com.ibm.icu.dev.tool.docs.ICUTaglet -group 'ICU Core' 'com.ibm.icu.lang*:com.ibm.icu.math*:com.ibm.icu.text*:com.ibm.icu.util*' -group 'ICU Tools' 'com.ibm.icu.dev*' -group 'Rich Text Editing' 'com.ibm.richtext*'"> <equals arg1="${version.1.4}" arg2="true"/> </condition> </target> <target name="anthack2" unless="doc.params"> <property name="doc.params" value=""/> </target> <target name="init"> <tstamp/> <property name="src.dir" value="src"/> <property name="build.dir" value="classes"/> <property name="doc.dir" value="doc"/> <property name="jar.file" value="icu4j.jar"/> <property name="icu4j.manifest" value="${src.dir}/com/ibm/icu/manifest.stub"/> <property name="zip.file" value="../icu4j${DSTAMP}.zip"/> <property name="zipSrc.file" value="../icu4jSrc${DSTAMP}.zip"/> <path id="build.classpath"> <pathelement path="${build.dir}"/> <path refid="clover.classpath"/> </path> <property name="richedit.dir" value="richedit"/> <property name="richedit.doc.dir" value="${richedit.dir}/doc"/> <property name="richedit.jar.file" value="${richedit.dir}/richedit.jar"/> <property name="richedit.zip.file" value="${richedit.dir}/richedit.zip"/> <property name="richedit.manifest" value="${src.dir}/com/ibm/richtext/manifest.stub"/> <mkdir dir="${build.dir}"/> <uptodate property="icu4j.resources" targetfile="${src.dir}/com/ibm/icu/impl/data/ICULocaleData.jar"> <!-- note must not have '/' before 'com' in srcfiles includes arg! --> <srcfiles dir="${build.dir}" includes="com/ibm/icu/impl/data/LocaleElements_index.class"/> </uptodate> <echo message="java home: ${java.home}"/> <echo message="java version: ${java.version}"/> <echo message="ant java version: ${ant.java.version}"/> <echo message="${ant.version}"/> </target> <!-- build everything but dist-related stuff --> <target name="all" depends="core,tests,tools,richedit,demos,jar,docs"/> <target name="resources" depends="init"> <!-- use this target to force resources to be rebuilt --> <unjar src="${src.dir}/com/ibm/icu/impl/data/ICULocaleData.jar" dest="${build.dir}"/> <touch file="${build.dir}/com/ibm/icu/impl/data/LocaleElements_index.class"/> </target> <target name="_resources" depends="init" if="icu4j.resources"> <!-- use this target to conditionally build resources only if icu4j.resources is set --> <unjar src="${src.dir}/com/ibm/icu/impl/data/ICULocaleData.jar" dest="${build.dir}"/> <touch file="${build.dir}/com/ibm/icu/impl/data/LocaleElements_index.class"/> </target> <!-- core does not build richedit or tests --> <target name="core" depends="init,coreData,_resources"> <copy file="${src.dir}/com/ibm/icu/impl/data/thai_dict" todir="${build.dir}/com/ibm/icu/impl/data/"/><!-- only needed if you are using html reporter --> <javac includes="com/ibm/icu/util/**/*.java,com/ibm/icu/text/**/*.java,com/ibm/icu/math/**/*.java,com/ibm/icu/impl/**/*.java,com/ibm/icu/lang/*.java" excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" debug="on" deprecation="off"/> </target> <target name="tests" depends="core,testData"> <javac includes="com/ibm/icu/dev/test/**/*.java" excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" debug="on" deprecation="off"/> </target> <target name="demos" depends="core,testData"> <javac includes="com/ibm/icu/dev/demo/**/*.java" excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" debug="on" deprecation="off"/> </target> <target name="one4tools" depends="anthack1,anthack2" if="version.1.4"> <javac includes="com/ibm/icu/dev/tool/docs/*.java" excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" debug="on" deprecation="off"/> </target> <target name="tools" depends="core,one4tools"> <javac includes="com/ibm/icu/dev/tool/**/*.java" excludes="com/ibm/icu/dev/tool/docs/*,**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" debug="on" deprecation="off"/> </target> <!-- use excludefiles below when we move to ant 1.5 --> <target name="docs" depends="anthack1,anthack2,tools"> <echo message="doc params: ${doc.params}"/> <mkdir dir="${doc.dir}"/> <javadoc packagenames="com.ibm.icu.lang,com.ibm.icu.text,com.ibm.icu.util,com.ibm.icu.math,com.ibm.richtext.demo,com.ibm.richtext.textlayout.attributes,com.ibm.richtext.awtui,com.ibm.richtext.print,com.ibm.richtext.styledtext,com.ibm.richtext.swingui,com.ibm.richtext.textformat,com.ibm.richtext.textpanel" sourcepath="${src.dir}" destdir="${doc.dir}" nodeprecatedlist="true" windowtitle="icu4j" doctitle="icu4j" encoding="iso-8859-1" docencoding="iso-8859-1" bottom="<font size=-1>Copyright (c) 2002 IBM Corporation and others.</font>" additionalparam="${doc.params}" /> </target> <target name ="coreData" depends="init"> <copy todir="${build.dir}/com/ibm/icu/impl/data"> <fileset dir="${src.dir}/com/ibm/icu/impl/data" includes="Transliterator_*.txt,*.icu"/> </copy> </target> <target name ="testData" depends="init"> <copy file="${src.dir}/com/ibm/icu/dev/data/rbbi/english.dict" todir="${build.dir}/com/ibm/icu/dev/data/rbbi"/> <javac includes="com/ibm/icu/dev/data/*.java" excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" debug="on" deprecation="off"/> </target> <!-- builds richedit and richedit tests --> <target name="richedit" depends="init"> <javac includes="com/ibm/richtext/**/*.java" excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" debug="on" deprecation="off"/> <copy todir="${build.dir}/com/ibm/richtext/textapps/resources" overwrite="yes" includeEmptyDirs="no"> <fileset dir="${src.dir}/com/ibm/richtext/textapps/resources" includes="*.red"/> </copy> </target> <target name="jar" depends="core"> <jar jarfile="${jar.file}" compress="false" includes="com/ibm/icu/util/**/*,com/ibm/icu/text/**/*,com/ibm/icu/math/**/*,com/ibm/icu/impl/**/*,com/ibm/icu/lang/**/*" basedir="${build.dir}" manifest="${icu4j.manifest}"/> </target> <!-- jars up richedit but without tests --> <target name="richeditJar" depends="richedit"> <mkdir dir="${richedit.dir}"/> <jar jarfile="${richedit.jar.file}" compress="false" includes="com/ibm/richtext/**/*" excludes="com/ibm/richtext/test/**/*" basedir="${build.dir}" manifest="${richedit.manifest}"/> </target> <!-- Note: I used to use -linkoffline http://java.sun.com/products/jdk/1.2/docs/api/ C:\jdk1.2.2\docs\api This links to core docs on Sun's site - a very nice feature. But it requires the 1.2 docs to be on the build machine at a known location. --> <!-- the 'public' docs for richedit --> <target name="richeditDocs" depends="init"> <mkdir dir="${richedit.doc.dir}"/> <javadoc packagenames="com.ibm.richtext.demo,com.ibm.richtext.awtui,com.ibm.richtext.swingui,com.ibm.richtext.textpanel,com.ibm.richtext.styledtext,com.ibm.richtext.textlayout.attributes,com.ibm.richtext.print" sourcepath="${src.dir}" destdir="${richedit.doc.dir}" nodeprecatedlist="true" windowtitle="RichEdit Control" doctitle="RichEdit Control" encoding="iso-8859-1" docencoding="iso-8859-1" bottom="<font size=-1>Copyright (c) 1998-2002 IBM Corporation and others.</font>" /> </target> <!-- richedit alphaworks distribution - jar and docs, but no source --> <target name="richeditZip" depends="richeditJar,richeditDocs"> <!--Create a zip archive of the richedit jar and readme --> <copy file="license.html" todir="${richedit.dir}"/> <zip zipfile="${richedit.zip.file}" basedir="${richedit.dir}" includes="doc/**/*,richedit.jar,license.html"/> </target> <target name="zip" depends="docs,jar"> <!--Create a zip archive of the source, docs, and jar file for distribution. The zip file will be created in the directory above the root ICU4J directory. The exclude pattern ${src.dir}/com/ibm/icu/dev/data/unicode/UnicodeData-*.txt and ${src.dir}/data/unicode/SpecialCasing-*.txt eliminates old archive copies like SpecialCasing-2.txt and UnicodeData-2.1.8.txt etc --> <zip zipfile="${zip.file}" basedir="." excludes="${richedit.dir}/**/*,test_*,${src.dir}/com/ibm/icu/dev/data/unicode/UnicodeData-*.txt,${src.dir}/com/ibm/icu/dev/data/unicode/SpecialCasing-*.txt,${src.dir}/com/ibm/icu/dev/data/unicode/CompositionExclusions-*.txt,${obsolete.dir}/**,**/*~,${src.dir}/**/*.class,${build.dir}/**,**/CVS/**/*"/> </target> <target name="zipSrc" depends="init"> <!--Create a zip archive of just the source for distribution. The zip file will be created in the directory above the root ICU4J directory. The exclude pattern ${src.dir}/com/ibm/icu/dev/data/unicode/UnicodeData-*.txt and ${src.dir}/com/ibm/icu/dev/data/unicode/SpecialCasing-*.txt eliminates old archive copies like SpecialCasing-2.txt and UnicodeData-2.1.8.txt --> <zip zipfile="${zipSrc.file}" basedir="." excludes="${richedit.dir}/**/*,test_*,${src.dir}/com/ibm/icu/dev/data/unicode//UnicodeData-*.txt,${src.dir}/com/ibm/icu/dev/data/unicode/SpecialCasing-*.txt,${src.dir}/com/ibm/icu/dev/data/unicode/CompositionExclusions-*.txt,${obsolete.dir}/**,**/*~,${src.dir}/**/*.class,${build.dir}/**,**/CVS/**/*,${doc.dir}/**,${jar.file}"/> </target> <target name="check" depends="tests"> <java classname="com.ibm.icu.dev.test.TestAll"> <classpath> <pathelement path="${java.class.path}/"/> <pathelement path="${build.dir}"/> </classpath> </java> </target> <target name="_requires14" unless="version.1.4"> <echo message="One of your targets requires JAVA_HOME to be set to JDK version 1.4"/> </target> <target name="_checktags" depends="anthack1,anthack2,tools" if="version.1.4"> <echo message="doc params: ${doc.params}"/> <javadoc sourcepath="${src.dir}" packagenames="com.ibm.icu.*" excludepackagenames="com.ibm.icu.dev.*,com.ibm.icu.impl.*" classpath="${build.dir}"> <doclet name="com.ibm.icu.dev.tool.docs.CheckTags" path="${build.dir}"> <param name="-brief"/> </doclet> </javadoc> </target> <target name="checktags" depends="anthack1,anthack2,_requires14,_checktags"/> <target name="clean" depends="init"> <delete dir="${build.dir}"/> <delete dir="${doc.dir}"/> <delete file="${jar.file}"/> <delete dir="${richedit.dir}"/> </target> </project>