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