• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!-- see readme.txt -->
2
3
4<project name="CLDR" default="util" basedir=".">
5	<target name="init">
6		<tstamp />
7		<property name="src.dir" value="." />
8		<property name="build.dir" value="classes" />
9		<property name="libs.dir" value="libs" />
10		<property name="jar.file" value="cldr.jar" />
11		<property name="jarSrc.file" value="cldr-src.jar" />
12		<property name="jarDocs.file" value="cldr-docs.jar" />
13		<property name="doc.dir" value="doc" />
14		<property name="doc.params" value="" />
15		<!-- Load local definitions from an optional build.properties file, if
16			available. build.properties is NOT checked into CVS. -->
17		<property file="build.properties" />
18		<!-- Load environment variables -->
19		<property environment="env" />
20
21		<path id="build.classpath">
22			<pathelement path="${build.dir}" />
23			<pathelement path="${libs.dir}" />
24		</path>
25
26		<property name="CLDR_TOOLS" value="." /> <!-- this is cldr-tools -->
27		<property name="CLDR_DIR" value="${env.CLDR_DIR}" />
28		<property file="${CLDR_TOOLS}/cldr-tools.properties" />
29		<property name="JVM_OPTIONS"
30			value="-DCLDR_DIR=${CLDR_DIR} -DDEBUG=false -Dverbose=false" />
31		<!-- JVM_EXTRA_OPTIONS might be resolved in the next priority order:
32			1) System property JVM_EXTRA_OPTIONS specified by ant command arg: ant -DJVM_EXTRA_OPTIONS=xxx <target>
33			2) JVM_EXTRA_OPTIONS=xxx in build.properties
34			3) Environment variable - JVM_EXTRA_OPTIONS=xxx
35			4) Final fallback - "-Xmx6g" below -->
36		<property name="env.JVM_EXTRA_OPTIONS" value="-Xmx6g" />
37		<property name="JVM_EXTRA_OPTIONS" value="${env.JVM_EXTRA_OPTIONS}" />
38		<property name="jvm_options" value="${JVM_OPTIONS} ${JVM_EXTRA_OPTIONS}" />
39
40		<property name="tooltmp.dir" value="tmp" />
41
42		<mkdir dir="${build.dir}" />
43
44		<path id="project.class.path">
45			<pathelement path="${java.class.path}/" />
46			<pathelement path="${build.dir}" />
47			<fileset dir="${libs.dir}" includes="*.jar" /> <!-- unittest local -->
48		</path>
49		<echo message="java home: ${java.home}" />
50		<echo message="java version: ${java.version}" />
51		<echo message="jvm_options: ${jvm_options}" />
52		<echo message="ant java version: ${ant.java.version}" />
53		<echo message="${ant.version}" />
54		<echo message="java.class.path: ${java.class.path}/" />
55		<echo message="java.class.path: ${java.class.path}/" />
56		<echo message="build.dir: ${build.dir}" />
57	</target>
58
59	<!-- build everything but dist-related stuff -->
60	<target name="all" depends="util,ant-plugin,tool,posix,icu,json,test"
61		description="build all primary targets" />
62	<target name="ant-plugin" depends="init" description="build utility classes">
63		<javac includeantruntime="false" includes="org/unicode/cldr/ant/*.java"
64			excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}"
65			classpathref="project.class.path" source="1.8" target="1.8" debug="on"
66			deprecation="off" encoding="UTF-8" />
67	</target>
68	<target name="util" depends="init" description="build utility classes">
69		<javac includeantruntime="false"
70			includes="org/unicode/cldr/draft/**/*.java org/unicode/cldr/util/**/*.java com/**/*.java"
71			excludes="**/CVS/**/* org/unicode/cldr/draft/Ids.java" srcdir="${src.dir}"
72			destdir="${build.dir}" classpathref="project.class.path" source="1.8"
73			target="1.8" debug="on" deprecation="off" encoding="UTF-8" />
74		<!-- copy data files into classes.. -->
75		<mkdir dir="${build.dir}/org/unicode/cldr/util/data" />
76		<copy todir="${build.dir}/org/unicode/cldr/util/data">
77			<fileset dir="${src.dir}/org/unicode/cldr/util/data"
78				excludes="**/CVS/**/*" />
79		</copy>
80	</target>
81	<target name="tool" depends="init,util" description="build tool classes">
82		<javac includeantruntime="false" includes="org/unicode/cldr/tool/**/*.java"
83			excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}"
84			classpathref="project.class.path" source="1.8" target="1.8" debug="on"
85			deprecation="off" encoding="UTF-8" />
86		<!-- copy data files into classes.. -->
87		<mkdir dir="${build.dir}/org/unicode/cldr/tool" />
88		<copy todir="${build.dir}/org/unicode/cldr/tool">
89			<fileset dir="${src.dir}/org/unicode/cldr/tool" excludes="**/CVS/**/* **/**/*.java" />
90		</copy>
91	</target>
92	<target name="posix" depends="init,util" description="build posix conversion tool">
93		<javac includeantruntime="false" includes="org/unicode/cldr/posix/**/*.java"
94			excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}"
95			classpathref="project.class.path" source="1.8" target="1.8" debug="on"
96			deprecation="off" encoding="UTF-8" />
97	</target>
98	<target name="icu" depends="init, ant-plugin, util" description="build ICU conversion tool">
99		<javac includeantruntime="false" includes="org/unicode/cldr/icu/**/*.java"
100			excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}"
101			classpathref="project.class.path" source="1.8" target="1.8" debug="on"
102			deprecation="off" encoding="UTF-8" />
103		<!-- copy data files into classes.. -->
104		<mkdir dir="${build.dir}/org/unicode/cldr/icu" />
105		<copy todir="${build.dir}/org/unicode/cldr/icu">
106			<fileset dir="${src.dir}/org/unicode/cldr/icu" excludes="**/CVS/**/* **/**/*.java" />
107		</copy>
108	</target>
109	<target name="json" depends="init, ant-plugin, util"
110		description="build json conversion tool">
111		<javac includeantruntime="false" includes="org/unicode/cldr/json/**/*.java"
112			excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}"
113			classpathref="project.class.path" source="1.8" target="1.8" debug="on"
114			deprecation="off" encoding="UTF-8" />
115		<!-- copy data files into classes.. -->
116		<mkdir dir="${build.dir}/org/unicode/cldr/json" />
117		<copy todir="${build.dir}/org/unicode/cldr/json">
118			<fileset dir="${src.dir}/org/unicode/cldr/json" excludes="**/CVS/**/* **/**/*.java" />
119		</copy>
120	</target>
121	<target name="test" depends="init,util,tool,icu" description="build tests">
122		<javac includeantruntime="false" includes="org/unicode/cldr/test/**/*.java "
123			excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}"
124			classpathref="project.class.path" source="1.8" target="1.8" debug="on"
125			deprecation="off" encoding="UTF-8" />
126		<!-- copy data files into classes.. -->
127		<mkdir dir="${build.dir}/org/unicode/cldr/test" />
128		<copy todir="${build.dir}/org/unicode/cldr/test">
129			<fileset dir="${src.dir}/org/unicode/cldr/test" excludes="**/CVS/**/* **/**/*.java" />
130		</copy>
131	</target>
132	<target name="clean" depends="init" description="remove all build targets">
133		<delete dir="${build.dir}" />
134		<delete file="${jar.file}" />
135	</target>
136
137	<target name="jars" depends="jar,srcJar,docsJar" description="build all jars"/>
138
139	<target name="jar" depends="all" description="build full 'cldr.jar' jar file">
140		<jar jarfile="${jar.file}" compress="true"
141			includes="org/unicode/cldr/draft/**/*,
142        		org/unicode/cldr/util/**/*,
143        		org/unicode/cldr/tool/**/*,
144        		org/unicode/cldr/test/**/*,
145        		org/unicode/cldr/posix/**/*,
146        		org/unicode/cldr/ant/**/*,
147        		org/unicode/cldr/json/**/*,
148        		org/unicode/cldr/icu/**/*,
149        		com/ibm/icu/**/*"
150			basedir="${build.dir}">
151			<manifest>
152				<attribute name="Built-By" value="${user.name}" />
153				<attribute name="Main-Class" value="org.unicode.cldr.tool.Main" />
154				<attribute name="Class-Path"
155					value="./libs/${cldr.libs.icu4j} ./libs/${cldr.libs.utilities} ./libs/${cldr.libs.xerces} ./libs/${cldr.libs.guava} ./libs/${cldr.libs.gson} ${cldr.libs.icu4j} ${cldr.libs.utilities} ${cldr.libs.xerces} ${cldr.libs.gson}" />
156			</manifest>
157		</jar>
158	</target>
159	<!-- Docs stuff -->
160	<!-- use excludefiles below when we move to ant 1.5 -->
161	<target name="docs" depends="init" description="build user javadoc">
162		<tstamp>
163			<format property="current.year" pattern="yyyy" />
164		</tstamp>
165		<echo message="doc params: ${doc.params}" />
166		<mkdir dir="${doc.dir}" />
167		<javadoc packagenames="org.unicode.cldr.*" sourcepath="${src.dir}"
168			destdir="${doc.dir}" classpathref="project.class.path"
169			nodeprecatedlist="true" windowtitle="CLDR | Java Tools" doctitle="CLDR | Java Tools"
170			encoding="utf-8" docencoding="utf-8" additionalparam="${doc.params}"
171			link="http://docs.oracle.com/javase/7/docs/api"
172			bottom="&lt;font size=-1>&lt;a  target='_top' href='http://www.unicode.org/copyright.html'>Copyright &amp;copy; 2004-${current.year} Unicode, Inc. All Rights Reserved.&lt;/a>&lt;/font>"
173			source="1.8"  />
174		<!-- bottom="&lt;font size=-1>Copyright (c) ${current.year} IBM Corporation
175			and others.&lt;/font>" -->
176	</target>
177
178	<target name="docsJar" depends="docs">
179        <jar jarfile="${jarDocs.file}" compress="true" basedir="${doc.dir}">
180			<fileset dir="../.." includes="*LICENSE*,*license*"/>
181		</jar>
182	</target>
183	<target name="srcJar" depends="init" description="Build all *.jars (tools/docs/src)">
184        <jar jarfile="${jarSrc.file}" compress="true">
185			<fileset dir="org" includes="**/*.java"/>
186			<fileset dir="com" includes="**/*.java"/>
187			<fileset dir="../.." includes="*LICENSE*,*license*"/>
188		</jar>
189	</target>
190
191	<!-- for testing and development -->
192	<target name="icu4c" depends="init, ant-plugin, icu">
193		<ant dir="${env.ICU4C_DIR}/source/data" antfile="build.xml"
194			target="all" />
195	</target>
196
197
198	<target name="check">
199		<fail
200			message="*** Note! unittests have moved to ../cldr-unittest - please try there. See: http://unicode.org/cldr/trac/ticket/5215" />
201	</target>
202
203
204	<target name="GenerateMaximalLocales" depends="init"
205		description="Build likelySubtags.xml and supplementalMetadata.xml - see https://sites.google.com/site/cldr/development/updating-codes/likelysubtags">
206		<antcall target="_runTool">
207			<param name="runTool.class" value="org.unicode.cldr.tool.GenerateMaximalLocales" />
208			<param name="runTool.arg" value="" />
209			<param name="runTool.jvmarg" value="${jvm_options}" />
210		</antcall>
211		<antcall target="_toolcopy" />
212	</target>
213
214	<target name="AddPopulationData" depends="init"
215		description="test population data - see https://sites.google.com/site/cldr/development/updating-codes/update-language-script-info ">
216		<antcall target="_runTool">
217			<param name="runTool.class" value="org.unicode.cldr.tool.AddPopulationData" />
218			<param name="runTool.arg" value="" />
219			<param name="runTool.jvmarg" value="${jvm_options} -DADD_POP=true" />
220		</antcall>
221	</target>
222
223	<target name="ConvertLanguageData" depends="init"
224		description="convert population data - updates supplementalData.xml -  see https://sites.google.com/site/cldr/development/updating-codes/update-language-script-info">
225		<antcall target="_runTool">
226			<param name="runTool.class" value="org.unicode.cldr.tool.ConvertLanguageData" />
227			<param name="runTool.arg" value="" />
228			<param name="runTool.jvmarg" value="${jvm_options} -DADD_POP=true" />
229		</antcall>
230		<antcall target="_toolcopy" />
231	</target>
232
233	<target name="AddPseudolocales" depends="init"
234		description="build pseudo-locale data en_XA.xml and ar_XB.xml">
235		<antcall target="_runTool">
236			<param name="runTool.class" value="org.unicode.cldr.tool.CLDRFilePseudolocalizer" />
237			<param name="runTool.arg" value="" />
238			<param name="runTool.jvmarg" value="${jvm_options}" />
239		</antcall>
240		<antcall target="_toolcopy" />
241	</target>
242
243	<target name="GenerateAllCharts" depends="init"
244		description="generate all html charts -  see http://cldr.unicode.org/development/cldr-big-red-switch/generating-charts">
245		<antcall target="_runTool">
246			<param name="runTool.class" value="org.unicode.cldr.tool.GenerateAllCharts" />
247			<param name="runTool.arg" value="" />
248			<param name="runTool.jvmarg" value="${jvm_options}" />
249		</antcall>
250		<!-- <antcall target="_toolcopy"/> -->
251	</target>
252
253	<target name="RunAllTools"
254		depends="GenerateMaximalLocales,AddPopulationData,ConvertLanguageData"
255		description="Run several of the automated tools that are currently available to this build script.">
256	</target>
257
258	<target name="_runTool" depends="all">
259		<delete dir="${tooltmp.dir}" />
260		<echo message="JVM argument:    ${runTool.jvmarg} -Djava.awt.headless=true" />
261		<echo message="Tool class:      ${runTool.class}" />
262		<echo message="Tool argument:   ${runTool.arg}" />
263		<java classname="${runTool.class}" fork="yes" failonerror="true"
264			classpathref="project.class.path">
265			<arg line="${runTool.arg}" />
266			<jvmarg
267				line="${runTool.jvmarg} -DCLDR_GEN_DIR=${tooltmp.dir} -DCLDR_DIR=${CLDR_DIR} -Djava.awt.headless=true" />
268		</java>
269	</target>
270
271	<target name="_toolcopy">
272		<copy verbose="true" todir="${CLDR_DIR}/common/">
273			<fileset dir="${tooltmp.dir}" />
274		</copy>
275		<delete dir="${tooltmp.dir}" />
276	</target>
277</project>
278