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