1<!DOCTYPE project [ 2 <!ENTITY icu-config SYSTEM "./icu-config.xml"> 3 <!ENTITY icu-locale-deprecates SYSTEM "./icu-locale-deprecates.xml"> 4 <!ENTITY icu-coll-deprecates SYSTEM "./icu-coll-deprecates.xml"> 5 <!ENTITY icu-rbnf-deprecates SYSTEM "./icu-rbnf-deprecates.xml"> 6]> 7<!-- 8/* 9* Copyright (C) 2016 and later: Unicode, Inc. and others. 10* License & terms of use: http://www.unicode.org/copyright.html 11******************************************************************************* 12* Copyright (C) 2005-2015, International Business Machines Corporation and * 13* others. All Rights Reserved. * 14******************************************************************************* 15*/ 16--> 17<project name="icu-build" default="all" basedir="."> 18 <target name="init"> 19 <tstamp/> 20 21 <!-- Load environment variables --> 22 <property environment="env"/> 23 24 <!-- Ant won't set properties that have already been set, so environment variables that have been set before won't be clobbered. --> 25 <property name="env.ICU4C_DIR" location="../.."/> 26 27 <condition property="is.cldr.dir.set" > 28 <isset property="env.CLDR_DIR" /> 29 </condition > 30 <fail unless="is.cldr.dir.set" message="Please set the CLDR_DIR environment variable to the top level ICU source dir (containing 'common')."/> 31 32 <available property="cldrtools.dir" value="${env.CLDR_DIR}/cldr-tools" file="${env.CLDR_DIR}/cldr-tools" type="dir"/> 33 <available property="cldrtools.dir" value="${env.CLDR_DIR}/tools/java" file="${env.CLDR_DIR}/tools/java" type="dir"/> 34 <fail unless="cldrtools.dir" message="Please make sure that the CLDR tools directory is checked out into CLDR_DIR"/> 35 36 <available property="env.CLDR_CLASSES" value="${cldrtools.dir}/classes" file="${cldrtools.dir}/classes" type="dir"/> 37 <available property="cldrtools.jar" value="${cldrtools.dir}/cldr.jar" file="${cldrtools.dir}/cldr.jar" type="file"/> 38 <condition property="is.cldr.classes.set"> 39 <or> 40 <isset property="env.CLDR_CLASSES" /> 41 <isset property="cldrtools.jar" /> 42 </or> 43 </condition> 44 <fail unless="is.cldr.classes.set" message="CLDR classes not found in ${cldrtools.dir}. Please either set the CLDR_CLASSES environment variable or build cldr.jar."/> 45 46 <echo message="java home: ${java.home}"/> 47 <echo message="java version: ${java.version}"/> 48 <echo message="ant java version: ${ant.java.version}"/> 49 <echo message="${ant.version}"/> 50 </target> 51 <target name="setup"> 52 <taskdef name="cldr-build" classname="org.unicode.cldr.ant.CLDRBuild"> 53 <classpath> 54 <pathelement path="${java.class.path}/"/> 55 <pathelement path="${env.CLDR_CLASSES}"/> 56 <pathelement location="${cldrtools.jar}"/> 57 <fileset dir="${cldrtools.dir}/libs" includes="*.jar"/> 58 </classpath> 59 </taskdef> 60 </target> 61 <!-- target for generating ICU data --> 62 <target name="all" depends="locales, collation, rbnf, supplementalData, metadata, metaZones, windowsZones, likelySubtags, plurals, pluralRanges, numberingSystems, translit, brkitr, keyTypeData, genderList, dayPeriods" /> 63 <!-- parallel target --> 64 <target name="pall" depends="init"> 65 <parallel threadsPerProcessor ="1"> 66 <sequential> 67 <ant target='locales' /> 68 </sequential> 69 <sequential> 70 <ant target='collation'> 71 </ant> 72 </sequential> 73 <sequential> 74 <ant target='rbnf'> 75 </ant> 76 </sequential> 77 <ant target='supplementalData'> 78 </ant> 79 <sequential> 80 <ant target='brkitr'> 81 </ant> 82 </sequential> 83 <sequential> 84 <ant target='translit'> 85 </ant> 86 <!--<ant target='trnsfiles'></ant> Not ANT-built - see 87 note below. --> 88 </sequential> 89 <sequential> 90 <ant target='keyTypeData'/> 91 </sequential> 92 <sequential> 93 <ant target='genderList'/> 94 </sequential> 95 <sequential> 96 <ant target='dayPeriods'/> 97 </sequential> 98 </parallel> 99 </target> 100 101 <target name="locales" depends="init,setup" description="builds locale files in ICU text format"> 102 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" srcFile=".*xml" destFile=".*txt"> 103 <!-- launch the tool and generate the data after reading the config file --> 104 <run> 105 <args> 106 <arg name="--sourcedir" value="${env.CLDR_DIR}/common/main" /> 107 <arg name="--destdir" value="${env.ICU4C_DIR}/source/data/locales"/> 108 <arg name="--specialsdir" value="${env.ICU4C_DIR}/source/data/xml/main"/> 109 <arg name="--supplementaldir" value="${env.CLDR_DIR}/common/supplemental" /> 110 <arg name="--type" value="locales"/> 111 <arg name="--filter"/> <!-- Android patch: Use dataModifiers.txt filtering. --> 112 <arg name="--makefile" value="resfiles.mk"/> 113 </args> 114 <remapper> 115 <remap sourcePath="/Keys" targetDir="lang" /> 116 <remap sourcePath="/Languages" targetDir="lang" /> 117 <remap sourcePath="/Languages%long" targetDir="lang" /> 118 <remap sourcePath="/Languages%short" targetDir="lang" /> 119 <remap sourcePath="/Languages%secondary" targetDir="lang" /> 120 <remap sourcePath="/Languages%variant" targetDir="lang" /> 121 <remap sourcePath="/Scripts" targetDir="lang" /> 122 <remap sourcePath="/Scripts%secondary" targetDir="lang" /> 123 <remap sourcePath="/Scripts%short" targetDir="lang" /> 124 <remap sourcePath="/Scripts%stand-alone" targetDir="lang" /> 125 <remap sourcePath="/Scripts%variant" targetDir="lang" /> 126 <remap sourcePath="/Types" targetDir="lang" /> 127 <remap sourcePath="/Types%short" targetDir="lang" /> 128 <remap sourcePath="/Variants" targetDir="lang" /> 129 <remap sourcePath="/Variants%secondary" targetDir="lang" /> 130 <remap sourcePath="/characterLabelPattern" targetDir="lang" /> 131 <remap sourcePath="/codePatterns" targetDir="lang" /> 132 <remap sourcePath="/localeDisplayPattern" targetDir="lang" /> 133 <remap sourcePath="/Countries" targetDir="region" /> 134 <remap sourcePath="/Countries%variant" targetDir="region" /> 135 <remap sourcePath="/Countries%short" targetDir="region" /> 136 <remap sourcePath="/Currencies" targetDir="curr" /> 137 <remap sourcePath="/Currencies%narrow" targetDir="curr" /> 138 <remap sourcePath="/Currencies%variant" targetDir="curr" /> 139 <remap sourcePath="/CurrencyPlurals" targetDir="curr" /> 140 <remap sourcePath="/CurrencyUnitPatterns" targetDir="curr" /> 141 <remap sourcePath="/currencySpacing" targetDir="curr" /> 142 <remap sourcePath="/zoneStrings" targetDir="zone" /> 143 <remap sourcePath="/durationUnits" targetDir="unit" /> 144 <remap sourcePath="/units" targetDir="unit" /> 145 <remap sourcePath="/unitsShort" targetDir="unit" /> 146 <remap sourcePath="/unitsNarrow" targetDir="unit" /> 147 </remapper> 148 <!-- http://ant.apache.org/faq.html#xml-entity-include --> 149 &icu-config; 150 &icu-locale-deprecates; 151 </run> 152 </cldr-build> 153 </target> 154 <target name="collation" depends="init,setup" description="builds collation files in ICU text format"> 155 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" srcFile=".*xml" destFile=".*txt"> 156 <run> 157 <args> 158 <arg name="--sourcedir" value="${env.CLDR_DIR}/common/collation" /> 159 <arg name="--destdir" value="${env.ICU4C_DIR}/source/data/coll"/> 160 <arg name="--specialsdir" value="${env.ICU4C_DIR}/source/data/xml/collation"/> 161 <arg name="--type" value="collation"/> 162 <arg name="--makefile" value="colfiles.mk"/> 163 </args> 164 <!-- http://ant.apache.org/faq.html#xml-entity-include --> 165 &icu-config; 166 &icu-coll-deprecates; 167 </run> 168 </cldr-build> 169 </target> 170 <target name="rbnf" depends="init,setup" description="builds rbnf files in ICU text format"> 171 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" srcFile=".*xml" destFile=".*txt"> 172 <run> 173 <args> 174 <arg name="--sourcedir" value="${env.CLDR_DIR}/common/rbnf" /> 175 <arg name="--destdir" value="${env.ICU4C_DIR}/source/data/rbnf"/> 176 <arg name="--specialsdir" value="${env.ICU4C_DIR}/source/data/xml/rbnf"/> 177 <arg name="--type" value="rbnf" /> 178 <arg name="--makefile" value="rbnffiles.mk"/> 179 </args> 180 <!-- http://ant.apache.org/faq.html#xml-entity-include --> 181 &icu-config; 182 &icu-rbnf-deprecates; 183 </run> 184 </cldr-build> 185 </target> 186 <target name="supplementalData" depends="init,setup" description="builds supplementalData.txt from supplementalData.xml"> 187 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="supplementalData.txt" noArgs="true"> 188 <!-- launch the tool and generate the data after reading the config file --> 189 <run> 190 <args> 191 <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" /> 192 <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/> 193 <arg name="-t" value="supplementalData"/> 194 </args> 195 <remapper> 196 <remap sourcePath="/CurrencyMap" targetDir="curr" /> 197 <remap sourcePath="/CurrencyMeta" targetDir="curr" /> 198 </remapper> 199 </run> 200 </cldr-build> 201 </target> 202 <target name="metadata" depends="init,setup" description="builds metadata.txt from supplementalMetadata.xml"> 203 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="metadata.txt" noArgs="true"> 204 <!-- launch the tool and generate the data after reading the config file --> 205 <run> 206 <args> 207 <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" /> 208 <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/> 209 <arg name="-t" value="metadata"/> 210 </args> 211 </run> 212 </cldr-build> 213 </target> 214 <target name="metaZones" depends="init,setup" description="builds metaZones.txt from metaZones.xml"> 215 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="metaZones.txt" noArgs="true"> 216 <!-- launch the tool and generate the data after reading the config file --> 217 <run> 218 <args> 219 <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" /> 220 <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/> 221 <arg name="-t" value="metaZones"/> 222 </args> 223 </run> 224 </cldr-build> 225 </target> 226 <target name="windowsZones" depends="init,setup" description="builds windowsZones.txt from windowsZones.xml"> 227 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="windowsZones.txt" noArgs="true"> 228 <!-- launch the tool and generate the data after reading the config file --> 229 <run> 230 <args> 231 <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" /> 232 <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/> 233 <arg name="-t" value="windowsZones"/> 234 </args> 235 </run> 236 </cldr-build> 237 </target> 238 <target name="likelySubtags" depends="init,setup" description="builds likelySubtags.txt from likelySubtags.xml"> 239 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="likelySubtags.txt" noArgs="true"> 240 <!-- launch the tool and generate the data after reading the config file --> 241 <run> 242 <args> 243 <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" /> 244 <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/> 245 <arg name="-t" value="likelySubtags"/> 246 </args> 247 </run> 248 </cldr-build> 249 </target> 250 <target name="plurals" depends="init,setup" description="builds plurals.txt from plurals.xml"> 251 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="plurals.txt" noArgs="true"> 252 <!-- launch the tool and generate the data after reading the config file --> 253 <run> 254 <args> 255 <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" /> 256 <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/> 257 <arg name="-t" value="plurals"/> 258 </args> 259 </run> 260 </cldr-build> 261 </target> 262 <target name="pluralRanges" depends="init,setup" description="builds pluralRanges.txt from pluralRanges.xml"> 263 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="pluralRanges.txt" noArgs="true"> 264 <!-- launch the tool and generate the data after reading the config file --> 265 <run> 266 <args> 267 <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" /> 268 <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/> 269 <arg name="-t" value="pluralRanges"/> 270 </args> 271 </run> 272 </cldr-build> 273 </target> 274 <target name="numberingSystems" depends="init,setup" description="builds numberingSystems.txt from numberingSystems.xml"> 275 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="numberingSystems.txt" noArgs="true"> 276 <!-- launch the tool and generate the data after reading the config file --> 277 <run> 278 <args> 279 <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" /> 280 <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/> 281 <arg name="-t" value="numberingSystems"/> 282 </args> 283 </run> 284 </cldr-build> 285 </target> 286 <target name="genderList" depends="init,setup" description="builds genderList.txt from genderList.xml"> 287 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="genderList.txt" noArgs="true"> 288 <!-- launch the tool and generate the data after reading the config file --> 289 <run> 290 <args> 291 <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" /> 292 <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/> 293 <arg name="-t" value="genderList"/> 294 </args> 295 </run> 296 </cldr-build> 297 </target> 298 <target name="dayPeriods" depends="init,setup" description="builds dayPeriods.txt from dayPeriods.xml"> 299 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="dayPeriods.txt" noArgs="true"> 300 <!-- launch the tool and generate the data after reading the config file --> 301 <run> 302 <args> 303 <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" /> 304 <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/> 305 <arg name="-t" value="dayPeriods"/> 306 </args> 307 </run> 308 </cldr-build> 309 </target> 310 <target name="brkitr" depends="init,setup" description="builds break iterator files in ICU text format"> 311 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" srcFile=".*xml" destFile=".*txt"> 312 <run> 313 <args> 314 <arg name="--sourcedir" value="${env.CLDR_DIR}/common/segments"/> 315 <arg name="--specialsdir" value="${env.ICU4C_DIR}/source/data/xml/brkitr"/> 316 <arg name="--destdir" value="${env.ICU4C_DIR}/source/data/brkitr"/> 317 <arg name="--type" value="brkitr" /> 318 <arg name="--makefile" value="brkfiles.mk"/> 319 </args> 320 <!-- The entity include is not required for this target --> 321 <!-- http://ant.apache.org/faq.html#xml-entity-include 322 &icu-config; 323 --> 324 </run> 325 </cldr-build> 326 </target> 327 328 <target name="keyTypeData" depends="init,setup" description="builds keyTypeData.txt and timezoneTypes.txt from bcp47/*.xml"> 329 <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" noArgs="true"> 330 <run> 331 <args> 332 <arg name="-s" value="${env.CLDR_DIR}/common/bcp47" /> 333 <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/> 334 <arg name="-t" value="keyTypeData"/> 335 </args> 336 </run> 337 </cldr-build> 338 </target> 339 340 <target name="translit" depends="init,setup" description="builds collation files in ICU text format"> 341 <cldr-build toolName="org.unicode.cldr.icu.ConvertTransforms" srcFile=".*xml" destFile=".*txt"> 342 <run> 343 <args> 344 <arg name="-m" value="((?!.*(Canadian|Ethiopic|ug-Latin).*).*)" /> 345 <arg name="--sourcedir" value="${env.CLDR_DIR}/common/transforms" /> 346 <arg name="--destdir" value="${env.ICU4C_DIR}/source/data/translit"/> 347 <arg name="--commentSkip"/> 348 <arg name="--approvedOnly"/> 349 </args> 350 <!-- http://ant.apache.org/faq.html#xml-entity-include --> 351 352 </run> 353 </cldr-build> 354 </target> 355 <!-- we don't generate en.txt or el.txt - so don't change trnsfiles.mk for now. --> 356<!-- 357 <target name="trnsfiles" depends="init, setup" description="builds trnsfiles.mk"> 358 <cldr-build toolName="org.unicode.cldr.icu.ConvertTransforms" srcFile=".*xml" destFile="trnsfiles.mk" noArgs="true"> 359 <run> 360 <args> [ double hyphen not allowed in comments - transpose -" to fix below ] 361 <arg name=-"-sourcedir" value="${env.CLDR_DIR}/common/transforms" /> 362 <arg name=-"-destdir" value="${env.ICU4C_DIR}/source/data/translit"/> 363 <arg name=-"-commentSkip"/> 364 <arg name=-"-writeIndex"/> 365 </args> 366 </run> 367 </cldr-build> 368 </target> --> 369 <target name="clean" depends="init, setup" description="deletes all txt files and mk files from coll and locales directories"> 370 <delete> 371 <fileset id="locales" dir="${env.ICU4C_DIR}/source/data/locales"> 372 <include name="*.txt" /> 373 </fileset> 374 <fileset id="resfiles" dir="${env.ICU4C_DIR}/source/data/locales"> 375 <include name="resfiles.mk" /> 376 </fileset> 377 <fileset id="locales_split" dir="${env.ICU4C_DIR}/source/data"> 378 <include name="curr/*.txt" /> 379 <include name="curr/resfiles.mk" /> 380 <include name="lang/*.txt" /> 381 <include name="lang/resfiles.mk" /> 382 <include name="region/*.txt" /> 383 <include name="region/resfiles.mk" /> 384 <include name="zone/*.txt" /> 385 <include name="zone/resfiles.mk" /> 386 <exclude name="zone/tzdbNames.txt" /> 387 <include name="unit/*.txt" /> 388 <include name="unit/resfiles.mk" /> 389 </fileset> 390 <fileset id="collation" dir="${env.ICU4C_DIR}/source/data/coll"> 391 <include name="*.txt" /> 392 </fileset> 393 <fileset id="colfiles" dir="${env.ICU4C_DIR}/source/data/coll"> 394 <include name="colfiles.mk" /> 395 </fileset> 396 <fileset id="translit" dir="${env.ICU4C_DIR}/source/data/translit"> 397 <include name="*_*.txt" /> 398 <include name="root.txt" /> 399 </fileset> 400 <fileset id="brkitr" dir="${env.ICU4C_DIR}/source/data/brkitr"> 401 <include name="*.txt"/> 402 </fileset> 403 <fileset id="brkfiles" dir="${env.ICU4C_DIR}/source/data/brkitr"> 404 <include name="brkfiles.mk" /> 405 </fileset> 406 <fileset id="supplementalData" dir="${env.ICU4C_DIR}/source/data/misc"> 407 <include name="supplementalData.txt" /> 408 </fileset> 409 <fileset id="rbnf" dir="${env.ICU4C_DIR}/source/data/rbnf"> 410 <include name="*.txt" /> 411 </fileset> 412 <fileset id="rbnffiles" dir="${env.ICU4C_DIR}/source/data/rbnf"> 413 <include name="rbnffiles.mk" /> 414 </fileset> 415 <fileset id="metadata" dir="${env.ICU4C_DIR}/source/data/misc"> 416 <include name="metadata.txt" /> 417 </fileset> 418 <fileset id="metaZones" dir="${env.ICU4C_DIR}/source/data/misc"> 419 <include name="metaZones.txt" /> 420 </fileset> 421 <fileset id="windowsZones" dir="${env.ICU4C_DIR}/source/data/misc"> 422 <include name="windowsZones.txt" /> 423 </fileset> 424 <fileset id="likelySubtags" dir="${env.ICU4C_DIR}/source/data/misc"> 425 <include name="likelySubtags.txt" /> 426 </fileset> 427 <fileset id="plurals" dir="${env.ICU4C_DIR}/source/data/misc"> 428 <include name="plurals.txt" /> 429 </fileset> 430 <fileset id="pluralRanges" dir="${env.ICU4C_DIR}/source/data/misc"> 431 <include name="pluralRanges.txt" /> 432 </fileset> 433 <fileset id="numberingSystems" dir="${env.ICU4C_DIR}/source/data/misc"> 434 <include name="numberingSystems.txt" /> 435 </fileset> 436 <fileset id="keyTypeData" dir="${env.ICU4C_DIR}/source/data/misc"> 437 <include name="keyTypeData.txt" /> 438 <include name="timezoneTypes.txt" /> 439 </fileset> 440 <fileset id="genderList" dir="${env.ICU4C_DIR}/source/data/misc"> 441 <include name="genderList.txt" /> 442 </fileset> 443 <fileset id="dayPeriods" dir="${env.ICU4C_DIR}/source/data/misc"> 444 <include name="dayPeriods.txt" /> 445 </fileset> 446 </delete> 447 </target> 448</project> 449