]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_2_1-src/build.xml
go
[Dictionary.git] / jars / icu4j-4_2_1-src / build.xml
1 <!--\r
2 /*\r
3 *******************************************************************************\r
4 * Copyright (C) 1997-2009, International Business Machines Corporation and    *\r
5 * others. All Rights Reserved.                                                *\r
6 *******************************************************************************\r
7 * This is the ant build file for ICU4J.  See readme.html for more information.\r
8 */\r
9 -->\r
10 \r
11 <project name="icu4j" default="core" basedir=".">\r
12 \r
13   <!-- ### Begin Clover 2.x setup ### -->\r
14   <taskdef resource="cloverlib.xml" onerror="ignore" />\r
15 \r
16   <target name="with.clover">\r
17     <mkdir dir="tmp/" />\r
18     <clover-setup initString="tmp/icu4j.db">\r
19       <files>\r
20         <exclude name="**/dev/**/*.java" />\r
21       </files>\r
22       <methodContext name="API" regexp="(.* )?public .*" />\r
23     </clover-setup>\r
24   </target>\r
25 \r
26   <target name="clover.summary" depends="with.clover">\r
27     <clover-report>\r
28       <current outfile="icu4j_html" summary="true">\r
29         <format type="html" srcLevel="false" />\r
30       </current>\r
31     </clover-report>\r
32   </target>\r
33   <target name="clover.report" depends="with.clover">\r
34     <clover-report>\r
35       <current outfile="icu4j_html">\r
36         <format type="html" />\r
37       </current>\r
38     </clover-report>\r
39   </target>\r
40   <target name="clover.log" depends="with.clover">\r
41     <clover-log level="method" filter="private">\r
42       <package name="com.ibm.icu.text" />\r
43       <package name="com.ibm.icu.lang" />\r
44       <package name="com.ibm.icu.math" />\r
45       <package name="com.ibm.icu.util" />\r
46       <package name="com.ibm.icu.charset" />\r
47     </clover-log>\r
48   </target>\r
49 \r
50   <!-- ### End Clover 2.x setup ### -->\r
51 \r
52   <target name="checkAntVersion">\r
53     <condition property="supported.ant.version">\r
54       <or>\r
55         <contains string="${ant.version}" substring="1.6." />\r
56         <contains string="${ant.version}" substring="1.7." />\r
57         <contains string="${ant.version}" substring="1.8." /> <!-- just in case -->\r
58       </or>\r
59     </condition>\r
60     <antcall target="warnAntVersion" />\r
61   </target>\r
62 \r
63   <target name="warnAntVersion" unless="supported.ant.version">\r
64     <echo message="####################### WARNING #######################" />\r
65     <echo message="The version of ant used by the current configuration" />\r
66     <echo message="may not work well with this build script file.  Please" />\r
67     <echo message="use ant 1.6 or later version." />\r
68     <echo message="#######################################################" />\r
69   </target>\r
70 \r
71   <target name="init" depends="initBase,initSrc"/>\r
72 \r
73   <target name="initBase"\r
74           depends="checkAntVersion"\r
75           description="Initialized ICU4J build environment">\r
76     <tstamp />\r
77     <property name="src.dir" value="src" />\r
78     <property name="build.dir" value="classes" />\r
79     <property name="api.dir" value="${src.dir}/com/ibm/icu/dev/tool/docs" />\r
80     <property name="doc.dir" value="doc" />\r
81     <property name="icudatajar.file" value="${src.dir}/com/ibm/icu/impl/data/icudata.jar" />\r
82     <property name="testjar.file" value="icu4jtests.jar" />\r
83     <property name="jar.file" value="icu4j.jar" />\r
84     <property name="demos-jar.file" value="icu4jdemos.jar" />\r
85     <property name="charsets.jar.file" value="icu4j-charsets.jar" />\r
86     <property name="jarSrc.file" value="icu4jsrc.jar" />\r
87     <property name="zipTestSrc.file" value="icu4jtsrc.zip" />\r
88     <property name="jdk.wrapper.jar.file" value="icu4jwrapper.jar" />\r
89     <property name="fragment.jar.file" value="icu4jfragment.jar" />\r
90     <property name="eclipse.dir" value="${src.dir}/com/ibm/icu/dev/eclipse" />\r
91     <property name="eclipse.projects.dir" value="eclipseProjects" />\r
92     <property name="wrapper.build.dir" value="classes.wrapper" />\r
93     <property name="jarDocs.file" value="icu4jdocs.jar" />\r
94     <property name="ime.translit.jar.file" value="icutransime.jar" />\r
95     <property name="ime.indic.jar.file" value="icuindicime.jar" />\r
96     <property name="ime.translit.manifest" value="${src.dir}/com/ibm/icu/dev/tool/ime/translit/manifest.stub" />\r
97     <property name="ime.indic.manifest" value="${src.dir}/com/ibm/icu/dev/tool/ime/indic/manifest.stub" />\r
98     <property name="zip.file" value="../icu4j${DSTAMP}.zip" />\r
99     <property name="zipSrc.file" value="../icu4jSrc${DSTAMP}.zip" />\r
100     <property name="tzu.src.path" value="com/ibm/icu/dev/tool/tzu" />\r
101     <property name="tzu.bin.dir" value="${basedir}/icu4jtzu" />\r
102     <property name="tzu.jar.file" value="icutzu.jar" />\r
103     <property name="tzu.test.dir" value="${basedir}/icu4jtzu/test" />\r
104     <property name="tzu.temp.dir" value="${basedir}/icu4jtzu/Temp" />\r
105     <property name="tzu.src.zip.file" value="icutzu-src.zip" />\r
106     <property name="tzu.bin.zip.file" value="icutzu-bin.zip" />\r
107     <property file="build.properties" />\r
108     <!-- fix the data folder every time there is a version update-->\r
109 \r
110     <property name="icu4j.data.path" value="com/ibm/icu/impl/data/icudt${icu4j.data.version.number}b" />\r
111     <property name="icu4j.testdata.path" value="com/ibm/icu/dev/data/testdata" />\r
112     <property name="icu4j.javac.source" value="1.3" />\r
113     <property name="icu4j.javac.target" value="1.3" />\r
114 \r
115     <path id="build.classpath">\r
116       <pathelement path="${build.dir}" />\r
117     </path>\r
118 \r
119     <property name="richedit.dir" value="richedit" />\r
120     <property name="richedit.doc.dir" value="${richedit.dir}/doc" />\r
121     <property name="richedit.jar.file" value="${richedit.dir}/richedit.jar" />\r
122     <property name="richedit.zip.file" value="${richedit.dir}/richedit.zip" />\r
123     <property name="richedit.manifest" value="${src.dir}/com/ibm/richtext/manifest.stub" />\r
124 \r
125     <!-- Load environment variables -->\r
126     <property environment="env" />\r
127 \r
128     <!-- Capture the computer name in a cross-platform manner -->\r
129     <property name="env.COMPUTERNAME" value="${env.HOSTNAME}" />\r
130 \r
131     <!-- JavaDoc params -->\r
132     <property name="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*:com.ibm.icu.charset' -group 'ICU Tests' 'com.ibm.icu.dev.test*' -group 'Demos' 'com.ibm.icu.dev.demo*' -group 'ICU Tools' 'com.ibm.icu.dev*'" />\r
133     <property name="richeditdoc.params" value="-breakiterator -use -tagletpath ./classes -taglet com.ibm.icu.dev.tool.docs.ICUTaglet -group 'Rich Text Editing' 'com.ibm.richtext*'" />\r
134 \r
135     <mkdir dir="${build.dir}" />\r
136 \r
137     <echo message="java home: ${java.home}" />\r
138     <echo message="java version: ${java.version}" />\r
139     <echo message="ant java version: ${ant.java.version}" />\r
140     <echo message="${ant.version}" />\r
141     <echo message="${env.COMPUTERNAME} with ${os.name} ${os.version} on ${os.arch}" />\r
142     <echo message="clover initstring = '${clover.initstring}'" />\r
143 \r
144     <!-- ## Java version dependent build configuration ##-->\r
145  \r
146     <!-- JRE lib version used for building ICU4J -->\r
147     <condition property="target.rt.version" value="J2SE13">\r
148       <contains string="${java.version}" substring="1.3." />\r
149     </condition>\r
150     <condition property="target.rt.version" value="J2SE14">\r
151       <contains string="${java.version}" substring="1.4." />\r
152     </condition>\r
153     <condition property="target.rt.version" value="J2SE15">\r
154       <contains string="${java.version}" substring="1.5." />\r
155     </condition>\r
156     <condition property="target.rt.version" value="JAVASE6">\r
157       <contains string="${java.version}" substring="1.6." />\r
158     </condition>\r
159     <condition property="target.rt.version" value="JAVASE7">\r
160       <contains string="${java.version}" substring="1.7." />\r
161     </condition>\r
162 \r
163     <fail message="Failed to detect Java runtime library version used for building ICU4J"\r
164           unless="target.rt.version" />\r
165     <echo message="target runtime environment: ${target.rt.version}" />\r
166 \r
167     <condition property="default.java.build.target">\r
168       <equals arg1="${target.rt.version}" arg2="${default.target.rt.version}" />\r
169     </condition>\r
170 \r
171     <!-- Specification title in manifest file -->\r
172     <condition property="manifest.specification.title" value="ICU4J Compatible Build for ${target.rt.version}">\r
173       <not>\r
174         <isset property="default.java.build.target" />\r
175       </not>\r
176     </condition>\r
177     <property name="manifest.specification.title" value="ICU4J" />\r
178 \r
179     <condition property="before.java14">\r
180       <or>\r
181         <equals arg1="${target.rt.version}" arg2="FOUNDATION10"/>\r
182         <equals arg1="${target.rt.version}" arg2="J2SE13"/>\r
183       </or>\r
184     </condition>\r
185 \r
186     <condition property="before.java15">\r
187       <or>\r
188         <equals arg1="${target.rt.version}" arg2="FOUNDATION10"/>\r
189         <equals arg1="${target.rt.version}" arg2="J2SE13"/>\r
190         <equals arg1="${target.rt.version}" arg2="J2SE14"/>\r
191       </or>\r
192     </condition>\r
193 \r
194     <!-- JVM arguments for running test cases -->\r
195     <condition property="test.jvm.args" value="-Xms224m -Xmx256m">\r
196         <isset property="before.java14" />\r
197     </condition>\r
198     <condition property="test.jvm.args" value="-ea -Xms224m -Xmx256m -Xdisableexcessivegc">\r
199       <and>\r
200         <not>\r
201           <isset property="before.java15" />\r
202         </not>\r
203         <equals arg1="${java.vm.vendor}" arg2="IBM Corporation"/>\r
204       </and>\r
205     </condition>\r
206     <condition property="test.jvm.args" value="-ea -Xms224m -Xmx256m -Djava.awt.headless=true">\r
207       <and>\r
208         <equals arg1="${os.name}" arg2="Mac OS X"/>\r
209       </and>\r
210     </condition>\r
211     <condition property="test.jvm.args" value="-ea -Xms224m -Xmx256m">\r
212       <not>\r
213         <isset property="test.jvm.args" />\r
214       </not>\r
215     </condition>\r
216 \r
217     <uptodate property="icu4j.resources" targetfile="${src.dir}/com/ibm/icu/impl/data">\r
218       <!-- note must not have '/' before 'com' in srcfiles includes arg! -->\r
219       <srcfiles dir="${build.dir}" includes="${icu4j.data.path}/res_index.res" />\r
220     </uptodate>\r
221 \r
222     <uptodate property="icu4j.testdata.resources" targetfile="${src.dir}/com/ibm/icu/dev/data">\r
223       <!-- note must not have '/' before 'com' in srcfiles includes arg! -->\r
224       <srcfiles dir="${build.dir}" includes="${icu4j.testdatadata.path}/root.res" />\r
225     </uptodate>\r
226 \r
227     <uptodate property="icu4j.module.resources" targetfile="${icudatajar.file}">\r
228       <srcfiles dir="${build.dir}" includes="${icu4j.data.path}/*.icu" />\r
229     </uptodate>\r
230     <!-- <echo message="icu4j.module.resources result: ${icu4j.module.resources}" /> -->\r
231     <tstamp>\r
232       <format property="date.time" pattern="yyyy-MM-dd 'at' hh:mm:ss z" locale="en,US" />\r
233     </tstamp>\r
234 \r
235     <echo message="Initialized at ${date.time}" />\r
236   </target>\r
237 \r
238   <target name="displayBuildEnvWarning" unless="default.java.build.target">\r
239     <echo message="####################### WARNING #######################" />\r
240     <echo message="The JDK version used by the current build environment" />\r
241     <echo message="does not match the reference JDK version for this" />\r
242     <echo message="ICU4J release.  The build outputs may not be identical" />\r
243     <echo message="to the official ICU4J binary distribution." />\r
244     <echo message="#######################################################" />\r
245   </target>\r
246 \r
247   <target name="initSrc"\r
248           depends="buildMangle"\r
249           description="Run the preprocessor tool to modify Java sources for the Java runtime lib currently used.">\r
250     <antcall target="displayBuildEnvWarning" />\r
251     <!-- Build CodeMangler -->\r
252     <javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" source="${icu4j.javac.source}" target="${icu4j.javac.target}">\r
253       <include name="com/ibm/icu/dev/tool/docs/CodeMangler.java" />\r
254     </javac>\r
255     <!-- Run CodeMangler -->\r
256     <condition property="mangler.cmd.args" value="-d${default.target.rt.version} -n @preprocessor.txt">\r
257       <equals arg1="${default.target.rt.version}" arg2="${target.rt.version}"/>\r
258     </condition>\r
259 \r
260     <property name="mangler.cmd.args" value="-d${target.rt.version} @preprocessor.txt"/>\r
261 \r
262     <antcall target="doMangle">\r
263       <param name="mangler.args" value="${mangler.cmd.args}"/>\r
264     </antcall>\r
265   </target>\r
266 \r
267   <target name="normSrc"\r
268           depends="buildMangle"\r
269           description="Run the preprocessor to normalize Java sources to the ICU source repository target JDK version">\r
270     <antcall target="doMangle">\r
271       <param name="mangler.args" value="-d${default.target.rt.version} -n -f @preprocessor.txt"/>\r
272     </antcall>\r
273   </target>\r
274 \r
275   <target name="buildMangle" depends="initBase">\r
276     <javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" source="${icu4j.javac.source}" target="${icu4j.javac.target}">\r
277       <include name="com/ibm/icu/dev/tool/docs/CodeMangler.java" />\r
278     </javac>\r
279   </target>\r
280 \r
281   <target name="doMangle" unless="dontMangle">\r
282     <echo message="Running source code preprocessor [java com.ibm.icu.dev.tool.docs.CodeMangler ${mangler.args}]"/>\r
283     <java classname="com.ibm.icu.dev.tool.docs.CodeMangler" classpath="${build.dir}" logError="true" fork="true" dir="${basedir}">\r
284       <arg line="${mangler.args}"/>\r
285     </java>\r
286   </target>\r
287 \r
288   <!-- build everything but dist-related stuff -->\r
289   <target name="all" depends="core,tests,tools,richedit,demos,jar,docs" description="build all primary targets" />\r
290 \r
291   <target name="resources" depends="icudata,coreData,durationdata,testdata" description="builds all the resources" />\r
292 \r
293   <target name="icudata" depends="initBase" if="icu4j.resources">\r
294     <!-- use this target to force resources to be rebuilt -->\r
295     <unjar src="${icudatajar.file}" dest="${build.dir}" />\r
296     <touch file="${build.dir}/${icu4j.data.path}/res_index.res" />\r
297     <copy todir="${build.dir}/META-INF">\r
298       <fileset dir="${src.dir}/META-INF" includes="**/*" />\r
299     </copy>\r
300   </target>\r
301 \r
302   <target name="durationdata" depends="initBase">\r
303     <copy todir="${build.dir}/com/ibm/icu/impl/duration/impl/data">\r
304       <fileset dir="${src.dir}/com/ibm/icu/impl/duration/impl/data" includes="index.txt, pfd*.xml"/>\r
305     </copy>\r
306   </target>\r
307 \r
308   <!--\r
309     use this target to conditionally build resources only if icu4j.resources is set\r
310     <target name="icu" depends="init" if="icu4j.resources">\r
311         <unjar src="${src.dir}/com/ibm/icu/impl/data/ICULocaleData.jar" dest="${build.dir}"/>\r
312         <touch file="${build.dir}/com/ibm/icu/impl/data/LocaleElements_index.class"/>\r
313     </target>\r
314  -->\r
315 \r
316   <!-- core does not build richedit or tests -->\r
317   <target name="core" depends="init,coreData,icudata,durationdata" description="build core classes and data">\r
318     <javac  sourcepath=""\r
319             srcdir="${src.dir}"\r
320             destdir="${build.dir}"\r
321             classpathref="build.classpath"\r
322             source="${icu4j.javac.source}"\r
323             target="${icu4j.javac.target}"\r
324             debug="on"\r
325             deprecation="off"\r
326             encoding="ascii">\r
327       <include name="com/ibm/icu/charset/**/*.java" unless="before.java14" />\r
328       <include name="com/ibm/icu/impl/**/*.java" />\r
329       <include name="com/ibm/icu/lang/**/*.java" />\r
330       <include name="com/ibm/icu/math/**/*.java" />\r
331       <include name="com/ibm/icu/text/**/*.java" />\r
332       <include name="com/ibm/icu/util/**/*.java" />\r
333     </javac>\r
334   </target>\r
335 \r
336   <target name="tests" depends="core,testdata" description="build tests">\r
337     <javac  srcdir="${src.dir}"\r
338             destdir="${build.dir}"\r
339             classpathref="build.classpath"\r
340             source="${icu4j.javac.source}"\r
341             target="${icu4j.javac.target}"\r
342             debug="on"\r
343             deprecation="off">\r
344       <exclude name="com/ibm/icu/dev/test/charset/**/*.java" if="before.java14" />\r
345       <exclude name="com/ibm/icu/dev/test/perf/**/*.java" if="before.java14" />\r
346       <include name="com/ibm/icu/dev/test/**/*.java" />\r
347     </javac>\r
348 \r
349   </target>\r
350 \r
351   <target name="demos" depends="core,testdata" unless="before.java14" description="build demos">\r
352     <javac  srcdir="${src.dir}"\r
353             destdir="${build.dir}"\r
354             classpathref="build.classpath"\r
355             source="${icu4j.javac.source}"\r
356             target="${icu4j.javac.target}"\r
357             debug="on"\r
358             deprecation="off">\r
359       <include name="com/ibm/icu/dev/demo/**/*.java" />\r
360       <include name="com/ibm/icu/dev/demo/*.java" />\r
361     </javac>\r
362   </target>\r
363 \r
364   <target name="indices" depends="icudata,build_indexgenerator">\r
365     <java classname="com.ibm.icu.dev.tool.index.IndexGenerator" classpath="${build.dir}" logError="true">\r
366       <arg value="${build.dir}/${icu4j.data.path}" />\r
367     </java>\r
368     <java classname="com.ibm.icu.dev.tool.index.IndexGenerator" classpath="${build.dir}" logError="true">\r
369       <arg value="${build.dir}/${icu4j.data.path}/rbnf" />\r
370     </java>\r
371     <java classname="com.ibm.icu.dev.tool.index.IndexGenerator" classpath="${build.dir}" logError="true">\r
372       <arg value="${build.dir}/${icu4j.data.path}/coll" />\r
373     </java>\r
374     <java classname="com.ibm.icu.dev.tool.index.IndexGenerator" classpath="${build.dir}" logError="true">\r
375       <arg value="${build.dir}/${icu4j.data.path}/translit" />\r
376     </java>\r
377   </target>\r
378 \r
379   <target name="collIndices" depends="build_indexgenerator">\r
380     <java classname="com.ibm.icu.dev.tool.index.IndexGenerator" classpath="${build.dir}" logError="true">\r
381       <arg value="${build.dir}/${icu4j.data.path}/coll" />\r
382     </java>\r
383   </target>\r
384 \r
385   <target name="tools"\r
386           depends="core"\r
387           unless="before.java14"\r
388           description="build tools">\r
389     <javac  srcdir="${src.dir}"\r
390             destdir="${build.dir}"\r
391             classpathref="build.classpath"\r
392             source="${icu4j.javac.source}"\r
393             target="${icu4j.javac.target}"\r
394             debug="on"\r
395             deprecation="off">\r
396       <exclude name="com/ibm/icu/dev/tool/cldr/*" />\r
397       <exclude name="com/ibm/icu/dev/tool/localeconverter/*" if="before.java15" />\r
398       <include name="com/ibm/icu/dev/tool/**/*.java" />\r
399     </javac>\r
400   </target>\r
401 \r
402   <target name="build_indexgenerator" depends="initBase">\r
403     <javac  srcdir="${src.dir}"\r
404             destdir="${build.dir}"\r
405             classpathref="build.classpath"\r
406             source="${icu4j.javac.source}"\r
407             target="${icu4j.javac.target}"\r
408             debug="on"\r
409             deprecation="off">\r
410       <include name="com/ibm/icu/dev/tool/index/IndexGenerator.java" />\r
411     </javac>\r
412   </target>\r
413 \r
414   <target name="docs" depends="init,docs13,docs14plus" description="build user javadoc" />\r
415 \r
416   <target name="docs13" if="before.java14">\r
417     <mkdir dir="${doc.dir}" />\r
418     <javadoc  packagenames="com.ibm.icu.lang,com.ibm.icu.text,com.ibm.icu.util,com.ibm.icu.math"\r
419               sourcepath="${src.dir}"\r
420               destdir="${doc.dir}"\r
421               nodeprecatedlist="true"\r
422               windowtitle="icu4j"\r
423               doctitle="icu4j"\r
424               encoding="iso-8859-1"\r
425               docencoding="iso-8859-1"\r
426               bottom="&lt;font size=-1>Copyright (c) ${current.year} IBM Corporation and others.&lt;/font>"\r
427               link="http://java.sun.com/j2se/1.3/docs/api"\r
428               source="1.4" />\r
429   </target>\r
430 \r
431   <target name="docs14plus" depends="tools" unless="before.java14">\r
432     <echo message="doc params: ${doc.params}" />\r
433     <mkdir dir="${doc.dir}" />\r
434     <javadoc  packagenames="com.ibm.icu.lang,com.ibm.icu.text,com.ibm.icu.util,com.ibm.icu.charset,com.ibm.icu.math,com.ibm.icu.dev"\r
435               sourcepath="${src.dir}"\r
436               destdir="${doc.dir}"\r
437               nodeprecatedlist="true"\r
438               windowtitle="icu4j"\r
439               doctitle="icu4j"\r
440               encoding="iso-8859-1"\r
441               docencoding="iso-8859-1"\r
442               bottom="&lt;font size=-1>Copyright (c) ${current.year} IBM Corporation and others.&lt;/font>"\r
443               additionalparam="${doc.params}"\r
444               link="http://java.sun.com/j2se/1.5/docs/api"\r
445               source="1.4" />\r
446   </target>\r
447 \r
448   <target name="fulldocs" depends="tools" unless="before.java14" description="build all javadoc">\r
449     <echo message="doc params: ${doc.params}" />\r
450     <mkdir dir="${doc.dir}" />\r
451     <javadoc  packagenames="com.ibm.icu.*"\r
452               sourcepath="${src.dir}"\r
453               destdir="${doc.dir}"\r
454               nodeprecatedlist="true"\r
455               windowtitle="icu4j"\r
456               doctitle="icu4j"\r
457               encoding="iso-8859-1"\r
458               docencoding="iso-8859-1"\r
459               bottom="&lt;font size=-1>Copyright (c) ${current.year} IBM Corporation and others.&lt;/font>"\r
460               additionalparam="${doc.params}"\r
461               link="http://java.sun.com/j2se/1.5/docs/api"\r
462               source="1.4" />\r
463   </target>\r
464 \r
465   <target name="coreData" depends="initBase">\r
466     <copy todir="${build.dir}/com/ibm/icu/impl/data">\r
467       <fileset dir="${src.dir}/com/ibm/icu/impl/data" includes="*.icu,*.spp,*.brk" excludes="Transliterator_Han_Latin_*.txt" />\r
468     </copy>\r
469     <copy file="${src.dir}/com/ibm/icu/ICUConfig.properties" todir="${build.dir}/com/ibm/icu"/>\r
470   </target>\r
471 \r
472   <target name="testdata" depends="initBase">\r
473     <copy file="${src.dir}/com/ibm/icu/dev/data/rbbi/english.dict" todir="${build.dir}/com/ibm/icu/dev/data/rbbi" />\r
474     <copy file="${src.dir}/com/ibm/icu/dev/test/rbbi/rbbitst.txt" todir="${build.dir}/com/ibm/icu/dev/test/rbbi" />\r
475     <copy file="${src.dir}/com/ibm/icu/dev/test/charsetdet/CharsetDetectionTests.xml" todir="${build.dir}/com/ibm/icu/dev/test/charsetdet" />\r
476     <copy todir="${build.dir}/com/ibm/icu/dev/test/serializable/data">\r
477       <fileset dir="${src.dir}/com/ibm/icu/dev/test/serializable/data">\r
478         <include name="**/*.dat" />\r
479       </fileset>\r
480     </copy>\r
481     <copy file="${src.dir}/com/ibm/icu/dev/data/riwords.txt" todir="${build.dir}/com/ibm/icu/dev/data" />\r
482     <copy file="${src.dir}/com/ibm/icu/dev/data/IDNATestInput.txt" todir="${build.dir}/com/ibm/icu/dev/data" />\r
483     <javac  srcdir="${src.dir}"\r
484             destdir="${build.dir}"\r
485             classpathref="build.classpath"\r
486             source="${icu4j.javac.source}"\r
487             target="${icu4j.javac.target}"\r
488             debug="on"\r
489             deprecation="off">\r
490       <include name="com/ibm/icu/dev/data/*.java" />\r
491       <include name="com/ibm/icu/dev/data/resources/*.java" />\r
492     </javac>\r
493     <copy todir="${build.dir}/com/ibm/icu/dev/data">\r
494       <fileset dir="${src.dir}/com/ibm/icu/dev/data" includes="*.spp,*.txt" />\r
495     </copy>\r
496     <copy todir="${build.dir}/com/ibm/icu/dev/data/unicode/">\r
497       <fileset dir="${src.dir}/com/ibm/icu/dev/data/unicode/" includes="*.txt" />\r
498     </copy>\r
499     <copy file="${src.dir}/com/ibm/icu/dev/test/format/NumberFormatTestCases.txt" todir="${build.dir}/com/ibm/icu/dev/test/format" />\r
500     <copy file="${src.dir}/com/ibm/icu/dev/test/translit/langtagRegex.txt" todir="${build.dir}/com/ibm/icu/dev/test/translit" />\r
501     <copy todir="${build.dir}/com/ibm/icu/dev/data/resources/">\r
502       <fileset dir="${src.dir}/com/ibm/icu/dev/data/resources/" includes="*.properties" />\r
503     </copy>\r
504     <copy todir="${build.dir}/com/ibm/icu/dev/test/duration/testdata">\r
505       <fileset dir="${src.dir}/com/ibm/icu/dev/test/duration/testdata/" includes="testdata*.txt" />\r
506     </copy>\r
507     <!-- use this target to force resources to be rebuilt -->\r
508     <unjar src="${src.dir}/com/ibm/icu/dev/data/testdata.jar" dest="${build.dir}" />\r
509     <touch file="${build.dir}/${icu4j.testdata.path}/root.res" />\r
510   </target>\r
511 \r
512   <!-- builds richedit and richedit tests -->\r
513   <target name="richedit" depends="init" description="build richedit classes and tests">\r
514     <javac  srcdir="${src.dir}"\r
515             destdir="${build.dir}"\r
516             classpathref="build.classpath"\r
517             source="${icu4j.javac.source}"\r
518             target="${icu4j.javac.target}"\r
519             debug="on"\r
520             deprecation="off">\r
521       <include name="com/ibm/richtext/**/*.java" />\r
522     </javac>\r
523     <copy todir="${build.dir}/com/ibm/richtext/textapps/resources" overwrite="yes" includeEmptyDirs="no">\r
524       <fileset dir="${src.dir}/com/ibm/richtext/textapps/resources" includes="*.red" />\r
525     </copy>\r
526   </target>\r
527 \r
528   <!-- Creates the 3 release jar archives for distribution -->\r
529   <target name="jarRelease" depends="jar,jarSrc,jarDocs" />\r
530 \r
531   <target name="jar"\r
532           depends="core,indices,charsetsJar"\r
533           description="build 'icu4j.jar' jar file">\r
534     <jar jarfile="${jar.file}" compress="true">\r
535       <fileset dir="${basedir}" includes="license.html,unicode-license.txt" />\r
536       <fileset dir="${src.dir}" includes="com/ibm/icu/ICUConfig.properties" />\r
537       <fileset dir="${build.dir}" includes="com/ibm/icu/util/**/*,com/ibm/icu/text/**/*,com/ibm/icu/math/**/*,com/ibm/icu/impl/**/*,com/ibm/icu/lang/**/*" excludes="META-INF/services/**/*,com/ibm/icu/charset/**/*,${icu4j.data.path}/*.cnv,${icu4j.data.path}/cnvalias.icu" />\r
538       <manifest>\r
539         <attribute name="Built-By" value="${corp}" />\r
540         <section name="common">\r
541           <attribute name="Specification-Title" value="${manifest.specification.title}" />\r
542           <attribute name="Specification-Version" value="${icu4j.spec.version.string}" />\r
543           <attribute name="Specification-Vendor" value="ICU" />\r
544           <attribute name="Implementation-Title" value=" ICU for Java" />\r
545           <attribute name="Implementation-Version" value="${icu4j.impl.version.string}" />\r
546           <attribute name="Implementation-Vendor" value="${corp}" />\r
547           <attribute name="Implementation-Vendor-Id" value="com.ibm" />\r
548           <attribute name="Copyright-Info" value="${copyright}" />\r
549           <attribute name="Sealed" value="false" />\r
550         </section>\r
551       </manifest>\r
552     </jar>\r
553   </target>\r
554 \r
555   <target name="charsetsJar"\r
556           depends="core,indices"\r
557           unless="before.java14"\r
558           description="build  'icu4j-charstes.jar' jar file">\r
559     <echo message="${icu4j.data.path}/cnvalias.icu"/>\r
560     <jar jarfile="${charsets.jar.file}" compress="true">\r
561       <fileset dir="${basedir}" includes="license.html, unicode-license.txt" />\r
562       <fileset dir="${build.dir}"\r
563         includes="META-INF/services/**/*,com/ibm/icu/charset/**/*,${icu4j.data.path}/*.cnv,${icu4j.data.path}/cnvalias.icu" />\r
564       <manifest>\r
565         <attribute name="Built-By" value="${corp}" />\r
566         <section name="common">\r
567           <attribute name="Specification-Title" value="ICU4J Charsets" />\r
568           <attribute name="Specification-Version" value="${icu4j.spec.version.string}" />\r
569           <attribute name="Specification-Vendor" value="ICU" />\r
570           <attribute name="Implementation-Title" value=" ICU for Java Charsets" />\r
571           <attribute name="Implementation-Version" value="${icu4j.impl.version.string}" />\r
572           <attribute name="Implementation-Vendor" value="${corp}" />\r
573           <attribute name="Implementation-Vendor-Id" value="com.ibm" />\r
574           <attribute name="Copyright-Info" value="${copyright}" />\r
575           <attribute name="Sealed" value="false" />\r
576         </section>\r
577       </manifest>\r
578     </jar>\r
579   </target>\r
580 \r
581   <target name="jarTests" depends="tests,jar" description="build runtime 'icu4jtests.jar' jar file">\r
582     <jar jarfile="${testjar.file}" compress="true">\r
583       <fileset dir="${build.dir}" includes="com/ibm/icu/dev/test/**/*" />\r
584       <fileset dir="${build.dir}" includes="com/ibm/icu/dev/data/**/*" />\r
585       <manifest>\r
586         <attribute name="Built-By" value="${corp}" />\r
587         <section name="common">\r
588           <attribute name="Specification-Title" value="ICU4J Tests" />\r
589           <attribute name="Specification-Version" value="${icu4j.spec.version.string}" />\r
590           <attribute name="Specification-Vendor" value="ICU" />\r
591           <attribute name="Implementation-Title" value=" ICU for Java Tests" />\r
592           <attribute name="Implementation-Version" value="${icu4j.impl.version.string}" />\r
593           <attribute name="Implementation-Vendor" value="${corp}" />\r
594           <attribute name="Implementation-Vendor-Id" value="com.ibm" />\r
595           <attribute name="Copyright-Info" value="${copyright}" />\r
596           <attribute name="Sealed" value="false" />\r
597         </section>\r
598       </manifest>\r
599     </jar>\r
600   </target>\r
601 \r
602   <target name="jarSrc" depends="init,normSrc" description="build source 'icu4jsrc.jar' jar file">\r
603     <!--Create a jar archive of just the source for distribution.  The\r
604         jar file will be created in the directory above the root ICU4J\r
605         directory. The exclude pattern ${src.dir}/com/ibm/icu/dev/data/unicode/UnicodeData-*.txt\r
606         and ${src.dir}/com/ibm/icu/dev/data/unicode/SpecialCasing-*.txt\r
607         eliminates old archive copies like SpecialCasing-2.txt and\r
608         UnicodeData-2.1.8.txt -->\r
609     <jar  jarfile="${jarSrc.file}"\r
610           compress="true">\r
611       <fileset dir=".">\r
612         <exclude name="${richedit.dir}/**/*" />\r
613         <exclude name="test_*" />\r
614         <exclude name="${src.dir}/com/ibm/icu/dev/data/unicode/UnicodeData-*.txt" />\r
615         <exclude name="${src.dir}/com/ibm/icu/dev/data/unicode/SpecialCasing-*.txt" />\r
616         <exclude name="${src.dir}/com/ibm/icu/dev/data/unicode/CompositionExclusions-*.txt" />\r
617         <exclude name="${obsolete.dir}/**" />\r
618         <exclude name="**/*~" />\r
619         <exclude name="${src.dir}/**/*.class" />\r
620         <exclude name="${build.dir}/**" />\r
621         <exclude name="${doc.dir}/**" />\r
622         <exclude name="*.jar" />\r
623         <exclude name="*.zip" />\r
624         <exclude name="*.gz" />\r
625       </fileset>\r
626       <manifest>\r
627         <attribute name="Built-By" value="${corp}" />\r
628         <section name="common">\r
629           <attribute name="Specification-Title" value="ICU4J Sources" />\r
630           <attribute name="Specification-Version" value="${icu4j.spec.version.string}" />\r
631           <attribute name="Specification-Vendor" value="ICU" />\r
632           <attribute name="Implementation-Title" value=" ICU for Java source files" />\r
633           <attribute name="Implementation-Version" value="${icu4j.impl.version.string}" />\r
634           <attribute name="Implementation-Vendor" value="${corp}" />\r
635           <attribute name="Implementation-Vendor-Id" value="com.ibm" />\r
636           <attribute name="Copyright-Info" value="${copyright}" />\r
637           <attribute name="Sealed" value="false" />\r
638         </section>\r
639       </manifest>\r
640     </jar>\r
641   </target>\r
642 \r
643   <target name="jarDocs" depends="docs" description="build documentation 'icu4jdocs.jar' jar file">\r
644     <jar jarfile="${jarDocs.file}" compress="true" basedir="${doc.dir}">\r
645       <manifest>\r
646         <attribute name="Built-By" value="${corp}" />\r
647         <section name="common">\r
648           <attribute name="Specification-Title" value="ICU4J Documents" />\r
649           <attribute name="Specification-Version" value="${icu4j.spec.version.string}" />\r
650           <attribute name="Specification-Vendor" value="ICU" />\r
651           <attribute name="Implementation-Title" value=" ICU for Java documents" />\r
652           <attribute name="Implementation-Version" value="${icu4j.impl.version.string}" />\r
653           <attribute name="Implementation-Vendor" value="${corp}" />\r
654           <attribute name="Implementation-Vendor-Id" value="com.ibm" />\r
655           <attribute name="Copyright-Info" value="${copyright}" />\r
656           <attribute name="Sealed" value="false" />\r
657         </section>\r
658       </manifest>\r
659     </jar>\r
660   </target>\r
661 \r
662   <target name="jarDemos" depends="demos" description="build demos to 'icu4jdemos.jar' jar file">\r
663     <jar jarfile="${demos-jar.file}" compress="true">\r
664       <fileset dir="${build.dir}" includes="com/ibm/icu/dev/demo/**" />\r
665       <manifest>\r
666         <attribute name="Built-By" value="${corp}" />\r
667         <attribute name="Main-Class" value="com.ibm.icu.dev.demo.Launcher" />\r
668         <attribute name="Class-Path" value="icu4j.jar" />\r
669         <section name="common">\r
670           <attribute name="Specification-Title" value="${manifest.specification.title}" />\r
671           <attribute name="Specification-Version" value="${icu4j.spec.version.string}" />\r
672           <attribute name="Specification-Vendor" value="ICU" />\r
673           <attribute name="Implementation-Title" value=" ICU for Java Demos" />\r
674           <attribute name="Implementation-Version" value="${icu4j.impl.version.string}" />\r
675           <attribute name="Implementation-Vendor" value="${corp}" />\r
676           <attribute name="Implementation-Vendor-Id" value="com.ibm" />\r
677           <attribute name="Copyright-Info" value="${copyright}" />\r
678           <attribute name="Sealed" value="false" />\r
679         </section>\r
680       </manifest>\r
681     </jar>\r
682   </target>\r
683 \r
684   <target name="translitIMEJar" depends="collator, transliterator" description="build transliterator IME 'icutransime.jar' jar file">\r
685     <javac includes="com/ibm/icu/dev/tool/ime/translit/*.java" excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" source="${icu4j.javac.source}" target="${icu4j.javac.target}" debug="on" deprecation="off" />\r
686     <copy file="${src.dir}/com/ibm/icu/dev/tool/ime/translit/Transliterator.properties" todir="${build.dir}/com/ibm/icu/dev/tool/ime/translit" />\r
687     <jar jarfile="${ime.translit.jar.file}" compress="true" basedir="${build.dir}" includes="com/ibm/icu/dev/tool/ime/translit/**/*" manifest="${ime.translit.manifest}">\r
688       <metainf dir="${src.dir}/com/ibm/icu/dev/tool/ime/translit" includes="services/*" />\r
689     </jar>\r
690   </target>\r
691 \r
692   <target name="indicIMEJar" depends="init" description="build indic IME 'icuindicime.jar' jar file">\r
693     <javac includes="com/ibm/icu/dev/tool/ime/indic/*.java" excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" source="${icu4j.javac.source}" target="${icu4j.javac.target}" debug="on" deprecation="off" />\r
694     <copy file="${src.dir}/com/ibm/icu/dev/tool/ime/indic/DisplayNames.properties" todir="${build.dir}/com/ibm/icu/dev/tool/ime/indic" />\r
695     <jar jarfile="${ime.indic.jar.file}" compress="true" basedir="${build.dir}" includes="com/ibm/icu/dev/tool/ime/indic/**/*" manifest="${ime.indic.manifest}">\r
696       <metainf dir="${src.dir}/com/ibm/icu/dev/tool/ime/indic" includes="services/*" />\r
697     </jar>\r
698   </target>\r
699 \r
700   <!--\r
701     <target name="translitimeStandaloneJar" depends="collator, transliterator">\r
702         <javac includes="com/ibm/icu/dev/tool/ime/translit/*.java"\r
703             excludes="**/CVS/**/*"\r
704             srcdir="${src.dir}"\r
705             destdir="${build.dir}"\r
706             classpathref="build.classpath"\r
707             source="${icu4j.javac.source}"\r
708             target="${icu4j.javac.target}"\r
709             debug="on" deprecation="off"/>\r
710         <copy toDir="${build.dir}/com/ibm/icu/dev/tool/ime/translit">\r
711             <fileset dir="${src.dir}/com/ibm/icu/dev/tool/ime/translit" includes="*.properties"/>\r
712         </copy>\r
713         <jar jarfile="${ime.jar.file}"\r
714             compress="true"\r
715             basedir="${build.dir}"\r
716             includes="com/ibm/icu/util/**/*,com/ibm/icu/text/**/*,com/ibm/icu/math/**/*,com/ibm/icu/impl/**/*,com/ibm/icu/lang/**/*,com/ibm/icu/dev/tool/ime/translit/**/*"\r
717             manifest="${ime.translit.manifest}">\r
718             <metainf dir="${src.dir}/com/ibm/icu/dev/tool/ime/translit" includes="services/*"/>\r
719         </jar>\r
720     </target>\r
721 -->\r
722 \r
723   <!-- jars up richedit but without tests -->\r
724   <target name="richeditJar" depends="richedit" description="build richedit runtime 'richedit.jar' jar file">\r
725     <mkdir dir="${richedit.dir}" />\r
726     <jar jarfile="${richedit.jar.file}" compress="true" includes="com/ibm/richtext/**/*" excludes="com/ibm/richtext/test/**/*" basedir="${build.dir}" manifest="${richedit.manifest}" />\r
727   </target>\r
728 \r
729   <!--\r
730         Note:  I used to use -linkoffline http://java.sun.com/products/jdk/1.2/docs/api/ C:\jdk1.2.2\docs\api\r
731         This links to core docs on Sun's site - a very nice feature.  But it requires the 1.2 docs to be\r
732         on the build machine at a known location.\r
733     -->\r
734 \r
735   <!-- the 'public' docs for richedit -->\r
736   <target name="richeditDocs" depends="init" description="build richedit javadoc">\r
737     <mkdir dir="${richedit.doc.dir}" />\r
738     <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"\r
739               sourcepath="${src.dir}"\r
740               destdir="${richedit.doc.dir}"\r
741               nodeprecatedlist="true"\r
742               windowtitle="RichEdit Control"\r
743               doctitle="RichEdit Control"\r
744               encoding="iso-8859-1"\r
745               docencoding="iso-8859-1"\r
746               bottom="&lt;font size=-1>Copyright (c) 1998-2004 IBM Corporation and others.&lt;/font>" />\r
747   </target>\r
748 \r
749   <!-- richedit alphaworks distribution - jar and docs, but no source -->\r
750   <target name="richeditZip" depends="richeditJar,richeditDocs" description="build richedit zip file">\r
751     <!--Create a zip archive of the richedit jar and readme -->\r
752     <copy file="license.html" todir="${richedit.dir}" />\r
753     <zip zipfile="${richedit.zip.file}" basedir="${richedit.dir}" includes="doc/**/*,richedit.jar,license.html" />\r
754   </target>\r
755   <target name="deleteCore" depends="initBase">\r
756     <delete failonerror="no">\r
757       <fileset dir="${build.dir}/com/ibm/icu/text" />\r
758       <fileset dir="${build.dir}/com/ibm/icu/impl" />\r
759       <fileset dir="${build.dir}/com/ibm/icu/math" />\r
760       <fileset dir="${build.dir}/com/ibm/icu/lang" />\r
761       <fileset dir="${build.dir}/com/ibm/icu/util" />\r
762       <fileset dir="${build.dir}/com/ibm/icu/charset" />\r
763     </delete>\r
764   </target>\r
765 \r
766   <target name="check" depends="tests, jar, deleteCore" description="run standard icu4j test suite">\r
767     <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">\r
768       <jvmarg line="${test.jvm.args}"/>\r
769       <arg value="-n" />\r
770       <classpath>\r
771         <pathelement path="${java.class.path}/" />\r
772         <pathelement location="${jar.file}" />\r
773         <pathelement location="${charsets.jar.file}" />\r
774         <pathelement location="clover.jar" />\r
775         <pathelement path="${build.dir}" />\r
776       </classpath>\r
777     </java>\r
778   </target>\r
779 \r
780   <target name="jdktzCheck" depends="tests, jar, deleteCore" description="run icu4j test suite with JDK timezone">\r
781     <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">\r
782       <jvmarg line="${test.jvm.args} -Dcom.ibm.icu.util.TimeZone.DefaultTimeZoneType=JDK"/>\r
783       <arg value="-n" />\r
784       <classpath>\r
785         <pathelement path="${java.class.path}/" />\r
786         <pathelement location="${jar.file}" />\r
787         <pathelement location="${charsets.jar.file}" />\r
788         <pathelement location="clover.jar" />\r
789         <pathelement path="${build.dir}" />\r
790       </classpath>\r
791     </java>\r
792   </target>\r
793 \r
794   <target name="exhaustiveCheck" depends="tests, jar, deleteCore" description="run standard icu4j test suite in exhaustive mode">\r
795     <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">\r
796       <jvmarg line="${test.jvm.args}"/>\r
797       <arg value="-n" />\r
798       <arg value="-e10" />\r
799       <classpath>\r
800         <pathelement path="${java.class.path}/" />\r
801         <pathelement location="${jar.file}" />\r
802         <pathelement location="${charsets.jar.file}" />\r
803         <pathelement location="clover.jar" />\r
804         <pathelement path="${build.dir}" />\r
805       </classpath>\r
806     </java>\r
807   </target>\r
808 \r
809   <target name="secure" depends="jarTests" description="builds icu4j.jar and icu4jtests.jar" />\r
810 \r
811   <target name="secureCheck" depends="secure" description="run secure (applet-like) icu4j test suite">\r
812     <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">\r
813       <jvmarg line="${test.jvm.args}"/>\r
814       <!-- jvmarg value="-verbose"/ -->\r
815       <!-- (use for debugging, LOTS of output) <jvmarg value="-Djava.security.debug=access:trace"/ -->\r
816       <!-- <jvmarg value="-Djava.security.debug=access:failure,domain"/> -->\r
817       <jvmarg value="-Djava.security.manager" />\r
818       <jvmarg value="-Djava.security.policy=${src.dir}/com/ibm/icu/dev/test/security.policy" />\r
819       <!--<jvmarg value="-Djava.security.debug=access:failure"/>-->\r
820       <arg value="-w" />\r
821       <arg value="-nothrow" />\r
822       <classpath>\r
823         <pathelement location="clover.jar" />\r
824         <pathelement location="${jar.file}" />\r
825         <pathelement location="${charsets.jar.file}" />\r
826         <pathelement location="${testjar.file}" />\r
827       </classpath>\r
828     </java>\r
829   </target>\r
830 \r
831   <target name="noData" depends="core, tests" description="builds ICU4J without any data">\r
832     <delete failonerror="no">\r
833       <fileset dir="${build.dir}/${icu4j.data.path}/../" includes="Holiday*.class" />\r
834       <fileset dir="${build.dir}/${icu4j.data.path}/../" includes="BreakIterator*.class" />\r
835       <fileset dir="${build.dir}/${icu4j.data.path}" />\r
836       <fileset dir="${build.dir}/${icu4j.testdata.path}" />\r
837       <fileset dir="${build.dir}/${icu4j.testdata.path}/../" />\r
838     </delete>\r
839   </target>\r
840   <target name="noDataCheck" depends="noData" description="runs the tests when no data is present">\r
841     <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">\r
842       <arg value="-nothrow" />\r
843       <arg value="-nodata" />\r
844       <classpath>\r
845         <pathelement location="clover.jar" />\r
846         <pathelement location="${build.dir}" />\r
847       </classpath>\r
848     </java>\r
849   </target>\r
850 \r
851   <target name="_requires14" if="before.java14">\r
852     <echo message="One of your targets requires JAVA_HOME to be set to JDK version 1.4 or newer" />\r
853   </target>\r
854 \r
855   <target name="_checktags" depends="tools" unless="before.java14">\r
856     <echo message="doc params: ${doc.params}" />\r
857     <javadoc sourcepath="${src.dir}" packagenames="com.ibm.icu.*" excludepackagenames="com.ibm.icu.dev.*,com.ibm.icu.impl.*" classpath="${build.dir}" source="1.4">\r
858       <doclet name="com.ibm.icu.dev.tool.docs.CheckTags" path="${build.dir}">\r
859         <!-- <param name="-short"/> -->\r
860       </doclet>\r
861     </javadoc>\r
862   </target>\r
863 \r
864   <target name="checktags" depends="_requires14,_checktags" description="check API tags before release" />\r
865 \r
866   <target name="gatherapi" depends="tools" unless="before.java14" description="run API database generator tool">\r
867     <javadoc classpath="${build.dir}" sourcepath="${src.dir}" packagenames="com.ibm.icu.lang,com.ibm.icu.math,com.ibm.icu.text,com.ibm.icu.util,com.ibm.icu.charset" source="1.4">\r
868       <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIData" path="${build.dir}">\r
869         <param name="-name" value="ICU4J ${icu4j.impl.version.string}" />\r
870         <param name="-output" value="${api.dir}/icu4j${icu4j.version.number}.api" />\r
871         <param name="-internal" />\r
872         <param name="-gzip" />\r
873       </doclet>\r
874     </javadoc>\r
875   </target>\r
876 \r
877   <target name="gatherapi.with.version" depends="tools" unless="before.java14" description="run API database generator tool">\r
878     <javadoc classpath="${build.dir}" sourcepath="${src.dir}" packagenames="com.ibm.icu.lang,com.ibm.icu.math,com.ibm.icu.text,com.ibm.icu.util,com.ibm.icu.charset" source="1.4">\r
879       <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIData" path="${build.dir}">\r
880         <param name="-name" value="ICU4J ${icu4j.impl.version.string}" />\r
881         <param name="-output" value="${api.dir}/icu4j${icu4j.version.number}.stver.api" />\r
882         <param name="-internal" />\r
883         <param name="-version" />\r
884       </doclet>\r
885     </javadoc>\r
886   </target>\r
887 \r
888   <target name="apireport" depends="tools, gatherapi" unless="beofre.java14" description="run API report generator tool">\r
889     <java classname="com.ibm.icu.dev.tool.docs.ReportAPI" classpath="${build.dir}" failonerror="true">\r
890       <arg value="-old:" />\r
891       <arg value="${api.dir}/icu4j${icu4j.previous.version.number}.api.gz" />\r
892       <arg value="-new:" />\r
893       <arg value="${api.dir}/icu4j${icu4j.version.number}.api.gz" />\r
894       <arg value="-html" />\r
895       <arg value="-internal" />\r
896       <arg value="-out:" />\r
897       <arg value="${api.report.out}" />\r
898     </java>\r
899   </target>\r
900 \r
901   <target name="clean" depends="initBase" description="remove all build targets">\r
902     <delete dir="${build.dir}" />\r
903     <delete dir="${doc.dir}" />\r
904     <delete file="${jar.file}" />\r
905     <delete file="${charsets.jar.file}" />\r
906     <delete dir="${richedit.dir}" />\r
907     <delete file="${testjar.file}" />\r
908     <delete file="${jarSrc.file}" />\r
909 \r
910     <delete dir="${eclipse.projects.dir}" />\r
911     <delete dir="${wrapper.build.dir}" />\r
912     <delete file="${zipTestSrc.file}" />\r
913     <delete file="${jdk.wrapper.jar.file}" />\r
914     <delete file="${fragment.jar.file}"/>\r
915 \r
916     <delete dir="${tzu.bin.dir}" />\r
917     <delete file="${tzu.bin.zip.file}" />\r
918     <delete file="${tzu.src.zip.file}" />\r
919   </target>\r
920 \r
921   <target name="moduleJar" depends="initBase" description="modular build of 'icu4j.jar' jar file">\r
922     <jar jarfile="${jar.file}" compress="true">\r
923 \r
924         <!-- com/ibm/icu/util/**/*,com/ibm/icu/text/**/*,com/ibm/icu/math/**/*,com/ibm/icu/impl/**/*,com/ibm/icu/lang/**/* -->\r
925       <fileset dir="${build.dir}" includes="com/ibm/icu/util/**/*,com/ibm/icu/text/**/*,com/ibm/icu/math/**/*,com/ibm/icu/impl/**/*,com/ibm/icu/lang/**/*" excludes="META-INF/services/**/*,com/ibm/icu/charset/**/*,${icu4j.data.path}/*.cnv,${icu4j.data.path}/cnvalias.icu" />\r
926 \r
927         <fileset dir="${basedir}" includes="license.html,unicode-license.txt" />\r
928       <fileset dir="${src.dir}" includes="com/ibm/icu/ICUConfig.properties" />\r
929         \r
930       <manifest>\r
931         <attribute name="Built-By" value="${corp}" />\r
932         <section name="common">\r
933           <attribute name="Specification-Title" value="ICU4J Modularized Build" />\r
934           <attribute name="Specification-Version" value="${icu4j.spec.version.string}" />\r
935           <attribute name="Specification-Vendor" value="ICU" />\r
936           <attribute name="Implementation-Title" value=" ICU for Java Module" />\r
937           <attribute name="Implementation-Version" value="${icu4j.impl.version.string}" />\r
938           <attribute name="Implementation-Vendor" value="${corp}" />\r
939           <attribute name="Implementation-Vendor-Id" value="com.ibm" />\r
940           <attribute name="Copyright-Info" value="${copyright}" />\r
941           <attribute name="Sealed" value="false" />\r
942         </section>\r
943       </manifest>\r
944     </jar>\r
945   </target>\r
946 \r
947   <patternset id="common.test.sources">\r
948     <include name="com/ibm/icu/dev/test/TestFmwk.java" />\r
949     <include name="com/ibm/icu/dev/test/TestLog.java" />\r
950     <include name="com/ibm/icu/dev/test/TestUtil.java" />\r
951     <include name="com/ibm/icu/dev/test/UTF16Util.java" />\r
952     <include name="com/ibm/icu/dev/test/TestAll.java" />\r
953   </patternset>\r
954 \r
955   <!-- Module: BreakIterator -->\r
956   <target name="breakIterator" depends="init,copyFullPropsData" description="modular build of break iterator services">\r
957     <javac srcdir="${src.dir}"\r
958            destdir="${build.dir}"\r
959            source="${icu4j.javac.source}"\r
960            target="${icu4j.javac.target}"\r
961            classpathref="build.classpath"\r
962            debug="on"\r
963            deprecation="off">\r
964       <include name="com/ibm/icu/impl/UCharacterName.java"/>\r
965       <include name="com/ibm/icu/impl/data/*Break*.java"/>\r
966       <include name="com/ibm/icu/lang/**/*.java"/>\r
967       <include name="com/ibm/icu/text/*BreakIterator*.java"/>\r
968       <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>\r
969     </javac>\r
970   </target>\r
971 \r
972   <target name="breakIteratorTests" depends="breakIterator" description="test breakIterator modular build target">\r
973     <javac srcdir="${src.dir}"\r
974            destdir="${build.dir}"\r
975            classpathref="build.classpath"\r
976            source="${icu4j.javac.source}"\r
977            target="${icu4j.javac.target}"\r
978            debug="on" deprecation="off">\r
979       <patternset refid="common.test.sources" />\r
980       <include name="com/ibm/icu/dev/test/rbbi/**/*.java"/>\r
981     </javac>\r
982     <copy file="${src.dir}/com/ibm/icu/dev/test/rbbi/rbbitst.txt"\r
983           todir="${build.dir}/com/ibm/icu/dev/test/rbbi"/>\r
984   </target>\r
985 \r
986   <!-- Module: Calendar -->\r
987   <target name="copyCalendarData" depends="initBase">\r
988     <!-- Calendar does not require Collation data, BreakIterator data -->\r
989     <unjar src="${icudatajar.file}" dest="${build.dir}">\r
990       <patternset>\r
991         <include name="**/pnames.icu" />\r
992         <include name="**/ucase.icu" />\r
993         <include name="**/unorm.icu" />\r
994         <include name="**/uprops.icu" />\r
995         <include name="**/unames.icu" />\r
996         <include name="**/*.res" />\r
997         <exclude name="**/coll/*.res" />\r
998         <exclude name="**/translit/*.res" />\r
999         <exclude name="**/rbnf/*.res" />\r
1000       </patternset>\r
1001     </unjar>\r
1002     <touch file="${build.dir}/${icu4j.data.path}/uprops.icu" />\r
1003   </target>\r
1004 \r
1005   <target name="calendar" depends="init,copyCalendarData" description="modular build of calendar services">\r
1006     <javac srcdir="${src.dir}"\r
1007            destdir="${build.dir}"\r
1008            source="${icu4j.javac.source}"\r
1009            target="${icu4j.javac.target}"\r
1010            classpathref="build.classpath"\r
1011            debug="on"\r
1012            deprecation="off">\r
1013       <include name="com/ibm/icu/impl/data/*Holiday*.java"/>\r
1014       <include name="com/ibm/icu/lang/UCharacter.java"/>\r
1015       <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>\r
1016       <include name="com/ibm/icu/text/NumberFormatServiceShim.java"/>\r
1017       <include name="com/ibm/icu/util/*Calendar*.java"/>\r
1018     </javac>\r
1019   </target>\r
1020 \r
1021   <target name="calendarTests" depends="calendar,testdata" description="test calendar modular build target">\r
1022     <javac srcdir="${src.dir}"\r
1023            destdir="${build.dir}"\r
1024            classpathref="build.classpath"\r
1025            source="${icu4j.javac.source}"\r
1026            target="${icu4j.javac.target}"\r
1027            debug="on"\r
1028            deprecation="off">\r
1029       <patternset refid="common.test.sources" />\r
1030       <include name="com/ibm/icu/dev/test/calendar/**/*.java" />\r
1031     </javac>\r
1032   </target>\r
1033 \r
1034   <!-- Module: Collator -->\r
1035   <target name="copyCollatorData" depends="initBase">\r
1036     <unjar src="${icudatajar.file}" dest="${build.dir}">\r
1037       <patternset>\r
1038         <include name="**/*.icu" />\r
1039         <include name="**/coll/*.res" />\r
1040         <include name="**/*.brk" />\r
1041       </patternset>\r
1042     </unjar>\r
1043     <touch file="${build.dir}/${icu4j.data.path}/uprops.icu" />\r
1044   </target>\r
1045 \r
1046   <target name="collator" depends="init,copyCollatorData" description="modular build of collator services">\r
1047     <javac srcdir="${src.dir}"\r
1048            destdir="${build.dir}"\r
1049            classpathref="build.classpath"\r
1050            source="${icu4j.javac.source}"\r
1051            target="${icu4j.javac.target}"\r
1052            debug="on"\r
1053            deprecation="off">\r
1054       <include name="com/ibm/icu/impl/data/*Break*.java"/>\r
1055       <include name="com/ibm/icu/text/*BreakIterator*.java"/>\r
1056       <include name="com/ibm/icu/text/*Collation*.java"/>\r
1057       <include name="com/ibm/icu/text/*Collator*.java"/>\r
1058       <include name="com/ibm/icu/text/Normalizer.java"/>\r
1059       <include name="com/ibm/icu/text/Replaceable.java"/>\r
1060       <include name="com/ibm/icu/text/ReplaceableString.java"/>\r
1061       <include name="com/ibm/icu/text/UnicodeFilter.java"/>\r
1062       <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>\r
1063       <include name="com/ibm/icu/text/UTF16.java"/>\r
1064     </javac>\r
1065   </target>\r
1066 \r
1067   <target name="collatorTests" depends="collator,testdata" description="test collator modular build target">\r
1068     <javac srcdir="${src.dir}"\r
1069            destdir="${build.dir}"\r
1070            classpathref="build.classpath"\r
1071            source="${icu4j.javac.source}"\r
1072            target="${icu4j.javac.target}"\r
1073            debug="on"\r
1074            deprecation="off">\r
1075       <patternset refid="common.test.sources" />\r
1076       <include name="com/ibm/icu/dev/test/collator/**/*.java"/>\r
1077       <include name="java,com/ibm/icu/dev/test/search/**/*.java"/>\r
1078       <exclude name="com/ibm/icu/dev/test/collator/RandomCollator.java"/>\r
1079     </javac>\r
1080   </target>\r
1081 \r
1082   <!-- Module: Compression -->\r
1083   <target name="compression" depends="init" description="modular build of compression services">\r
1084     <javac srcdir="${src.dir}"\r
1085            destdir="${build.dir}"\r
1086            source="${icu4j.javac.source}"\r
1087            target="${icu4j.javac.target}"\r
1088            classpathref="build.classpath"\r
1089            debug="on"\r
1090            deprecation="off">\r
1091       <include name="com/ibm/icu/text/SCSU.java"/>\r
1092       <include name="com/ibm/icu/text/UnicodeCompressor.java"/>\r
1093       <include name="com/ibm/icu/text/UnicodeDecompressor.java"/>\r
1094     </javac>\r
1095   </target>\r
1096 \r
1097   <target name="compressionTests" depends="compression" description="test compression modular build target">\r
1098     <javac srcdir="${src.dir}"\r
1099            destdir="${build.dir}"\r
1100            classpathref="build.classpath"\r
1101            source="${icu4j.javac.source}"\r
1102            target="${icu4j.javac.target}"\r
1103            debug="on"\r
1104            deprecation="off">\r
1105       <patternset refid="common.test.sources" />\r
1106       <include name="com/ibm/icu/dev/test/compression/**/*.java"/>\r
1107     </javac>\r
1108   </target>\r
1109 \r
1110   <!-- Module: Format -->\r
1111   <target name="copyFormatData" depends="initBase" if="icu4j.module.resources">\r
1112     <!-- Format does not require BreakIterator data -->\r
1113     <unjar src="${icudatajar.file}" dest="${build.dir}">\r
1114       <patternset>\r
1115         <include name="**/*.icu" />\r
1116         <include name="**/*.res" />\r
1117         <exclude name="**/translit/*.res" />\r
1118       </patternset>\r
1119     </unjar>\r
1120     <touch file="${build.dir}/${icu4j.data.path}/uprops.icu" />\r
1121   </target>\r
1122 \r
1123   <target name="format" depends="init,copyFormatData" description="modular build of formatting services">\r
1124     <javac srcdir="${src.dir}"\r
1125            destdir="${build.dir}"\r
1126            source="${icu4j.javac.source}"\r
1127            target="${icu4j.javac.target}"\r
1128            classpathref="build.classpath"\r
1129            debug="on"\r
1130            deprecation="off">\r
1131       <include name="com/ibm/icu/lang/UCharacter.java"/>\r
1132       <include name="com/ibm/icu/text/*Collator*.java"/>\r
1133       <include name="com/ibm/icu/text/*Format*.java"/>\r
1134       <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>\r
1135       <include name="com/ibm/icu/util/CalendarServiceShim.java"/>    </javac>\r
1136   </target>\r
1137 \r
1138   <target name="formatTests" depends="format,testdata" description="test format modular build target">\r
1139     <javac srcdir="${src.dir}"\r
1140            destdir="${build.dir}"\r
1141            classpathref="build.classpath"\r
1142            source="${icu4j.javac.source}"\r
1143            target="${icu4j.javac.target}"\r
1144            debug="on"\r
1145            deprecation="off">\r
1146       <patternset refid="common.test.sources" />\r
1147       <include name="com/ibm/icu/dev/test/format/**/*.java"/>\r
1148       <exclude name="com/ibm/icu/dev/test/format/GlobalizationPreferencesTest.java"/>\r
1149     </javac>\r
1150     <copy file="${src.dir}/com/ibm/icu/dev/test/format/NumberFormatTestCases.txt"\r
1151           todir="${build.dir}/com/ibm/icu/dev/test/format"/>\r
1152   </target>\r
1153 \r
1154   <!-- Module: Normalizer -->\r
1155   <target name="normalizerData" depends="initBase">\r
1156     <unjar src="${icudatajar.file}" dest="${build.dir}">\r
1157       <patternset>\r
1158         <include name="**/ucase.icu" />\r
1159         <include name="**/unorm.icu" />\r
1160         <include name="**/uprops.icu" />\r
1161         <include name="**/pnames.icu" />\r
1162         <include name="**/unames.icu" />\r
1163       </patternset>\r
1164     </unjar>\r
1165     <touch file="${build.dir}/${icu4j.data.path}/uprops.icu" />\r
1166   </target>\r
1167 \r
1168   <target name="normalizer" depends="init,normalizerData" description="modular build of normalizer services">\r
1169     <javac includes="com/ibm/icu/text/Normalizer.java,com/ibm/icu/text/CanonicalIterator.java,com/ibm/icu/text/UTF16.java,com/ibm/icu/text/UCharacterIterator.java,com/ibm/icu/text/UForwardCharacterIterator.java,com/ibm/icu/text/Replaceable.java,com/ibm/icu/text/ReplaceableString.java,com/ibm/icu/text/UnicodeFilter.java,com/ibm/icu/text/UnicodeSetIterator.java,com/ibm/icu/lang/**/*"\r
1170            excludes="**/CVS/**/*,com/ibm/icu/lang/UScriptRun.java,com/ibm/icu/impl/UtilityExtensions.java,com/ibm/icu/impl/TrieBuilder.java,com/ibm/icu/impl/IntTrieBuilder.java,com/ibm/icu/impl/BOCU.java,com/ibm/icu/impl/UnicodeCharacterIterator.java"\r
1171            srcdir="${src.dir}"\r
1172            destdir="${build.dir}"\r
1173            source="${icu4j.javac.source}"\r
1174            target="${icu4j.javac.target}"\r
1175            classpathref="build.classpath"\r
1176            debug="on"\r
1177            deprecation="off">\r
1178       <include name="com/ibm/icu/lang/**/*"/>\r
1179       <include name="com/ibm/icu/text/CanonicalIterator.java"/>\r
1180       <include name="com/ibm/icu/text/Normalizer.java"/>\r
1181       <include name="com/ibm/icu/text/Replaceable.java"/>\r
1182       <include name="com/ibm/icu/text/ReplaceableString.java"/>\r
1183       <include name="com/ibm/icu/text/UCharacterIterator.java"/>\r
1184       <include name="com/ibm/icu/text/UForwardCharacterIterator.java"/>\r
1185       <include name="com/ibm/icu/text/UnicodeFilter.java"/>\r
1186       <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>\r
1187       <include name="com/ibm/icu/text/UTF16.java"/>\r
1188     </javac>\r
1189   </target>\r
1190 \r
1191   <target name="normalizerTests" depends="normalizer">\r
1192     <javac srcdir="${src.dir}"\r
1193            destdir="${build.dir}"\r
1194            classpathref="build.classpath"\r
1195            source="${icu4j.javac.source}"\r
1196            target="${icu4j.javac.target}"\r
1197            debug="on"\r
1198            deprecation="off">\r
1199       <patternset refid="common.test.sources" />\r
1200       <include name="com/ibm/icu/dev/test/normalizer/**/*.java"/>\r
1201       <exclude name="com/ibm/icu/dev/test/normalizer/TestDeprecatedNormalizerAPI.java"/>\r
1202     </javac>\r
1203   </target>\r
1204 \r
1205   <!-- Module: Basic Properties / Full Properties -->\r
1206   <target name="copyBasicPropsData" depends="initBase">\r
1207     <unjar src="${icudatajar.file}" dest="${build.dir}">\r
1208       <patternset>\r
1209         <include name="**/unorm.icu" />\r
1210         <include name="**/uprops.icu" />\r
1211         <include name="**/ubidi.icu" />\r
1212         <include name="**/ucase.icu" />\r
1213         <include name="**/pnames.icu" />\r
1214         <include name="**/unames.icu" />\r
1215       </patternset>\r
1216     </unjar>\r
1217     <touch file="${build.dir}/${icu4j.data.path}/uprops.icu" />\r
1218   </target>\r
1219 \r
1220   <target name="copyFullPropsData" depends="initBase">\r
1221     <unjar src="${icudatajar.file}" dest="${build.dir}">\r
1222       <patternset>\r
1223         <include name="**/unorm.icu" />\r
1224         <include name="**/uprops.icu" />\r
1225         <include name="**/ubidi.icu" />\r
1226         <include name="**/ucase.icu" />\r
1227         <include name="**/unames.icu" />\r
1228         <include name="**/pnames.icu" />\r
1229         <include name="**/*.res" />\r
1230         <include name="**/*.brk" />\r
1231         <include name="**/*.ctd" />\r
1232         <exclude name="**/coll/*.res" />\r
1233         <exclude name="**/translit/*.res" />\r
1234         <exclude name="**/rbnf/*.res" />\r
1235       </patternset>\r
1236     </unjar>\r
1237     <touch file="${build.dir}/${icu4j.data.path}/uprops.icu" />\r
1238   </target>\r
1239 \r
1240   <target name="propertiesBasic" depends="init,propertiesClasses,copyBasicPropsData" description="modular build of basic character properties">\r
1241   </target>\r
1242 \r
1243   <target name="propertiesFull" depends="init,propertiesClasses,copyFullPropsData" description="modular build of full character properties">\r
1244   </target>\r
1245 \r
1246   <target name="propertiesBasicTests" depends="propertiesBasic,propertiesTests" description="modular build of basic character properties">\r
1247   </target>\r
1248 \r
1249   <target name="propertiesFullTests" depends="propertiesFull,propertiesTests" description="modular build of full character properties">\r
1250   </target>\r
1251 \r
1252   <target name="propertiesClasses">\r
1253     <javac srcdir="${src.dir}"\r
1254            destdir="${build.dir}"\r
1255            source="${icu4j.javac.source}"\r
1256            target="${icu4j.javac.target}"\r
1257            classpathref="build.classpath"\r
1258            debug="on"\r
1259            deprecation="off">\r
1260       <include name="com/ibm/icu/impl/data/*Break*.java"/>\r
1261       <include name="com/ibm/icu/lang/**/*"/>\r
1262       <include name="com/ibm/icu/text/*BreakDictionary*.java"/>\r
1263       <include name="com/ibm/icu/text/*BreakIterator*.java"/>\r
1264       <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>\r
1265     </javac>\r
1266   </target>\r
1267 \r
1268   <target name="propertiesTests">\r
1269     <javac srcdir="${src.dir}"\r
1270            destdir="${build.dir}"\r
1271            classpathref="build.classpath"\r
1272            source="${icu4j.javac.source}"\r
1273            target="${icu4j.javac.target}"\r
1274            debug="on"\r
1275            deprecation="off">\r
1276       <patternset refid="common.test.sources" />\r
1277       <include name="com/ibm/icu/dev/test/lang/**/*.java"/>\r
1278       <exclude name="com/ibm/icu/dev/test/lang/TestUScriptRun.java"/>\r
1279     </javac>\r
1280     <copy file="${src.dir}/com/ibm/icu/dev/data/unicode/SpecialCasing.txt"\r
1281           todir="${build.dir}/com/ibm/icu/dev/data/unicode/" />\r
1282   </target>\r
1283 \r
1284   <!-- Module: Transliterator -->\r
1285   <target name="copyTranslitData" depends="initBase">\r
1286     <unjar src="${icudatajar.file}" dest="${build.dir}">\r
1287       <patternset>\r
1288         <include name="**/unorm.icu" />\r
1289         <include name="**/uprops.icu" />\r
1290         <include name="**/ubidi.icu" />\r
1291         <include name="**/ucase.icu" />\r
1292         <include name="**/unames.icu" />\r
1293         <include name="**/pnames.icu" />\r
1294         <include name="**/*.brk" />\r
1295         <include name="**/*.ctd" />\r
1296         <include name="**/brkitr/*.res" />\r
1297         <include name="**/translit/*.res" />\r
1298       </patternset>\r
1299     </unjar>\r
1300     <touch file="${build.dir}/${icu4j.data.path}/uprops.icu" />\r
1301   </target>\r
1302 \r
1303   <target name="transliterator" depends="init,propertiesClasses,copyTranslitData" description="modular build of unicode transform services">\r
1304     <javac srcdir="${src.dir}"\r
1305            destdir="${build.dir}"\r
1306            source="${icu4j.javac.source}"\r
1307            target="${icu4j.javac.target}"\r
1308            classpathref="build.classpath"\r
1309            debug="on"\r
1310            deprecation="off">\r
1311       <include name="com/ibm/icu/impl/*Iterator*.java"/>\r
1312       <include name="com/ibm/icu/impl/*Property*.java"/>\r
1313       <include name="com/ibm/icu/impl/data/ResourceReader.java"/>\r
1314       <include name="com/ibm/icu/impl/UtilityExtensions.java"/>\r
1315       <include name="com/ibm/icu/text/*Transliterator*.java"/>\r
1316       <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>\r
1317     </javac>\r
1318   </target>\r
1319 \r
1320   <target name="transliteratorTests" depends="transliterator" description = "test transliterator modular build target">\r
1321     <javac srcdir="${src.dir}"\r
1322            destdir="${build.dir}"\r
1323            classpathref="build.classpath"\r
1324            source="${icu4j.javac.source}"\r
1325            target="${icu4j.javac.target}"\r
1326            debug="on"\r
1327            deprecation="off">\r
1328       <patternset refid="common.test.sources" />\r
1329       <include name="com/ibm/icu/dev/test/translit/**/*.java"/>\r
1330       <exclude name="com/ibm/icu/dev/test/translit/UnicodeFilterLogic*.java"/>\r
1331     </javac>\r
1332     <copy file="${src.dir}/com/ibm/icu/dev/test/translit/langtagRegex.txt" todir="${build.dir}/com/ibm/icu/dev/test/translit" />\r
1333   </target>\r
1334 \r
1335   <!-- Module: StringPrep, IDNA -->\r
1336   <target name="copyStringPrepData" depends="initBase">\r
1337     <unjar src="${icudatajar.file}" dest="${build.dir}">\r
1338       <patternset>\r
1339         <include name="**/*.spp" />\r
1340         <include name="**/ubidi.icu" />\r
1341         <include name="**/ucase.icu" />\r
1342         <include name="**/unorm.icu" />\r
1343         <include name="**/uprops.icu" />\r
1344         <include name="**/pnames.icu" />\r
1345         <include name="**/unames.icu" />\r
1346       </patternset>\r
1347     </unjar>\r
1348   </target>\r
1349 \r
1350   <target name="stringPrep" depends="init,normalizer,copyStringPrepData" description="modular build of stringprep services">\r
1351     <javac srcdir="${src.dir}"\r
1352            destdir="${build.dir}"\r
1353            source="${icu4j.javac.source}"\r
1354            target="${icu4j.javac.target}"\r
1355            classpathref="build.classpath"\r
1356            debug="on"\r
1357            deprecation="off">\r
1358       <include name="com/ibm/icu/impl/*StringPrep*.java"/>\r
1359       <include name="com/ibm/icu/text/*IDNA*.java"/>\r
1360       <include name="com/ibm/icu/text/*StringPrep*.java"/>\r
1361     </javac>\r
1362   </target>\r
1363 \r
1364   <target name="stringPrepTests" depends="stringPrep" description="test stringPrep modular build target">\r
1365     <javac srcdir="${src.dir}"\r
1366            destdir="${build.dir}"\r
1367            classpathref="build.classpath"\r
1368            source="${icu4j.javac.source}"\r
1369            target="${icu4j.javac.target}"\r
1370            debug="on"\r
1371            deprecation="off">\r
1372       <patternset refid="common.test.sources" />\r
1373       <include name="com/ibm/icu/dev/test/stringprep/**/*.java"/>\r
1374     </javac>\r
1375     <unjar src="${src.dir}/com/ibm/icu/dev/data/testdata.jar" dest="${build.dir}">\r
1376       <patternset>\r
1377         <include name="**/*.spp"/>\r
1378         <include name="**/idna_rules.res"/>\r
1379       </patternset>\r
1380     </unjar>\r
1381   </target>\r
1382 \r
1383 \r
1384 \r
1385   <target name="excludeCharset" depends="core" description="excludes charset module from ICU4J">\r
1386     <delete failonerror="yes">\r
1387       <fileset dir="${build.dir}/com/ibm/icu/impl/data/icudt${icu4j.data.version.number}b/">\r
1388         <include name="*.cnv" />\r
1389         <include name="cnvalias.icu" />\r
1390       </fileset>\r
1391       <fileset dir="${build.dir}/com/ibm/icu/charset" />\r
1392       <fileset dir="${build.dir}/META-INF/" />\r
1393     </delete>\r
1394   </target>\r
1395   <target name="excludeCharsetTests" depends="tests" description="excludes charset  test from ICU4J">\r
1396     <delete failonerror="yes">\r
1397       <fileset dir="${build.dir}/com/ibm/icu/dev/test/charset" />\r
1398     </delete>\r
1399   </target>\r
1400 \r
1401   <target name="moduleCheck" depends="initBase" description="run tests for module jar">\r
1402     <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">\r
1403       <jvmarg line="${test.jvm.args}"/>\r
1404       <arg value="-nothrow" />\r
1405       <arg value="-nodata" />\r
1406       <classpath>\r
1407         <pathelement location="${build.dir}" />\r
1408       </classpath>\r
1409     </java>\r
1410   </target>\r
1411 \r
1412   <!-- build the extra Transliterator data pertaining to Han-Latin transliteration -->\r
1413   <target name="extraTransliteratorData" depends="initBase" description="build han-to-latin transliterator data (normally omitted)">\r
1414     <copy todir="${build.dir}/com/ibm/icu/impl/data">\r
1415       <fileset dir="${src.dir}/com/ibm/icu/impl/data" includes="Transliterator_Han_Latin_*.txt" />\r
1416     </copy>\r
1417   </target>\r
1418 \r
1419   <!-- Target for builing XLIFF2ICUConverter Jar -->\r
1420 \r
1421   <target name="xliff" depends="init" description="build xliff converter tool">\r
1422     <javac sourcepath="" srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" source="${icu4j.javac.source}" target="${icu4j.javac.target}" debug="on" deprecation="off">\r
1423 \r
1424       <include name="com/ibm/icu/dev/tool/localeconverter/CalculateCRC32.java" />\r
1425       <include name="com/ibm/icu/dev/tool/localeconverter/XLIFF2ICUConverter.java" />\r
1426       <include name="com/ibm/icu/dev/tool/UOption.java" />\r
1427       <include name="com/ibm/icu/dev/tool/xmlcomparator/XMLValidator.java" />\r
1428     </javac>\r
1429     <jar jarfile="xliff.jar" compress="true" includes="com/ibm/icu/dev/tool/localeconverter/XLIFF2ICUConverter*.class,com/ibm/icu/dev/tool/localeconverter/CalculateCRC32.class,com/ibm/icu/dev/tool/UOption.class" basedir="${build.dir}">\r
1430       <manifest>\r
1431         <attribute name="Built-By" value="${corp}" />\r
1432         <section name="common">\r
1433           <attribute name="Specification-Title" value="XLIFF To ICU Converter" />\r
1434           <attribute name="Specification-Version" value="${icu4j.spec.version.string}" />\r
1435           <attribute name="Specification-Vendor" value="ICU" />\r
1436           <attribute name="Implementation-Title" value="XLIFF2ICUConverter" />\r
1437           <attribute name="Implementation-Version" value="${icu4j.impl.version.string}" />\r
1438           <attribute name="Implementation-Vendor" value="${corp}" />\r
1439           <attribute name="Implementation-Vendor-Id" value="com.ibm" />\r
1440           <attribute name="Copyright-Info" value="${copyright}" />\r
1441           <attribute name="Sealed" value="false" />\r
1442         </section>\r
1443       </manifest>\r
1444     </jar>\r
1445 \r
1446     <jar jarfile="xliff-src.jar" compress="true" includes="com/ibm/icu/dev/tool/localeconverter/XLIFF2ICUConverter.java,com/ibm/icu/dev/tool/localeconverter/CalculateCRC32.java,com/ibm/icu/dev/tool/UOption.java" basedir="${src.dir}">\r
1447       <manifest>\r
1448         <attribute name="Built-By" value="${corp}" />\r
1449         <section name="common">\r
1450           <attribute name="Specification-Title" value="XLIFF To ICU Converter Sources" />\r
1451           <attribute name="Specification-Version" value="${icu4j.spec.version.string}" />\r
1452           <attribute name="Specification-Vendor" value="ICU" />\r
1453           <attribute name="Implementation-Title" value="XLIFF2ICUConverter Sources" />\r
1454           <attribute name="Implementation-Version" value="${icu4j.impl.version.string}" />\r
1455           <attribute name="Implementation-Vendor" value="${corp}" />\r
1456           <attribute name="Implementation-Vendor-Id" value="com.ibm" />\r
1457           <attribute name="Copyright-Info" value="${copyright}" />\r
1458           <attribute name="Sealed" value="false" />\r
1459         </section>\r
1460       </manifest>\r
1461     </jar>\r
1462   </target>\r
1463 \r
1464   <!-- Target for builing Utilities Jar for CLDR -->\r
1465 \r
1466   <target name="cldrUtil" depends="init" description="build Utilities for CLDR">\r
1467     <javac srcdir="${src.dir}" destdir="${build.dir}" source="${icu4j.javac.source}" target="${icu4j.javac.target}" classpathref="build.classpath" debug="on" deprecation="off">\r
1468 \r
1469       <include name="com/ibm/icu/dev/test/TestFmwk.java" />\r
1470       <include name="com/ibm/icu/dev/test/util/*.java" />\r
1471       <include name="com/ibm/icu/dev/tool/UOption.java" />\r
1472     </javac>\r
1473     <jar jarfile="utilities.jar" compress="true" includes="com/ibm/icu/dev/test/util/*.class,com/ibm/icu/dev/test/TestFmwk*.class,com/ibm/icu/dev/test/AbstractTest*.class,com/ibm/icu/dev/test/TestLog*.class,com/ibm/icu/dev/tool/UOption*.class" basedir="${build.dir}">\r
1474       <manifest>\r
1475         <attribute name="Built-By" value="${corp}" />\r
1476         <section name="common">\r
1477           <attribute name="Specification-Title" value="Utilities for CLDR Tools" />\r
1478           <attribute name="Specification-Version" value="${icu4j.spec.version.string}" />\r
1479           <attribute name="Specification-Vendor" value="ICU" />\r
1480           <attribute name="Implementation-Title" value="CLDR Utilities" />\r
1481           <attribute name="Implementation-Version" value="${icu4j.impl.version.string}" />\r
1482           <attribute name="Implementation-Vendor" value="${corp}" />\r
1483           <attribute name="Implementation-Vendor-Id" value="com.ibm" />\r
1484           <attribute name="Copyright-Info" value="${copyright}" />\r
1485           <attribute name="Sealed" value="false" />\r
1486         </section>\r
1487       </manifest>\r
1488     </jar>\r
1489   </target>\r
1490 \r
1491   <!--Target for building jars -->\r
1492   <target name="distJars" depends="jarSrc, jar, jarDocs" />\r
1493 \r
1494   <!-- Target for checking the loading of bundles from the default package.\r
1495           This is hack to get around Eclipse's build problems. \r
1496      -->\r
1497   <target name="defaultPackage" depends="tests" description="Tests for loading resources in the default package">\r
1498     <copy file="${src.dir}/com/ibm/icu/dev/test/util/TestDefaultPackageLoading.jpp" tofile="${src.dir}/TestDefaultPackageLoading.java" />\r
1499     <copy file="${src.dir}/com/ibm/icu/dev/test/util/TestData_en.jpp" tofile="${src.dir}/TestData_en.java" />\r
1500     <javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" source="${icu4j.javac.source}" target="${icu4j.javac.target}" debug="on" deprecation="off">\r
1501 \r
1502       <exclude name="**/CVS/**/*" />\r
1503       <include name="TestData_en.java" />\r
1504       <include name="TestDefaultPackageLoading.java" />\r
1505     </javac>\r
1506     <!-- copy the file to default package and test if we can load it -->\r
1507     <copy file="${build.dir}/com/ibm/icu/dev/data/testdata/te.res" todir="${build.dir}/" />\r
1508     <!-- copy the file up one level and test if java style base name loading works -->\r
1509     <copy file="${build.dir}/com/ibm/icu/dev/data/testdata/te.res" tofile="${build.dir}/com/ibm/icu/dev/data/TestData_bge.res" />\r
1510   </target>\r
1511 \r
1512   <target name="defaultPackageCheck" depends="tests, defaultPackage" description="Run Tests for loading resources in the default package">\r
1513     <!--run the tests -->\r
1514     <java classname="TestDefaultPackageLoading" fork="yes" failonerror="true">\r
1515       <jvmarg line="${test.jvm.args}"/>\r
1516       <arg value="-n" />\r
1517       <classpath>\r
1518         <pathelement path="${java.class.path}/" />\r
1519         <pathelement location="clover.jar" />\r
1520         <pathelement path="${build.dir}" />\r
1521       </classpath>\r
1522     </java>\r
1523   </target>\r
1524 \r
1525   <!-- convert @deprecated @draft tags to @provisional -->\r
1526   <target name="swatDeprecated" depends="initBase, tools" unless="before.java14">\r
1527     <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated" classpath="${build.dir}" failonerror="true">\r
1528       <arg value="-src" />\r
1529       <arg value="${src.dir}" />\r
1530       <arg value="-dst" />\r
1531       <arg value="${src.dir}" />\r
1532       <arg value="-overwrite" />\r
1533       <arg value="-verbose" />\r
1534     </java>\r
1535   </target>\r
1536 \r
1537   <!-- convert @provisional tags to @deprecated -->\r
1538   <target name="restoreDeprecated" depends="initBase, tools" unless="before.java14">\r
1539     <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated" classpath="${build.dir}" failonerror="true">\r
1540       <arg value="-prov" />\r
1541       <arg value="-src" />\r
1542       <arg value="${src.dir}" />\r
1543       <arg value="-dst" />\r
1544       <arg value="${src.dir}" />\r
1545       <arg value="-overwrite" />\r
1546       <arg value="-verbose" />\r
1547     </java>\r
1548   </target>\r
1549 \r
1550 <!-- Eclipse plug-in build targets --> \r
1551   <!-- for building eclipse distribution -->\r
1552   <target name="eclipsePDEBuild"\r
1553           depends="initEclipsePDEBuildEnv, eclipseProjects,normSrc"\r
1554           description="build icu4j plugin files">\r
1555 \r
1556     <!-- copy OSGi jar file to baseLocation -->\r
1557     <mkdir dir="${eclipse.projects.dir}/baseLocation/features"/>\r
1558     <mkdir dir="${eclipse.projects.dir}/baseLocation/plugins"/>\r
1559     <copy toDir="${eclipse.projects.dir}/baseLocation/plugins" file="${eclipse.osgi.jar}"/>\r
1560 \r
1561     <!-- copy PDE build script files and run the build -->\r
1562     <pathconvert property="eclipse.projects.dir.full" dirsep="/">\r
1563       <path location="${basedir}/${eclipse.projects.dir}"/>\r
1564     </pathconvert>\r
1565     <antcall target="runEclipsePDEBuild">\r
1566       <param name="icu.plugin.id" value="com.ibm.icu"/>\r
1567     </antcall>\r
1568     <antcall target="runEclipsePDEBuild">\r
1569       <param name="icu.plugin.id" value="com.ibm.icu.base"/>\r
1570     </antcall>\r
1571     <antcall target="runEclipsePDEBuild">\r
1572       <param name="icu.plugin.id" value="com.ibm.icu.jse4"/>\r
1573     </antcall>\r
1574   </target>\r
1575 \r
1576 \r
1577   <target name="initIcuEclipseVersion" depends="initBase">\r
1578     <tstamp>\r
1579       <format property="build.date" pattern="yyyyMMdd"/>\r
1580     </tstamp>\r
1581     <property name="icu4j.eclipse.build.version.string" value="${icu4j.plugin.impl.version.string}.v${build.date}"/>\r
1582   </target>\r
1583 \r
1584   <target name="eclipseProjects" \r
1585           depends="eclipseCoreProject,eclipseTestProject,eclipseWrapperProject,eclipseFragmentProject"\r
1586           description="create all eclipse icu projects"/>\r
1587 \r
1588   <target name="initEclipsePDEBuildEnv"\r
1589           depends="initBase,initEclipseHome,initEclipseLauncher,initEclipseOSGiJar,initEclipsePDE"\r
1590           description="Initialize eclipse PDE build environment">\r
1591     <echo message="[PDE build configuration properties]"/>\r
1592     <echo message="    Eclipse home:    ${eclipse.home}"/>\r
1593     <echo message="    Launcher jar:    ${eclipse.launcher}"/>\r
1594     <echo message="    OSGi bundle jar: ${eclipse.osgi.jar}"/>\r
1595     <echo message="    Base OS:         ${eclipse.baseos}"/>\r
1596     <echo message="    Base WS:         ${eclipse.basews}"/>\r
1597     <echo message="    Base ARCH:       ${eclipse.basearch}"/>\r
1598   </target>\r
1599 \r
1600   <target name="initEclipseHome"\r
1601           if="env.ECLIPSE_HOME"\r
1602           unless="eclipse.home"\r
1603           description="Initialize the property eclipse.home from the environment variable ECLIPSE_HOME">\r
1604     <property name="eclipse.home" value="${env.ECLIPSE_HOME}"/>\r
1605   </target>\r
1606 \r
1607   <target name="initEclipseLauncher"\r
1608           if="eclipse.home"\r
1609           description="Locate org.eclipse.equinox.launcher jar file for eclipse 3.3 and beyond">\r
1610     <first id="equinox.launcher">\r
1611       <fileset dir="${eclipse.home}/plugins">\r
1612         <include name="org.eclipse.equinox.launcher_*.jar"/>\r
1613       </fileset>\r
1614     </first>\r
1615     <pathconvert property="eclipse.launcher" dirsep="/" refid="equinox.launcher"/>\r
1616   </target>\r
1617 \r
1618   <target name="initEclipseOSGiJar"\r
1619           if="eclipse.home"\r
1620           description="Locate org.eclipse.osgi plugin jar file">\r
1621     <first id="osgi.bundle">\r
1622       <fileset dir="${eclipse.home}/plugins">\r
1623         <include name="org.eclipse.osgi_*.jar"/>\r
1624       </fileset>\r
1625     </first>\r
1626     <pathconvert property="eclipse.osgi.jar" dirsep="/" refid="osgi.bundle"/>\r
1627   </target>\r
1628 \r
1629   <target name="initEclipsePDE"\r
1630           depends="locateEclipsePDE"\r
1631           if="eclipse.pde.dir"\r
1632           description="Set up PDE runtime arguments">\r
1633     <property file="${eclipse.pde.dir}/templates/headless-build/build.properties" prefix="pde.template"/>\r
1634     <property name="eclipse.baseos" value="${pde.template.baseos}"/>\r
1635     <property name="eclipse.basews" value="${pde.template.basews}"/>\r
1636     <property name="eclipse.basearch" value="${pde.template.basearch}"/>\r
1637   </target>\r
1638 \r
1639   <target name="locateEclipsePDE"\r
1640           if="eclipse.home"\r
1641           description="Locate org.eclipse.pde.build plug-in and set the property 'eclipse.pde.dir'">\r
1642     <first id="eclipse.pde.plugin.dir">\r
1643       <dirset dir="${eclipse.home}/plugins">\r
1644         <include name="org.eclipse.pde.build_*"/>\r
1645       </dirset>\r
1646     </first>\r
1647     <pathconvert property="eclipse.pde.dir" dirsep="/" refid="eclipse.pde.plugin.dir"/>\r
1648   </target>\r
1649 \r
1650   <target name="runEclipsePDEBuild">\r
1651     <mkdir dir="${eclipse.projects.dir}/buildScripts/${icu.plugin.id}"/>\r
1652       <copy toDir="${eclipse.projects.dir}/buildScripts/${icu.plugin.id}">\r
1653         <fileset dir="${eclipse.dir}/pdebuild" includes="**/*"/>\r
1654           <filterset>\r
1655             <filter token="PLUGIN_ID" value="${icu.plugin.id}"/>\r
1656             <filter token="BUILD_DIR" value="${eclipse.projects.dir.full}"/>\r
1657             <filter token="BUILD_TYPE" value="ICU4J"/>\r
1658             <filter token="BUILD_ID" value="${icu.plugin.id}"/>\r
1659             <filter token="BASE_LOCATION" value="${eclipse.projects.dir.full}/baseLocation"/>\r
1660             <filter token="BASE_OS" value="${eclipse.baseos}"/>\r
1661             <filter token="BASE_WS" value="${eclipse.basews}"/>\r
1662             <filter token="BASE_ARCH" value="${eclipse.basearch}"/>\r
1663           </filterset>\r
1664       </copy>\r
1665 \r
1666       <java jar="${eclipse.launcher}" fork="true" failonerror="true">\r
1667         <arg value="-application"/>\r
1668         <arg value="org.eclipse.ant.core.antRunner"/>\r
1669         <arg value="-buildfile"/>\r
1670         <arg value="${eclipse.pde.dir}/scripts/build.xml"/>\r
1671         <arg value="-Dbuilder=${eclipse.projects.dir.full}/buildScripts/${icu.plugin.id}"/>\r
1672       </java>\r
1673   </target>\r
1674 \r
1675   <target name="eclipseMangle" depends="buildMangle">\r
1676     <antcall target="doMangle">\r
1677       <param name="mangler.args" value="-dFOUNDATION10 @preprocessor.txt"/>\r
1678     </antcall>\r
1679   </target>\r
1680 \r
1681   <target name="eclipseCoreProject"\r
1682           depends="initIcuEclipseVersion,eclipseMangle,coreData,icudata,durationdata,indices"\r
1683           description="gather eclipse icu core project files">\r
1684     <delete failonerror="no">\r
1685       <fileset dir="${eclipse.projects.dir}/plugins/com.ibm.icu" />\r
1686       <fileset dir="${eclipse.projects.dir}/features/com.ibm.icu" />\r
1687     </delete>\r
1688 \r
1689     <!-- PLUGIN FILES -->\r
1690     <!-- icu source -->\r
1691     <copy toDir="${eclipse.projects.dir}/plugins/com.ibm.icu/src/com/ibm/icu">\r
1692       <fileset dir="src/com/ibm/icu"\r
1693                includes="impl/**/*,lang/**/*,math/**/*,text/**/*,util/**/*"\r
1694                excludes="**/.svn/**/*,**/*.jar,**/Transliterator_Han_Latin*.txt" />\r
1695     </copy>\r
1696     <!-- overwriting the ICU runtime configuration file for forcing ICU4J plugin to use JDK time zone rules -->\r
1697     <copy file="${eclipse.dir}/misc/ICUConfig.properties"\r
1698       toDir="${eclipse.projects.dir}/plugins/com.ibm.icu/src/com/ibm/icu"\r
1699       overwrite="true"/>\r
1700     <!-- icu data -->\r
1701     <copy todir="${eclipse.projects.dir}/plugins/com.ibm.icu/src/com/ibm/icu/impl/data">\r
1702       <fileset dir="${build.dir}/com/ibm/icu/impl/data"\r
1703                includes="**/*.brk,**/*.icu,**/*.res,**/*.spp,**/*.txt,**/*.ctd"\r
1704                excludes="**/Transliterator_Han_Latin*.txt" />\r
1705     </copy>\r
1706     <!-- plugin project -->\r
1707     <copy todir="${eclipse.projects.dir}/plugins/com.ibm.icu">\r
1708       <fileset dir="${eclipse.dir}/plugins/com.ibm.icu" excludes="**/.svn/**/*" />\r
1709       <filterset>\r
1710         <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />\r
1711         <filter token="COPYRIGHT" value="${copyright.eclipse}" />\r
1712         <filter token="IMPL_VERSION" value="${icu4j.impl.version.string}" />\r
1713         <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />\r
1714       </filterset>\r
1715     </copy>\r
1716     <!-- license -->\r
1717     <copy file="license.html"\r
1718           todir="${eclipse.projects.dir}/plugins/com.ibm.icu/about_files" />\r
1719     <!-- ucd terms -->\r
1720     <copy file="src/com/ibm/icu/dev/data/unicode/ucdterms.txt"\r
1721           todir="${eclipse.projects.dir}/plugins/com.ibm.icu/about_files" />\r
1722     <!-- about -->\r
1723     <copy file="${eclipse.dir}/misc/about_icu.html"\r
1724           tofile="${eclipse.projects.dir}/plugins/com.ibm.icu/about.html" />\r
1725 \r
1726     <!-- FEATURE FILES -->\r
1727     <copy todir="${eclipse.projects.dir}/features/com.ibm.icu">\r
1728       <fileset dir="${eclipse.dir}/features/com.ibm.icu" excludes="**/.svn/**/*" />\r
1729       <filterset>\r
1730         <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />\r
1731         <filter token="COPYRIGHT" value="${copyright.eclipse}" />\r
1732         <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />\r
1733       </filterset>\r
1734     </copy>\r
1735   </target>\r
1736 \r
1737   <target name="eclipseWrapperProject"\r
1738           depends="initIcuEclipseVersion"\r
1739           description="gather eclipse icu core project files">\r
1740     <delete failonerror="no">\r
1741       <fileset dir="${eclipse.projects.dir}/plugins/com.ibm.icu.base" />\r
1742       <fileset dir="${eclipse.projects.dir}/plugins/com.ibm.icu.base.tests" />\r
1743       <fileset dir="${eclipse.projects.dir}/features/com.ibm.icu.base" />\r
1744     </delete>\r
1745     <!-- PLUGIN FILES -->\r
1746     <!-- source and project files -->\r
1747     <copy todir="${eclipse.projects.dir}/plugins">\r
1748       <fileset dir="${eclipse.dir}/plugins"\r
1749                includes="com.ibm.icu.base/**/*,com.ibm.icu.base.tests/**/*"\r
1750                excludes="**/.svn/**/*" />\r
1751       <filterset>\r
1752         <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />\r
1753         <filter token="COPYRIGHT" value="${copyright.eclipse}" />\r
1754         <filter token="IMPL_VERSION" value="${icu4j.impl.version.string}" />\r
1755         <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />\r
1756       </filterset>\r
1757     </copy>\r
1758     <!-- license -->\r
1759     <copy file="license.html"\r
1760           todir="${eclipse.projects.dir}/plugins/com.ibm.icu.base/about_files" />\r
1761     <!-- about -->\r
1762     <copy file="${eclipse.dir}/misc/about_icu_base.html"\r
1763           tofile="${eclipse.projects.dir}/plugins/com.ibm.icu.base/about.html" />\r
1764 \r
1765     <!-- FEATURE FILES -->\r
1766     <!-- project files -->\r
1767     <copy todir="${eclipse.projects.dir}/features/com.ibm.icu.base">\r
1768       <fileset dir="${eclipse.dir}/features/com.ibm.icu.base"\r
1769                excludes="**/.svn/**/*"/>\r
1770       <filterset>\r
1771       <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />\r
1772         <filter token="COPYRIGHT" value="${copyright.eclipse}" />\r
1773         <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />\r
1774       </filterset>\r
1775     </copy>\r
1776   </target>\r
1777 \r
1778   <target name="eclipseTestProject"\r
1779           depends="eclipseMangle"\r
1780           description="gather eclipse icu test project files">\r
1781     <delete failonerror="no">\r
1782       <fileset dir="${eclipse.projects.dir}/plugins/com.ibm.icu.tests"/>\r
1783     </delete>\r
1784     <!-- copy eclipse test source and project files -->\r
1785     <copy toDir="${eclipse.projects.dir}/plugins/com.ibm.icu.tests">\r
1786       <fileset  dir="${eclipse.dir}/plugins/com.ibm.icu.tests"\r
1787                 excludes="**/.svn/**/"/>\r
1788       <filterset>\r
1789         <filter token="COPYRIGHT" value="${copyright.eclipse}"/>\r
1790       </filterset>\r
1791     </copy>\r
1792 \r
1793     <copy toDir="${eclipse.projects.dir}/plugins/com.ibm.icu.tests/src/com/ibm/icu/dev/test">\r
1794       <fileset dir="src/com/ibm/icu/dev/test"\r
1795                includes="**/*.*"\r
1796                excludes="**/.svn/**/*,charset/**/*.*,perf/**/*.*" />\r
1797     </copy>\r
1798 \r
1799     <!-- test data -->\r
1800     <copy toDir="${eclipse.projects.dir}/plugins/com.ibm.icu.tests/src/com/ibm/icu/dev/data">\r
1801       <fileset dir="src/com/ibm/icu/dev/data"\r
1802                includes="**/*.*"\r
1803                excludes="**/.svn/**/*,testdata.jar"/>\r
1804     </copy>\r
1805     <unjar src="${src.dir}/com/ibm/icu/dev/data/testdata.jar"\r
1806            dest="${eclipse.projects.dir}/plugins/com.ibm.icu.tests/src" />\r
1807   </target>\r
1808 \r
1809   <target name="eclipseFragmentMangle" depends="buildMangle">\r
1810     <antcall target="initSrc"/>\r
1811     <antcall target="doMangle">\r
1812       <param name="mangler.args" value="-dECLIPSE_FRAGMENT @eclipseFragment.txt"/>\r
1813     </antcall>\r
1814   </target>\r
1815 \r
1816   <target name="eclipseFragmentProject"\r
1817           depends="eclipseFragmentMangle,initIcuEclipseVersion"\r
1818           description="gather eclipse icu fragment project files">\r
1819     <delete failonerror="no">\r
1820       <fileset dir="${eclipse.projects.dir}/plugins/com.ibm.icu.jse4" />\r
1821       <fileset dir="${eclipse.projects.dir}/features/com.ibm.icu.jse4" />\r
1822     </delete>\r
1823 \r
1824     <!-- PLUGIN FILES -->\r
1825     <!-- source -->\r
1826     <copy toDir="${eclipse.projects.dir}/plugins/com.ibm.icu.jse4/src">\r
1827       <!-- TODO: Better way to collect files? -->\r
1828       <fileset dir="${src.dir}">\r
1829         <include name="com/ibm/icu/impl/DateNumberFormat.java" />\r
1830         <include name="com/ibm/icu/impl/duration/BasicDurationFormat.java" />\r
1831         <include name="com/ibm/icu/impl/ICUResourceBundleReader.java" />\r
1832         <include name="com/ibm/icu/impl/PatternTokenizer.java" />\r
1833         <include name="com/ibm/icu/impl/Utility.java" />\r
1834         <include name="com/ibm/icu/lang/UCharacter.java" />\r
1835         <include name="com/ibm/icu/math/BigDecimal.java" />\r
1836         <include name="com/ibm/icu/text/Bidi.java" />\r
1837         <include name="com/ibm/icu/text/ChineseDateFormat.java" />\r
1838         <include name="com/ibm/icu/text/DateFormat.java" />\r
1839         <include name="com/ibm/icu/text/DateTimePatternGenerator.java" />\r
1840         <include name="com/ibm/icu/text/DecimalFormat.java" />\r
1841         <include name="com/ibm/icu/text/DigitList.java" />\r
1842         <include name="com/ibm/icu/text/MessageFormat.java" />\r
1843         <include name="com/ibm/icu/text/NumberFormat.java" />\r
1844         <include name="com/ibm/icu/text/RuleBasedBreakIterator.java" />\r
1845         <include name="com/ibm/icu/text/RuleBasedNumberFormat.java" />\r
1846         <include name="com/ibm/icu/text/SimpleDateFormat.java" />\r
1847         <include name="com/ibm/icu/text/UnicodeSet.java" />\r
1848         <include name="com/ibm/icu/text/UTF16.java" />\r
1849       </fileset>\r
1850     </copy>\r
1851     <!-- project files -->\r
1852     <copy todir="${eclipse.projects.dir}/plugins/com.ibm.icu.jse4">\r
1853       <fileset  dir="${eclipse.dir}/plugins/com.ibm.icu.jse4"\r
1854                 excludes="**/.svn/**/*" />\r
1855       <filterset>\r
1856         <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />\r
1857         <filter token="COPYRIGHT" value="${copyright.eclipse}" />\r
1858         <filter token="IMPL_VERSION" value="${icu4j.impl.version.string}" />\r
1859         <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />\r
1860       </filterset>\r
1861     </copy>\r
1862     <!-- license -->\r
1863     <copy file="license.html"\r
1864           todir="${eclipse.projects.dir}/plugins/com.ibm.icu.jse4/about_files" />\r
1865     <!-- ucd terms -->\r
1866     <copy file="src/com/ibm/icu/dev/data/unicode/ucdterms.txt"\r
1867           todir="${eclipse.projects.dir}/plugins/com.ibm.icu.jse4/about_files" />\r
1868     <!-- about -->\r
1869     <copy file="${eclipse.dir}/misc/about_icu.html"\r
1870           tofile="${eclipse.projects.dir}/plugins/com.ibm.icu.jse4/about.html" />\r
1871 \r
1872     <!-- FEATURE FILES -->\r
1873     <!-- project files -->\r
1874     <copy todir="${eclipse.projects.dir}/features/com.ibm.icu.jse4">\r
1875       <fileset  dir="${eclipse.dir}/features/com.ibm.icu.jse4"\r
1876                 excludes="**/.svn/**/*" />\r
1877       <filterset>\r
1878         <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />\r
1879         <filter token="COPYRIGHT" value="${copyright.eclipse}" />\r
1880         <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />\r
1881       </filterset>\r
1882     </copy>\r
1883   </target>\r
1884 \r
1885   <target name="gatherICU4JWrapperAPI" depends="tools" unless="before.java14">\r
1886     <javadoc classpath="${build.dir}" sourcepath="${src.dir}" packagenames="com.ibm.icu.text,com.ibm.icu.util" source="1.4">\r
1887       <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIData" path="${build.dir}">\r
1888         <param name="-name" value="ICU4J ${icu4j.version.number}" />\r
1889         <param name="-base" value="com.ibm.icu" />\r
1890         <param name="-output" value="${api.dir}/icu4j${icu4j.version.number}w_i.api" />\r
1891         <param name="-filter" value="BreakIterator|CollationKey|Collator|DateFormat|DecimalFormat|MessageFormat|NumberFormat|SimpleDateFormat|StringTokenizer|Calendar|TimeZone|ULocale|DateFormatSymbols|DecimalFormatSymbols|Calendar|TimeZone" />\r
1892         <!-- param name="-gzip"/ -->\r
1893       </doclet>\r
1894     </javadoc>\r
1895   </target>\r
1896 \r
1897   <target name="gatherEclipseWrapperAPI" depends="tools" unless="before.java14">\r
1898     <javadoc classpath="${build.dir}" sourcepath="${src.dir}/com/ibm/icu/dev/eclipse/com.ibm.icu.base/src" packagenames="com.ibm.icu.text,com.ibm.icu.util" source="1.4">\r
1899       <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIData" path="${build.dir}">\r
1900         <param name="-name" value="ICU4J ${icu4j.version.number} Wrapper" />\r
1901         <param name="-base" value="com.ibm.icu" />\r
1902         <param name="-output" value="${api.dir}/icu4j${icu4j.version.number}w_e.api" />\r
1903         <!-- param name="-gzip"/ -->\r
1904       </doclet>\r
1905     </javadoc>\r
1906   </target>\r
1907 \r
1908   <target name="reportWrapperAPI" depends="tools" unless="before.java14">\r
1909     <java classname="com.ibm.icu.dev.tool.docs.ReportAPI" classpath="${build.dir}" failonerror="true">\r
1910       <arg value="-old:" />\r
1911       <arg value="${api.dir}/icu4j${icu4j.previous.version.number}w_i.api" />\r
1912       <arg value="-new:" />\r
1913       <arg value="${api.dir}/icu4j${icu4j.version.number}w_e.api" />\r
1914       <arg value="-html" />\r
1915       <arg value="-out:" />\r
1916       <arg value="${api.dir}/icu4j_compare_${icu4j.previous.version.number}_wrapper_java.html" />\r
1917     </java>\r
1918   </target>\r
1919 \r
1920 <!-- Test suite launcher targets -->\r
1921   <target name="runCheck" depends="tests">\r
1922     <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">\r
1923       <jvmarg line="${test.jvm.args}"/>\r
1924       <arg value="-n" />\r
1925       <classpath>\r
1926         <pathelement path="${java.class.path}/" />\r
1927         <pathelement location="${jar.file}" />\r
1928         <pathelement location="${charsets.jar.file}" />\r
1929         <pathelement location="clover.jar" />\r
1930         <pathelement path="${build.dir}" />\r
1931       </classpath>\r
1932     </java>\r
1933   </target>\r
1934 \r
1935 <!-- ICU TimeZone Update Utility targets -->\r
1936   <target name="icutzu" depends="init" description="build ICU4J TimeZone Update Utility Classes">\r
1937     <javac includes="${tzu.src.path}/**/*.java" excludes="**/.svn/**/*" srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" source="${icu4j.javac.source}" target="${icu4j.javac.target}" debug="on" deprecation="off" encoding="ascii" />\r
1938   </target>\r
1939 \r
1940   <target name="icutzudata" depends="initBase, jar">\r
1941     <mkdir dir="${tzu.bin.dir}" />\r
1942     <copy todir="${tzu.bin.dir}">\r
1943       <fileset dir="${src.dir}/${tzu.src.path}">\r
1944         <include name="*.cmd" />\r
1945         <include name="*.bat" />\r
1946         <include name="*.sh" />\r
1947         <include name="*.gif" />\r
1948         <include name="*.txt" />\r
1949         <include name="*.html" />\r
1950         <include name="*.css" />\r
1951       </fileset>\r
1952       <fileset file="${basedir}/${jar.file}" />\r
1953       <fileset file="${build.dir}/${icu4j.data.path}/zoneinfo.res" />\r
1954       <fileset file="${build.dir}/${icu4j.data.path}/metazoneInfo.res" />\r
1955     </copy>\r
1956   </target>\r
1957 \r
1958   <target name="icutzujar" depends="initBase, icutzu, icutzudata" description="build ICU4J TimeZone Update Utility classes">\r
1959     <jar jarfile="${tzu.bin.dir}/${tzu.jar.file}" compress="true">\r
1960       <fileset dir="${basedir}" includes="license.html" />\r
1961       <fileset dir="${build.dir}" includes="${tzu.src.path}/**/*.class" />\r
1962       <manifest>\r
1963         <attribute name="Main-Class" value="com.ibm.icu.dev.tool.tzu.ICUTZUMain" />\r
1964         <attribute name="Built-By" value="${corp}" />\r
1965         <section name="common">\r
1966           <attribute name="Specification-Title" value="ICU4J TimeZone Update Utility" />\r
1967           <attribute name="Specification-Version" value="${icu4j.spec.version.string}" />\r
1968           <attribute name="Specification-Vendor" value="ICU" />\r
1969           <attribute name="Implementation-Title" value="ICUTZU" />\r
1970           <attribute name="Implementation-Version" value="${icu4j.impl.version.string}" />\r
1971           <attribute name="Implementation-Vendor" value="${corp}" />\r
1972           <attribute name="Implementation-Vendor-Id" value="com.ibm" />\r
1973           <attribute name="Copyright-Info" value="${copyright}" />\r
1974           <attribute name="Sealed" value="false" />\r
1975         </section>\r
1976       </manifest>\r
1977     </jar>\r
1978     <echo message="Please see ${tzu.bin.dir} directory for the files." />\r
1979   </target>\r
1980 \r
1981   <target name="icutzucheck" depends="icutzujar" description="check ICU4J TimeZone Update Utility">\r
1982     <echo>Testing ICUTZU ...</echo>\r
1983 \r
1984     <mkdir dir="${tzu.temp.dir}" />\r
1985     <move todir="${tzu.temp.dir}">\r
1986       <fileset file="${tzu.bin.dir}/DirectorySearch.txt" />\r
1987       <fileset file="${tzu.bin.dir}/zoneinfo.res" />\r
1988       <fileset file="${tzu.bin.dir}/metazoneInfo.res" />\r
1989     </move>\r
1990 \r
1991     <echo file="${tzu.bin.dir}/DirectorySearch.txt">+${tzu.test.dir}</echo>\r
1992     <get dest="${tzu.bin.dir}/zoneinfo.res" src="http://icu-project.org/tzdata/2008d/be/zoneinfo.res" />\r
1993     <get dest="${tzu.bin.dir}/metazoneInfo.res" src="http://icu-project.org/tzdata/2008d/be/metazoneInfo.res" />\r
1994     <copy todir="${tzu.test.dir}" file="${tzu.bin.dir}/icu4j.jar" />\r
1995 \r
1996     <echo>Running ICUTZU in Discovery Mode ...</echo>\r
1997     <exec dir="${tzu.bin.dir}" executable="${java.home}/bin/java">\r
1998       <arg value="-cp" />\r
1999       <arg path="${tzu.bin.dir}/${jar.file};${tzu.bin.dir}/${tzu.jar.file}" />\r
2000       <arg value="-Dnogui=true" />\r
2001       <arg value="-Ddiscoveronly=true" />\r
2002       <arg value="-Dsilentpatch=true" />\r
2003       <arg value="-Doffline=true" />\r
2004       <arg value="com.ibm.icu.dev.tool.tzu.ICUTZUMain" />\r
2005       <arg file="${tzu.bin.dir}" />\r
2006       <arg value="DirectorySearch.txt" />\r
2007       <arg value="ICUList.txt" />\r
2008       <arg value="zoneinfo.res" />\r
2009       <arg value="Temp" />\r
2010       <arg value="icu.gif" />\r
2011     </exec>\r
2012 \r
2013     <echo>Running ICUTZU in Patch Mode ...</echo>\r
2014     <exec dir="${tzu.bin.dir}" executable="${java.home}/bin/java">\r
2015       <arg value="-cp" />\r
2016       <arg path="${tzu.bin.dir}/${jar.file};${tzu.bin.dir}/${tzu.jar.file}" />\r
2017       <arg value="-Dnogui=true" />\r
2018       <arg value="-Ddiscoveronly=false" />\r
2019       <arg value="-Dsilentpatch=true" />\r
2020       <arg value="-Doffline=true" />\r
2021       <arg value="com.ibm.icu.dev.tool.tzu.ICUTZUMain" />\r
2022       <arg file="${tzu.bin.dir}" />\r
2023       <arg value="DirectorySearch.txt" />\r
2024       <arg value="ICUList.txt" />\r
2025       <arg value="zoneinfo.res" />\r
2026       <arg value="Temp" />\r
2027       <arg value="icu.gif" />\r
2028     </exec>\r
2029 \r
2030     <echo>Comparing results ...</echo>\r
2031     <unjar src="${tzu.test.dir}/${jar.file}" dest="${tzu.test.dir}">\r
2032       <patternset>\r
2033         <include name="**/zoneinfo.res" />\r
2034         <include name="**/metazoneInfo.res" />\r
2035       </patternset>\r
2036     </unjar>\r
2037     <copy todir="${tzu.test.dir}" file="${tzu.test.dir}/${icu4j.data.path}/zoneinfo.res" />\r
2038     <copy todir="${tzu.test.dir}" file="${tzu.test.dir}/${icu4j.data.path}/metazoneInfo.res" />\r
2039 \r
2040     <condition property="tzu.zoneinfo.match">\r
2041       <filesmatch file1="${tzu.bin.dir}/zoneinfo.res" file2="${tzu.test.dir}/zoneinfo.res" />\r
2042     </condition>\r
2043     <fail unless="tzu.zoneinfo.match">ICUTZU test failed. ${tzu.bin.dir}/zoneinfo.res does not match ${tzu.test.dir}/zoneinfo.res</fail>\r
2044 \r
2045     <condition property="tzu.metazoneinfo.match">\r
2046       <filesmatch file1="${tzu.bin.dir}/metazoneInfo.res" file2="${tzu.test.dir}/metazoneInfo.res" />\r
2047     </condition>\r
2048     <fail unless="tzu.metazoneinfo.match">ICUTZU test failed. ${tzu.bin.dir}/metazoneInfo.res does not match ${tzu.test.dir}/metazoneInfo.res</fail>\r
2049 \r
2050     <echo>Cleaning up ...</echo>\r
2051     <move todir="${tzu.bin.dir}">\r
2052       <fileset file="${tzu.temp.dir}/DirectorySearch.txt" />\r
2053       <fileset file="${tzu.temp.dir}/zoneinfo.res" />\r
2054       <fileset file="${tzu.temp.dir}/metazoneInfo.res" />\r
2055     </move>\r
2056     <delete includeEmptyDirs="true">\r
2057         <fileset file="${tzu.temp.dir}" />\r
2058         <fileset dir="${tzu.test.dir}" />\r
2059     </delete>\r
2060     <echo>ICUTZU test successful.</echo>\r
2061   </target>\r
2062 \r
2063   <target name="icutzusrc-dist" depends="init" description="ICUTZU source distributable zip">\r
2064     <zip zipfile="${basedir}/${tzu.src.zip.file}" basedir="${basedir}" includes="${src.dir}/${tzu.src.path}/**/*" />\r
2065   </target>\r
2066 \r
2067   <target name="icutzubin-dist" depends="icutzujar" description="ICUTZU binaries distributable zip">\r
2068     <zip zipfile="${basedir}/${tzu.bin.zip.file}" basedir="${tzu.bin.dir}" includes="*" />\r
2069   </target>\r
2070 </project>\r