blob: 45b6abb706114d6436836c9a99ea12bb20c36131 [file] [log] [blame]
Narayan Kamatha77fadd2014-12-18 11:56:40 +00001<?xml version="1.0" ?>
2
3<project name="libphonenumber" default="compile">
4 <property name="libphonenumber.src.dir" value="libphonenumber/src"/>
5 <property name="libphonenumber.test.dir" value="libphonenumber/test"/>
6 <property name="carrier.src.dir" value="carrier/src"/>
7 <property name="carrier.test.dir" value="carrier/test"/>
8 <property name="geocoder.src.dir" value="geocoder/src"/>
9 <property name="geocoder.test.dir" value="geocoder/test"/>
10 <property name="prefixmapper.src.dir" value="internal/prefixmapper/src"/>
11 <property name="prefixmapper.test.dir" value="internal/prefixmapper/test"/>
12 <property name="build.dir" value="build"/>
13 <property name="classes.dir" value="${build.dir}/classes"/>
14 <property name="jar.dir" value="${build.dir}/jar"/>
15 <property name="lib.dir" value="lib"/>
16 <property name="report.dir" value="${build.dir}/junitreport"/>
17 <property name="resources.dir" value="../resources"/>
18 <property name="javascript.dir" value="../javascript"/>
19 <property name="build.tools.jar"
20 value="../tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar"/>
21
22 <path id="classpath">
23 <fileset dir="${lib.dir}" includes="**/*.jar"/>
24 </path>
25 <path id="test.classpath">
26 <pathelement location="${classes.dir}"/>
27 <pathelement location="${lib.dir}/junit/junit-4.8.1.jar"/>
28 <pathelement location="${jar.dir}/${ant.project.name}-test.jar"/>
29 <fileset dir="${lib.dir}">
30 <include name="**/*.jar"/>
31 </fileset>
32 </path>
33
34 <target name="build-phone-metadata">
35 <exec executable="java">
36 <arg value="-jar" />
37 <arg value="${build.tools.jar}"/>
38 <arg value="BuildMetadataProtoFromXml"/>
39 <arg value="--input-file=${resources.dir}/PhoneNumberMetadata.xml"/>
40 <arg value="--output-dir=${libphonenumber.src.dir}/com/google/i18n/phonenumbers"/>
41 <arg value="--data-prefix=data/PhoneNumberMetadataProto"/>
42 <arg value="--mapping-class=CountryCodeToRegionCodeMap"/>
43 <arg value="--copyright=2010"/>
44 <arg value="--lite-build=false"/>
45 </exec>
46 </target>
47
Paul Duffin6b489f72015-12-07 15:54:05 +000048 <target name="build-single-file-phone-metadata">
49 <exec executable="java">
50 <arg value="-jar" />
51 <arg value="${build.tools.jar}"/>
52 <arg value="BuildMetadataProtoFromXml"/>
53 <arg value="--input-file=${resources.dir}/PhoneNumberMetadata.xml"/>
54 <arg value="--output-dir=${libphonenumber.src.dir}/com/google/i18n/phonenumbers"/>
55 <arg value="--data-prefix=data/SingleFilePhoneNumberMetadataProto"/>
56 <arg value="--single-file=true"/>
57 <arg value="--mapping-class=CountryCodeToRegionCodeMap"/>
58 <arg value="--copyright=2010"/>
59 <arg value="--lite-build=false"/>
60 </exec>
61 </target>
62
Narayan Kamatha77fadd2014-12-18 11:56:40 +000063 <target name="build-short-metadata">
64 <exec executable="java">
65 <arg value="-jar" />
66 <arg value="${build.tools.jar}"/>
67 <arg value="BuildMetadataProtoFromXml"/>
68 <arg value="--input-file=${resources.dir}/ShortNumberMetadata.xml"/>
69 <arg value="--output-dir=${libphonenumber.src.dir}/com/google/i18n/phonenumbers"/>
70 <arg value="--data-prefix=data/ShortNumberMetadataProto"/>
71 <arg value="--mapping-class=ShortNumbersRegionCodeSet"/>
72 <arg value="--copyright=2013"/>
73 <arg value="--lite-build=false"/>
74 </exec>
75 </target>
76
77 <target name="build-test-metadata">
78 <exec executable="java">
79 <arg value="-jar" />
80 <arg value="${build.tools.jar}"/>
81 <arg value="BuildMetadataProtoFromXml"/>
82 <arg value="--input-file=${resources.dir}/PhoneNumberMetadataForTesting.xml"/>
83 <arg value="--output-dir=${libphonenumber.test.dir}/com/google/i18n/phonenumbers"/>
84 <arg value="--data-prefix=data/PhoneNumberMetadataProtoForTesting"/>
85 <arg value="--mapping-class=CountryCodeToRegionCodeMapForTesting"/>
86 <arg value="--copyright=2010"/>
87 <arg value="--lite-build=false"/>
88 </exec>
89 </target>
90
Paul Duffin6b489f72015-12-07 15:54:05 +000091 <target name="build-single-file-test-metadata">
92 <exec executable="java">
93 <arg value="-jar" />
94 <arg value="${build.tools.jar}"/>
95 <arg value="BuildMetadataProtoFromXml"/>
96 <arg value="--input-file=${resources.dir}/PhoneNumberMetadataForTesting.xml"/>
97 <arg value="--output-dir=${libphonenumber.test.dir}/com/google/i18n/phonenumbers"/>
98 <arg value="--data-prefix=data/SingleFilePhoneNumberMetadataProtoForTesting"/>
99 <arg value="--single-file=true"/>
100 <arg value="--mapping-class=CountryCodeToRegionCodeMapForTesting"/>
101 <arg value="--copyright=2010"/>
102 <arg value="--lite-build=false"/>
103 </exec>
104 </target>
105
Narayan Kamatha77fadd2014-12-18 11:56:40 +0000106 <target name="build-alternate-metadata">
107 <exec executable="java">
108 <arg value="-jar" />
109 <arg value="${build.tools.jar}"/>
110 <arg value="BuildMetadataProtoFromXml"/>
111 <arg value="--input-file=${resources.dir}/PhoneNumberAlternateFormats.xml"/>
112 <arg value="--output-dir=${libphonenumber.src.dir}/com/google/i18n/phonenumbers"/>
113 <arg value="--data-prefix=data/PhoneNumberAlternateFormatsProto"/>
114 <arg value="--mapping-class=AlternateFormatsCountryCodeSet"/>
115 <arg value="--copyright=2012"/>
116 <arg value="--lite-build=false"/>
117 </exec>
118 </target>
119
120 <target name="build-carrier-data">
Paul Duffineff224c2016-02-10 11:29:14 +0000121 <delete dir="carrier/src/com/google/i18n/phonenumbers/carrier/data"/>
Narayan Kamatha77fadd2014-12-18 11:56:40 +0000122 <exec executable="java">
123 <arg value="-jar" />
124 <arg value="${build.tools.jar}"/>
125 <arg value="GeneratePhonePrefixData"/>
126 <arg value="${resources.dir}/carrier/"/>
127 <arg value="carrier/src/com/google/i18n/phonenumbers/carrier/data"/>
128 </exec>
129 </target>
130
131 <target name="build-carrier-test-data">
Paul Duffineff224c2016-02-10 11:29:14 +0000132 <delete dir="carrier/test/com/google/i18n/phonenumbers/carrier/testing_data"/>
Narayan Kamatha77fadd2014-12-18 11:56:40 +0000133 <exec executable="java">
134 <arg value="-jar" />
135 <arg value="${build.tools.jar}"/>
136 <arg value="GeneratePhonePrefixData"/>
137 <arg value="${resources.dir}/test/carrier/"/>
138 <arg value="carrier/test/com/google/i18n/phonenumbers/carrier/testing_data"/>
139 </exec>
140 </target>
141
142 <target name="build-geo-data">
Paul Duffineff224c2016-02-10 11:29:14 +0000143 <delete dir="geocoder/src/com/google/i18n/phonenumbers/geocoding/data"/>
Narayan Kamatha77fadd2014-12-18 11:56:40 +0000144 <exec executable="java">
145 <arg value="-jar" />
146 <arg value="${build.tools.jar}"/>
147 <arg value="GeneratePhonePrefixData"/>
148 <arg value="${resources.dir}/geocoding/"/>
149 <arg value="geocoder/src/com/google/i18n/phonenumbers/geocoding/data"/>
150 </exec>
151 </target>
152
153 <target name="build-geo-test-data">
Paul Duffineff224c2016-02-10 11:29:14 +0000154 <delete dir="geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data"/>
Narayan Kamatha77fadd2014-12-18 11:56:40 +0000155 <exec executable="java">
156 <arg value="-jar" />
157 <arg value="${build.tools.jar}"/>
158 <arg value="GeneratePhonePrefixData"/>
159 <arg value="${resources.dir}/test/geocoding/"/>
160 <arg value="geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data"/>
161 </exec>
162 </target>
163
164 <target name="build-timezones-data">
165 <exec executable="java">
166 <arg value="-jar" />
167 <arg value="${build.tools.jar}"/>
168 <arg value="GenerateTimeZonesMapData"/>
169 <arg value="${resources.dir}/timezones/map_data.txt"/>
170 <arg value="geocoder/src/com/google/i18n/phonenumbers/timezones/data"/>
171 </exec>
172 </target>
173
174 <target name="build-timezones-test-data">
175 <exec executable="java">
176 <arg value="-jar" />
177 <arg value="${build.tools.jar}"/>
178 <arg value="GenerateTimeZonesMapData"/>
179 <arg value="${resources.dir}/test/timezones/map_data.txt"/>
180 <arg value="geocoder/test/com/google/i18n/phonenumbers/timezones/testing_data"/>
181 </exec>
182 </target>
183
184 <target name="build-js-metadata">
185 <exec executable="java">
186 <arg value="-jar" />
187 <arg value="${build.tools.jar}"/>
188 <arg value="BuildMetadataJsonFromXml"/>
189 <arg value="${resources.dir}/PhoneNumberMetadata.xml"/>
190 <arg value="${javascript.dir}/i18n/phonenumbers/metadata.js"/>
191 </exec>
192 <exec executable="java">
193 <arg value="-jar" />
194 <arg value="${build.tools.jar}"/>
195 <arg value="BuildMetadataJsonFromXml"/>
196 <arg value="${resources.dir}/PhoneNumberMetadata.xml"/>
197 <arg value="${javascript.dir}/i18n/phonenumbers/metadatalite.js"/>
198 <arg value="true"/> <!-- Lite metadata. -->
199 </exec>
200 <exec executable="java">
201 <arg value="-jar" />
202 <arg value="${build.tools.jar}"/>
203 <arg value="BuildMetadataJsonFromXml"/>
204 <arg value="${resources.dir}/PhoneNumberMetadataForTesting.xml"/>
205 <arg value="${javascript.dir}/i18n/phonenumbers/metadatafortesting.js"/>
206 </exec>
207 </target>
208
209 <target name="compile" description="Compile Java source."
210 depends="build-phone-metadata,build-short-metadata,build-alternate-metadata,build-carrier-data,build-geo-data,build-timezones-data">
211 <mkdir dir="${classes.dir}"/>
212 <javac srcdir="${libphonenumber.src.dir};${carrier.src.dir};${geocoder.src.dir};${prefixmapper.src.dir}"
213 destdir="${classes.dir}" classpathref="classpath" includeAntRuntime="false"/>
214 <javac srcdir="${libphonenumber.test.dir};${carrier.test.dir};${geocoder.test.dir};${prefixmapper.test.dir}"
215 destdir="${classes.dir}" classpathref="classpath" debug="on"
216 includeAntRuntime="false"/>
217 </target>
218
219 <target name="jar" depends="compile">
220 <mkdir dir="${jar.dir}"/>
221 <jar destfile="${jar.dir}/${ant.project.name}.jar">
222 <fileset dir="${classes.dir}">
223 <include name="**/*.class"/>
224 <exclude name="**/*Test*"/>
225 <exclude name="**/BuildMetadata*"/>
226 <exclude name="**/PhoneNumberTo*"/>
227 <exclude name="**/geocoding/*"/>
228 <exclude name="**/prefixmapper/*"/>
229 </fileset>
230 <fileset dir="${libphonenumber.src.dir}">
231 <include name="**/PhoneNumberMetadataProto*"/>
232 <include name="**/PhoneNumberAlternateFormatsProto*"/>
233 <include name="**/ShortNumberMetadataProto*"/>
234 </fileset>
235 </jar>
236 <jar destfile="${jar.dir}/carrier-mapper.jar">
237 <fileset dir="${classes.dir}">
238 <include name="**/PhoneNumberToCarrierMapper.class"/>
239 <include name="**/prefixmapper/*.class"/>
240 <exclude name="**/*Test*"/>
241 </fileset>
242 <fileset dir="${carrier.src.dir}">
243 <include name="**/carrier/data/*"/>
244 </fileset>
245 </jar>
246 <jar destfile="${jar.dir}/offline-geocoder.jar">
247 <fileset dir="${classes.dir}">
248 <include name="**/geocoding/*.class"/>
249 <include name="**/PhoneNumberToTimeZonesMapper*"/>
250 <include name="**/prefixmapper/*.class"/>
251 <exclude name="**/*Test*"/>
252 </fileset>
253 <fileset dir="${geocoder.src.dir}">
254 <include name="**/geocoding/data/*"/>
255 <include name="**/timezones/data/*"/>
256 </fileset>
257 </jar>
258 </target>
259
260 <target name="test-jar"
261 depends="compile,build-test-metadata,build-carrier-test-data,build-geo-test-data,build-timezones-test-data">
262 <mkdir dir="${jar.dir}"/>
263 <jar destfile="${jar.dir}/${ant.project.name}-test.jar">
264 <fileset dir="${classes.dir}">
265 <include name="**/*.class"/>
266 <exclude name="**/*Test*"/>
267 </fileset>
268 <fileset dir="${libphonenumber.src.dir}">
269 <include name="**/PhoneNumberMetadataProto*"/>
270 <include name="**/PhoneNumberAlternateFormatsProto*"/>
271 <include name="**/ShortNumberMetadataProto*"/>
272 </fileset>
273 <fileset dir="${libphonenumber.test.dir}">
274 <include name="**/PhoneNumberMetadataProtoForTesting*"/>
275 </fileset>
276 <fileset dir="${carrier.test.dir}">
277 <include name="**/carrier/testing_data/*"/>
278 </fileset>
279 <fileset dir="${geocoder.test.dir}">
280 <include name="**/geocoding/testing_data/*"/>
281 <include name="**/timezones/testing_data/*"/>
282 </fileset>
283 </jar>
284 </target>
285
286 <target name="junit" depends="test-jar">
287 <mkdir dir="${report.dir}"/>
288 <junit printsummary="yes"
289 failureProperty="test.failed" errorProperty="test.failed">
290 <classpath refid="test.classpath"/>
291 <formatter type="xml"/>
292 <batchtest fork="no" todir="${report.dir}">
293 <fileset dir="${libphonenumber.test.dir}" includes="**/*Test.java"/>
294 </batchtest>
295 <batchtest fork="no" todir="${report.dir}">
296 <fileset dir="${carrier.test.dir}" includes="**/*Test.java"/>
297 </batchtest>
298 <batchtest fork="no" todir="${report.dir}">
299 <fileset dir="${geocoder.test.dir}" includes="**/*Test.java"/>
300 </batchtest>
301 <batchtest fork="no" todir="${report.dir}">
302 <fileset dir="${prefixmapper.test.dir}" includes="**/*Test.java"/>
303 </batchtest>
304 </junit>
305 <fail message="Tests failed. Run 'ant junitreport' for more info."
306 if="test.failed"/>
307 </target>
308
309 <target name="junitreport">
310 <junitreport todir="${report.dir}">
311 <fileset dir="${report.dir}" includes="TEST-*.xml"/>
312 <report todir="${report.dir}"/>
313 </junitreport>
314 </target>
315
316 <target name="testname" unless="test">
317 <fail message="You must run this target with -Dtest=TestName"/>
318 </target>
319
320 <target name="test" depends="test-jar, testname">
321 <junit printsummary="withOutAndErr">
322 <classpath refid="test.classpath"/>
323 <formatter type="plain" usefile="false"/>
324 <batchtest fork="no">
325 <fileset dir="${libphonenumber.test.dir}" includes="**/*${test}.java"/>
326 <fileset dir="${carrier.test.dir}" includes="**/*${test}.java"/>
327 <fileset dir="${geocoder.test.dir}" includes="**/*${test}.java"/>
328 </batchtest>
329 </junit>
330 </target>
331
332 <target name="clean" description="Remove generated files.">
333 <delete dir="${build.dir}"/>
334 </target>
335
336 <target name="clean-build" depends="clean,jar"/>
337</project>