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