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