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