1# This file will be copied into //third_party/externals/icu via the new_local_repository 2# rule in WORKSPACE.bazel, so all files should be relative to that path. 3 4# We define this here because the emscripten toolchain calls the cpu wasm, whereas the 5# bazelbuild/platforms call it wasm32. https://github.com/emscripten-core/emsdk/issues/919 6config_setting( 7 name = "cpu_wasm", 8 values = { 9 "cpu": "wasm", 10 }, 11) 12 13py_binary( 14 name = "make_data_assembly", 15 srcs = ["scripts/make_data_assembly.py"], 16) 17 18py_binary( 19 name = "make_data_cpp", 20 srcs = ["@icu_utils//:make_data_cpp.py"], 21) 22 23_icu_version_major_num = "74" # defined in source/common/unicode/uvernum.h 24 25genrule( 26 name = "create_icu_wasm_data_cpp", 27 # For WASM, we use a super stripped down version, the same as what flutter uses. 28 srcs = ["flutter/icudtl.dat"], 29 outs = ["generated_icu_wasm_dat.cpp"], 30 cmd = "$(location :make_data_cpp) " + 31 "icudt" + _icu_version_major_num + "_dat " + 32 # We need to specify the absolute path from the root 33 "$(location flutter/icudtl.dat) " + 34 # $@ is replaced with the one and only out location, located in //bazel-out. 35 "$@", 36 tools = [":make_data_cpp"], 37) 38 39# We need to make a separate genrule per input because cmd cannot be based on a select() 40genrule( 41 name = "create_icu_common_data_asm", 42 srcs = ["common/icudtl.dat"], 43 outs = ["generated_icu_common_dat.S"], 44 cmd = "$(location :make_data_assembly) " + 45 # We need to specify the absolute path from the root 46 "$(location common/icudtl.dat) " + 47 # $@ is replaced with the one and only out location, located in //bazel-out. 48 "$@", 49 tools = [":make_data_assembly"], 50) 51 52genrule( 53 name = "create_icu_android_data_asm", 54 srcs = ["android/icudtl.dat"], 55 outs = ["generated_icu_android_dat.S"], 56 cmd = "$(location :make_data_assembly) " + 57 # We need to specify the absolute path from the root 58 "$(location android/icudtl.dat) " + 59 # $@ is replaced with the one and only out location, located in //bazel-out. 60 "$@", 61 tools = [":make_data_assembly"], 62) 63 64genrule( 65 name = "create_icu_ios_data_asm", 66 srcs = ["ios/icudtl.dat"], 67 outs = ["generated_icu_ios_dat.S"], 68 cmd = "$(location :make_data_assembly) " + 69 # We need to specify the absolute path from the root 70 "$(location ios/icudtl.dat) " + 71 # $@ is replaced with the one and only out location, located in //bazel-out. 72 "$@ --mac", 73 tools = [":make_data_assembly"], 74) 75 76genrule( 77 name = "create_icu_mac_data_asm", 78 srcs = ["common/icudtl.dat"], 79 outs = ["generated_icu_mac_dat.S"], 80 cmd = "$(location :make_data_assembly) " + 81 # We need to specify the absolute path from the root 82 "$(location common/icudtl.dat) " + 83 # $@ is replaced with the one and only out location, located in //bazel-out. 84 "$@ --mac", 85 tools = [":make_data_assembly"], 86) 87 88# For convenience, we add in a Skia-specific loader to help out on Windows. 89# It is not easy to directly expose headers defined elsewhere (e.g. a different Bazel package) 90# because the include paths will be based on that different path. The simplest solution is 91# to copy the files we need into this package - then they will be include able via 92# #include "SkLoadICU.h". 93genrule( 94 name = "copy_skloadicu_h", 95 srcs = [ 96 "@icu_utils//:SkLoadICU.cpp", 97 "@icu_utils//:SkLoadICU.h", 98 ], 99 outs = [ 100 "SkLoadICU.cpp", 101 "SkLoadICU.h", 102 ], 103 # SRCS is a space seperated list of files. 104 # RULEDIR is the directory containing this BUILD.bazel file (the root of the ICU directory) 105 cmd = "cp $(SRCS) $(RULEDIR)", 106 cmd_bat = "for %f in ($(SRCS)) do copy %f $(RULEDIR)", 107) 108 109ICU_HDRS = [ 110 "source/common/bmpset.h", 111 "source/common/brkeng.h", 112 "source/common/bytesinkutil.h", 113 "source/common/capi_helper.h", 114 "source/common/charstr.h", 115 "source/common/charstrmap.h", 116 "source/common/cmemory.h", 117 "source/common/cpputils.h", 118 "source/common/cstr.h", 119 "source/common/cstring.h", 120 "source/common/cwchar.h", 121 "source/common/dictbe.h", 122 "source/common/dictionarydata.h", 123 "source/common/emojiprops.h", 124 "source/common/hash.h", 125 "source/common/icuplugimp.h", 126 "source/common/localefallback_data.h", 127 "source/common/localeprioritylist.h", 128 "source/common/localsvc.h", 129 "source/common/locbased.h", 130 "source/common/locdistance.h", 131 "source/common/loclikelysubtags.h", 132 "source/common/locmap.h", 133 "source/common/locutil.h", 134 "source/common/lsr.h", 135 "source/common/lstmbe.h", 136 "source/common/messageimpl.h", 137 "source/common/mlbe.h", 138 "source/common/msvcres.h", 139 "source/common/mutex.h", 140 "source/common/norm2_nfc_data.h", 141 "source/common/norm2allmodes.h", 142 "source/common/normalizer2impl.h", 143 "source/common/patternprops.h", 144 "source/common/pluralmap.h", 145 "source/common/propname.h", 146 "source/common/propname_data.h", 147 "source/common/propsvec.h", 148 "source/common/punycode.h", 149 "source/common/putilimp.h", 150 "source/common/rbbi_cache.h", 151 "source/common/rbbidata.h", 152 "source/common/rbbinode.h", 153 "source/common/rbbirb.h", 154 "source/common/rbbirpt.h", 155 "source/common/rbbiscan.h", 156 "source/common/rbbisetb.h", 157 "source/common/rbbitblb.h", 158 "source/common/resource.h", 159 "source/common/restrace.h", 160 "source/common/ruleiter.h", 161 "source/common/serv.h", 162 "source/common/servloc.h", 163 "source/common/servnotf.h", 164 "source/common/sharedobject.h", 165 "source/common/sprpimpl.h", 166 "source/common/static_unicode_sets.h", 167 "source/common/uarrsort.h", 168 "source/common/uassert.h", 169 "source/common/ubidi_props.h", 170 "source/common/ubidi_props_data.h", 171 "source/common/ubidiimp.h", 172 "source/common/ubrkimpl.h", 173 "source/common/ucase.h", 174 "source/common/ucase_props_data.h", 175 "source/common/ucasemap_imp.h", 176 "source/common/uchar_props_data.h", 177 "source/common/ucln.h", 178 "source/common/ucln_cmn.h", 179 "source/common/ucln_imp.h", 180 "source/common/ucmndata.h", 181 "source/common/ucnv_bld.h", 182 "source/common/ucnv_cnv.h", 183 "source/common/ucnv_ext.h", 184 "source/common/ucnv_imp.h", 185 "source/common/ucnv_io.h", 186 "source/common/ucnvmbcs.h", 187 "source/common/ucol_data.h", 188 "source/common/ucol_swp.h", 189 "source/common/ucptrie_impl.h", 190 "source/common/ucurrimp.h", 191 "source/common/udatamem.h", 192 "source/common/udataswp.h", 193 "source/common/uelement.h", 194 "source/common/uenumimp.h", 195 "source/common/uhash.h", 196 "source/common/uinvchar.h", 197 "source/common/ulayout_props.h", 198 "source/common/ulist.h", 199 "source/common/ulocimp.h", 200 "source/common/umapfile.h", 201 "source/common/umutex.h", 202 "source/common/unicode/appendable.h", 203 "source/common/unicode/brkiter.h", 204 "source/common/unicode/bytestream.h", 205 "source/common/unicode/bytestrie.h", 206 "source/common/unicode/bytestriebuilder.h", 207 "source/common/unicode/caniter.h", 208 "source/common/unicode/casemap.h", 209 "source/common/unicode/char16ptr.h", 210 "source/common/unicode/chariter.h", 211 "source/common/unicode/dbbi.h", 212 "source/common/unicode/docmain.h", 213 "source/common/unicode/dtintrv.h", 214 "source/common/unicode/edits.h", 215 "source/common/unicode/enumset.h", 216 "source/common/unicode/errorcode.h", 217 "source/common/unicode/filteredbrk.h", 218 "source/common/unicode/icudataver.h", 219 "source/common/unicode/icuplug.h", 220 "source/common/unicode/idna.h", 221 "source/common/unicode/localebuilder.h", 222 "source/common/unicode/localematcher.h", 223 "source/common/unicode/localpointer.h", 224 "source/common/unicode/locdspnm.h", 225 "source/common/unicode/locid.h", 226 "source/common/unicode/messagepattern.h", 227 "source/common/unicode/normalizer2.h", 228 "source/common/unicode/normlzr.h", 229 "source/common/unicode/parseerr.h", 230 "source/common/unicode/parsepos.h", 231 "source/common/unicode/platform.h", 232 "source/common/unicode/ptypes.h", 233 "source/common/unicode/putil.h", 234 "source/common/unicode/rbbi.h", 235 "source/common/unicode/rep.h", 236 "source/common/unicode/resbund.h", 237 "source/common/unicode/schriter.h", 238 "source/common/unicode/simpleformatter.h", 239 "source/common/unicode/std_string.h", 240 "source/common/unicode/strenum.h", 241 "source/common/unicode/stringoptions.h", 242 "source/common/unicode/stringpiece.h", 243 "source/common/unicode/stringtriebuilder.h", 244 "source/common/unicode/symtable.h", 245 "source/common/unicode/ubidi.h", 246 "source/common/unicode/ubiditransform.h", 247 "source/common/unicode/ubrk.h", 248 "source/common/unicode/ucasemap.h", 249 "source/common/unicode/ucat.h", 250 "source/common/unicode/uchar.h", 251 "source/common/unicode/ucharstrie.h", 252 "source/common/unicode/ucharstriebuilder.h", 253 "source/common/unicode/uchriter.h", 254 "source/common/unicode/uclean.h", 255 "source/common/unicode/ucnv.h", 256 "source/common/unicode/ucnv_cb.h", 257 "source/common/unicode/ucnv_err.h", 258 "source/common/unicode/ucnvsel.h", 259 "source/common/unicode/uconfig.h", 260 "source/common/unicode/ucpmap.h", 261 "source/common/unicode/ucptrie.h", 262 "source/common/unicode/ucurr.h", 263 "source/common/unicode/udata.h", 264 "source/common/unicode/udisplaycontext.h", 265 "source/common/unicode/uenum.h", 266 "source/common/unicode/uidna.h", 267 "source/common/unicode/uiter.h", 268 "source/common/unicode/uldnames.h", 269 "source/common/unicode/uloc.h", 270 "source/common/unicode/ulocale.h", 271 "source/common/unicode/ulocbuilder.h", 272 "source/common/unicode/umachine.h", 273 "source/common/unicode/umisc.h", 274 "source/common/unicode/umutablecptrie.h", 275 "source/common/unicode/unifilt.h", 276 "source/common/unicode/unifunct.h", 277 "source/common/unicode/unimatch.h", 278 "source/common/unicode/uniset.h", 279 "source/common/unicode/unistr.h", 280 "source/common/unicode/unorm.h", 281 "source/common/unicode/unorm2.h", 282 "source/common/unicode/uobject.h", 283 "source/common/unicode/urename.h", 284 "source/common/unicode/urep.h", 285 "source/common/unicode/ures.h", 286 "source/common/unicode/uscript.h", 287 "source/common/unicode/uset.h", 288 "source/common/unicode/usetiter.h", 289 "source/common/unicode/ushape.h", 290 "source/common/unicode/usprep.h", 291 "source/common/unicode/ustring.h", 292 "source/common/unicode/ustringtrie.h", 293 "source/common/unicode/utext.h", 294 "source/common/unicode/utf.h", 295 "source/common/unicode/utf16.h", 296 "source/common/unicode/utf32.h", 297 "source/common/unicode/utf8.h", 298 "source/common/unicode/utf_old.h", 299 "source/common/unicode/utrace.h", 300 "source/common/unicode/utypes.h", 301 "source/common/unicode/uvernum.h", 302 "source/common/unicode/uversion.h", 303 "source/common/unifiedcache.h", 304 "source/common/uniquecharstr.h", 305 "source/common/unisetspan.h", 306 "source/common/unistrappender.h", 307 "source/common/unormimp.h", 308 "source/common/uposixdefs.h", 309 "source/common/uprops.h", 310 "source/common/uresdata.h", 311 "source/common/uresimp.h", 312 "source/common/ureslocs.h", 313 "source/common/usc_impl.h", 314 "source/common/uset_imp.h", 315 "source/common/ustr_cnv.h", 316 "source/common/ustr_imp.h", 317 "source/common/ustrenum.h", 318 "source/common/ustrfmt.h", 319 "source/common/util.h", 320 "source/common/utracimp.h", 321 "source/common/utrie.h", 322 "source/common/utrie2.h", 323 "source/common/utrie2_impl.h", 324 "source/common/utypeinfo.h", 325 "source/common/uvector.h", 326 "source/common/uvectr32.h", 327 "source/common/uvectr64.h", 328 "source/common/wintz.h", 329 "source/i18n/anytrans.h", 330 "source/i18n/astro.h", 331 "source/i18n/bocsu.h", 332 "source/i18n/brktrans.h", 333 "source/i18n/buddhcal.h", 334 "source/i18n/casetrn.h", 335 "source/i18n/cecal.h", 336 "source/i18n/chnsecal.h", 337 "source/i18n/collation.h", 338 "source/i18n/collationbuilder.h", 339 "source/i18n/collationcompare.h", 340 "source/i18n/collationdata.h", 341 "source/i18n/collationdatabuilder.h", 342 "source/i18n/collationdatareader.h", 343 "source/i18n/collationdatawriter.h", 344 "source/i18n/collationfastlatin.h", 345 "source/i18n/collationfastlatinbuilder.h", 346 "source/i18n/collationfcd.h", 347 "source/i18n/collationiterator.h", 348 "source/i18n/collationkeys.h", 349 "source/i18n/collationroot.h", 350 "source/i18n/collationrootelements.h", 351 "source/i18n/collationruleparser.h", 352 "source/i18n/collationsets.h", 353 "source/i18n/collationsettings.h", 354 "source/i18n/collationtailoring.h", 355 "source/i18n/collationweights.h", 356 "source/i18n/collunsafe.h", 357 "source/i18n/coptccal.h", 358 "source/i18n/cpdtrans.h", 359 "source/i18n/csdetect.h", 360 "source/i18n/csmatch.h", 361 "source/i18n/csr2022.h", 362 "source/i18n/csrecog.h", 363 "source/i18n/csrmbcs.h", 364 "source/i18n/csrsbcs.h", 365 "source/i18n/csrucode.h", 366 "source/i18n/csrutf8.h", 367 "source/i18n/currfmt.h", 368 "source/i18n/dangical.h", 369 "source/i18n/dayperiodrules.h", 370 "source/i18n/decContext.h", 371 "source/i18n/decNumber.h", 372 "source/i18n/decNumberLocal.h", 373 "source/i18n/double-conversion-bignum-dtoa.h", 374 "source/i18n/double-conversion-bignum.h", 375 "source/i18n/double-conversion-cached-powers.h", 376 "source/i18n/double-conversion-diy-fp.h", 377 "source/i18n/double-conversion-double-to-string.h", 378 "source/i18n/double-conversion-fast-dtoa.h", 379 "source/i18n/double-conversion-ieee.h", 380 "source/i18n/double-conversion-string-to-double.h", 381 "source/i18n/double-conversion-strtod.h", 382 "source/i18n/double-conversion-utils.h", 383 "source/i18n/double-conversion.h", 384 "source/i18n/dt_impl.h", 385 "source/i18n/dtitv_impl.h", 386 "source/i18n/dtptngen_impl.h", 387 "source/i18n/erarules.h", 388 "source/i18n/esctrn.h", 389 "source/i18n/ethpccal.h", 390 "source/i18n/fmtableimp.h", 391 "source/i18n/formatted_string_builder.h", 392 "source/i18n/formattedval_impl.h", 393 "source/i18n/fphdlimp.h", 394 "source/i18n/funcrepl.h", 395 "source/i18n/gregoimp.h", 396 "source/i18n/hebrwcal.h", 397 "source/i18n/indiancal.h", 398 "source/i18n/inputext.h", 399 "source/i18n/islamcal.h", 400 "source/i18n/iso8601cal.h", 401 "source/i18n/japancal.h", 402 "source/i18n/measunit_impl.h", 403 "source/i18n/msgfmt_impl.h", 404 "source/i18n/name2uni.h", 405 "source/i18n/nfrlist.h", 406 "source/i18n/nfrs.h", 407 "source/i18n/nfrule.h", 408 "source/i18n/nfsubs.h", 409 "source/i18n/nortrans.h", 410 "source/i18n/nultrans.h", 411 "source/i18n/number_affixutils.h", 412 "source/i18n/number_asformat.h", 413 "source/i18n/number_compact.h", 414 "source/i18n/number_currencysymbols.h", 415 "source/i18n/number_decimalquantity.h", 416 "source/i18n/number_decimfmtprops.h", 417 "source/i18n/number_decnum.h", 418 "source/i18n/number_formatimpl.h", 419 "source/i18n/number_longnames.h", 420 "source/i18n/number_mapper.h", 421 "source/i18n/number_microprops.h", 422 "source/i18n/number_modifiers.h", 423 "source/i18n/number_multiplier.h", 424 "source/i18n/number_patternmodifier.h", 425 "source/i18n/number_patternstring.h", 426 "source/i18n/number_roundingutils.h", 427 "source/i18n/number_scientific.h", 428 "source/i18n/number_skeletons.h", 429 "source/i18n/number_types.h", 430 "source/i18n/number_usageprefs.h", 431 "source/i18n/number_utils.h", 432 "source/i18n/number_utypes.h", 433 "source/i18n/numparse_affixes.h", 434 "source/i18n/numparse_compositions.h", 435 "source/i18n/numparse_currency.h", 436 "source/i18n/numparse_decimal.h", 437 "source/i18n/numparse_impl.h", 438 "source/i18n/numparse_scientific.h", 439 "source/i18n/numparse_symbols.h", 440 "source/i18n/numparse_types.h", 441 "source/i18n/numparse_utils.h", 442 "source/i18n/numparse_validators.h", 443 "source/i18n/numrange_impl.h", 444 "source/i18n/numsys_impl.h", 445 "source/i18n/olsontz.h", 446 "source/i18n/persncal.h", 447 "source/i18n/pluralranges.h", 448 "source/i18n/plurrule_impl.h", 449 "source/i18n/quant.h", 450 "source/i18n/quantityformatter.h", 451 "source/i18n/rbt.h", 452 "source/i18n/rbt_data.h", 453 "source/i18n/rbt_pars.h", 454 "source/i18n/rbt_rule.h", 455 "source/i18n/rbt_set.h", 456 "source/i18n/regexcmp.h", 457 "source/i18n/regexcst.h", 458 "source/i18n/regeximp.h", 459 "source/i18n/regexst.h", 460 "source/i18n/regextxt.h", 461 "source/i18n/region_impl.h", 462 "source/i18n/reldtfmt.h", 463 "source/i18n/remtrans.h", 464 "source/i18n/scriptset.h", 465 "source/i18n/selfmtimpl.h", 466 "source/i18n/sharedbreakiterator.h", 467 "source/i18n/sharedcalendar.h", 468 "source/i18n/shareddateformatsymbols.h", 469 "source/i18n/sharednumberformat.h", 470 "source/i18n/sharedpluralrules.h", 471 "source/i18n/smpdtfst.h", 472 "source/i18n/standardplural.h", 473 "source/i18n/string_segment.h", 474 "source/i18n/strmatch.h", 475 "source/i18n/strrepl.h", 476 "source/i18n/taiwncal.h", 477 "source/i18n/titletrn.h", 478 "source/i18n/tolowtrn.h", 479 "source/i18n/toupptrn.h", 480 "source/i18n/transreg.h", 481 "source/i18n/tridpars.h", 482 "source/i18n/tzgnames.h", 483 "source/i18n/tznames_impl.h", 484 "source/i18n/ucln_in.h", 485 "source/i18n/ucol_imp.h", 486 "source/i18n/uitercollationiterator.h", 487 "source/i18n/umsg_imp.h", 488 "source/i18n/unesctrn.h", 489 "source/i18n/uni2name.h", 490 "source/i18n/unicode/alphaindex.h", 491 "source/i18n/unicode/basictz.h", 492 "source/i18n/unicode/calendar.h", 493 "source/i18n/unicode/choicfmt.h", 494 "source/i18n/unicode/coleitr.h", 495 "source/i18n/unicode/coll.h", 496 "source/i18n/unicode/compactdecimalformat.h", 497 "source/i18n/unicode/curramt.h", 498 "source/i18n/unicode/currpinf.h", 499 "source/i18n/unicode/currunit.h", 500 "source/i18n/unicode/datefmt.h", 501 "source/i18n/unicode/dcfmtsym.h", 502 "source/i18n/unicode/decimfmt.h", 503 "source/i18n/unicode/displayoptions.h", 504 "source/i18n/unicode/dtfmtsym.h", 505 "source/i18n/unicode/dtitvfmt.h", 506 "source/i18n/unicode/dtitvinf.h", 507 "source/i18n/unicode/dtptngen.h", 508 "source/i18n/unicode/dtrule.h", 509 "source/i18n/unicode/fieldpos.h", 510 "source/i18n/unicode/fmtable.h", 511 "source/i18n/unicode/format.h", 512 "source/i18n/unicode/formattednumber.h", 513 "source/i18n/unicode/formattedvalue.h", 514 "source/i18n/unicode/fpositer.h", 515 "source/i18n/unicode/gender.h", 516 "source/i18n/unicode/gregocal.h", 517 "source/i18n/unicode/listformatter.h", 518 "source/i18n/unicode/measfmt.h", 519 "source/i18n/unicode/measunit.h", 520 "source/i18n/unicode/measure.h", 521 "source/i18n/unicode/msgfmt.h", 522 "source/i18n/unicode/nounit.h", 523 "source/i18n/unicode/numberformatter.h", 524 "source/i18n/unicode/numberrangeformatter.h", 525 "source/i18n/unicode/numfmt.h", 526 "source/i18n/unicode/numsys.h", 527 "source/i18n/unicode/plurfmt.h", 528 "source/i18n/unicode/plurrule.h", 529 "source/i18n/unicode/rbnf.h", 530 "source/i18n/unicode/rbtz.h", 531 "source/i18n/unicode/regex.h", 532 "source/i18n/unicode/region.h", 533 "source/i18n/unicode/reldatefmt.h", 534 "source/i18n/unicode/scientificnumberformatter.h", 535 "source/i18n/unicode/search.h", 536 "source/i18n/unicode/selfmt.h", 537 "source/i18n/unicode/simplenumberformatter.h", 538 "source/i18n/unicode/simpletz.h", 539 "source/i18n/unicode/smpdtfmt.h", 540 "source/i18n/unicode/sortkey.h", 541 "source/i18n/unicode/stsearch.h", 542 "source/i18n/unicode/tblcoll.h", 543 "source/i18n/unicode/timezone.h", 544 "source/i18n/unicode/tmunit.h", 545 "source/i18n/unicode/tmutamt.h", 546 "source/i18n/unicode/tmutfmt.h", 547 "source/i18n/unicode/translit.h", 548 "source/i18n/unicode/tzfmt.h", 549 "source/i18n/unicode/tznames.h", 550 "source/i18n/unicode/tzrule.h", 551 "source/i18n/unicode/tztrans.h", 552 "source/i18n/unicode/ucal.h", 553 "source/i18n/unicode/ucol.h", 554 "source/i18n/unicode/ucoleitr.h", 555 "source/i18n/unicode/ucsdet.h", 556 "source/i18n/unicode/udat.h", 557 "source/i18n/unicode/udateintervalformat.h", 558 "source/i18n/unicode/udatpg.h", 559 "source/i18n/unicode/udisplayoptions.h", 560 "source/i18n/unicode/ufieldpositer.h", 561 "source/i18n/unicode/uformattable.h", 562 "source/i18n/unicode/uformattednumber.h", 563 "source/i18n/unicode/uformattedvalue.h", 564 "source/i18n/unicode/ugender.h", 565 "source/i18n/unicode/ulistformatter.h", 566 "source/i18n/unicode/ulocdata.h", 567 "source/i18n/unicode/umsg.h", 568 "source/i18n/unicode/unirepl.h", 569 "source/i18n/unicode/unum.h", 570 "source/i18n/unicode/unumberformatter.h", 571 "source/i18n/unicode/unumberoptions.h", 572 "source/i18n/unicode/unumberrangeformatter.h", 573 "source/i18n/unicode/unumsys.h", 574 "source/i18n/unicode/upluralrules.h", 575 "source/i18n/unicode/uregex.h", 576 "source/i18n/unicode/uregion.h", 577 "source/i18n/unicode/ureldatefmt.h", 578 "source/i18n/unicode/usearch.h", 579 "source/i18n/unicode/usimplenumberformatter.h", 580 "source/i18n/unicode/uspoof.h", 581 "source/i18n/unicode/utmscale.h", 582 "source/i18n/unicode/utrans.h", 583 "source/i18n/unicode/vtzone.h", 584 "source/i18n/units_complexconverter.h", 585 "source/i18n/units_converter.h", 586 "source/i18n/units_data.h", 587 "source/i18n/units_router.h", 588 "source/i18n/uspoof_conf.h", 589 "source/i18n/uspoof_impl.h", 590 "source/i18n/usrchimp.h", 591 "source/i18n/utf16collationiterator.h", 592 "source/i18n/utf8collationiterator.h", 593 "source/i18n/vzone.h", 594 "source/i18n/windtfmt.h", 595 "source/i18n/winnmfmt.h", 596 "source/i18n/wintzimpl.h", 597 "source/i18n/zonemeta.h", 598 "source/i18n/zrule.h", 599 "source/i18n/ztrans.h", 600 "SkLoadICU.h", 601] 602 603ICU_SRCS = [ 604 "source/common/appendable.cpp", 605 "source/common/bmpset.cpp", 606 "source/common/brkeng.cpp", 607 "source/common/brkiter.cpp", 608 "source/common/bytesinkutil.cpp", 609 "source/common/bytestream.cpp", 610 "source/common/bytestrie.cpp", 611 "source/common/bytestriebuilder.cpp", 612 "source/common/bytestrieiterator.cpp", 613 "source/common/caniter.cpp", 614 "source/common/characterproperties.cpp", 615 "source/common/chariter.cpp", 616 "source/common/charstr.cpp", 617 "source/common/cmemory.cpp", 618 "source/common/cstr.cpp", 619 "source/common/cstring.cpp", 620 "source/common/cwchar.cpp", 621 "source/common/dictbe.cpp", 622 "source/common/dictionarydata.cpp", 623 "source/common/dtintrv.cpp", 624 "source/common/edits.cpp", 625 "source/common/emojiprops.cpp", 626 "source/common/errorcode.cpp", 627 "source/common/filteredbrk.cpp", 628 "source/common/filterednormalizer2.cpp", 629 "source/common/icudataver.cpp", 630 "source/common/icuplug.cpp", 631 "source/common/loadednormalizer2impl.cpp", 632 "source/common/localebuilder.cpp", 633 "source/common/localematcher.cpp", 634 "source/common/localeprioritylist.cpp", 635 "source/common/locavailable.cpp", 636 "source/common/locbased.cpp", 637 "source/common/locdispnames.cpp", 638 "source/common/locdistance.cpp", 639 "source/common/locdspnm.cpp", 640 "source/common/locid.cpp", 641 "source/common/loclikely.cpp", 642 "source/common/loclikelysubtags.cpp", 643 "source/common/locmap.cpp", 644 "source/common/locresdata.cpp", 645 "source/common/locutil.cpp", 646 "source/common/lsr.cpp", 647 "source/common/lstmbe.cpp", 648 "source/common/messagepattern.cpp", 649 "source/common/mlbe.cpp", 650 "source/common/normalizer2.cpp", 651 "source/common/normalizer2impl.cpp", 652 "source/common/normlzr.cpp", 653 "source/common/parsepos.cpp", 654 "source/common/patternprops.cpp", 655 "source/common/pluralmap.cpp", 656 "source/common/propname.cpp", 657 "source/common/propsvec.cpp", 658 "source/common/punycode.cpp", 659 "source/common/putil.cpp", 660 "source/common/rbbi.cpp", 661 "source/common/rbbi_cache.cpp", 662 "source/common/rbbidata.cpp", 663 "source/common/rbbinode.cpp", 664 "source/common/rbbirb.cpp", 665 "source/common/rbbiscan.cpp", 666 "source/common/rbbisetb.cpp", 667 "source/common/rbbistbl.cpp", 668 "source/common/rbbitblb.cpp", 669 "source/common/resbund.cpp", 670 "source/common/resbund_cnv.cpp", 671 "source/common/resource.cpp", 672 "source/common/restrace.cpp", 673 "source/common/ruleiter.cpp", 674 "source/common/schriter.cpp", 675 "source/common/serv.cpp", 676 "source/common/servlk.cpp", 677 "source/common/servlkf.cpp", 678 "source/common/servls.cpp", 679 "source/common/servnotf.cpp", 680 "source/common/servrbf.cpp", 681 "source/common/servslkf.cpp", 682 "source/common/sharedobject.cpp", 683 "source/common/simpleformatter.cpp", 684 "source/common/static_unicode_sets.cpp", 685 "source/common/stringpiece.cpp", 686 "source/common/stringtriebuilder.cpp", 687 "source/common/uarrsort.cpp", 688 "source/common/ubidi.cpp", 689 "source/common/ubidi_props.cpp", 690 "source/common/ubidiln.cpp", 691 "source/common/ubiditransform.cpp", 692 "source/common/ubidiwrt.cpp", 693 "source/common/ubrk.cpp", 694 "source/common/ucase.cpp", 695 "source/common/ucasemap.cpp", 696 "source/common/ucasemap_titlecase_brkiter.cpp", 697 "source/common/ucat.cpp", 698 "source/common/uchar.cpp", 699 "source/common/ucharstrie.cpp", 700 "source/common/ucharstriebuilder.cpp", 701 "source/common/ucharstrieiterator.cpp", 702 "source/common/uchriter.cpp", 703 "source/common/ucln_cmn.cpp", 704 "source/common/ucmndata.cpp", 705 "source/common/ucnv.cpp", 706 "source/common/ucnv2022.cpp", 707 "source/common/ucnv_bld.cpp", 708 "source/common/ucnv_cb.cpp", 709 "source/common/ucnv_cnv.cpp", 710 "source/common/ucnv_ct.cpp", 711 "source/common/ucnv_err.cpp", 712 "source/common/ucnv_ext.cpp", 713 "source/common/ucnv_io.cpp", 714 "source/common/ucnv_lmb.cpp", 715 "source/common/ucnv_set.cpp", 716 "source/common/ucnv_u16.cpp", 717 "source/common/ucnv_u32.cpp", 718 "source/common/ucnv_u7.cpp", 719 "source/common/ucnv_u8.cpp", 720 "source/common/ucnvbocu.cpp", 721 "source/common/ucnvdisp.cpp", 722 "source/common/ucnvhz.cpp", 723 "source/common/ucnvisci.cpp", 724 "source/common/ucnvlat1.cpp", 725 "source/common/ucnvmbcs.cpp", 726 "source/common/ucnvscsu.cpp", 727 "source/common/ucnvsel.cpp", 728 "source/common/ucol_swp.cpp", 729 "source/common/ucptrie.cpp", 730 "source/common/ucurr.cpp", 731 "source/common/udata.cpp", 732 "source/common/udatamem.cpp", 733 "source/common/udataswp.cpp", 734 "source/common/uenum.cpp", 735 "source/common/uhash.cpp", 736 "source/common/uhash_us.cpp", 737 "source/common/uidna.cpp", 738 "source/common/uinit.cpp", 739 "source/common/uinvchar.cpp", 740 "source/common/uiter.cpp", 741 "source/common/ulist.cpp", 742 "source/common/uloc.cpp", 743 "source/common/uloc_keytype.cpp", 744 "source/common/uloc_tag.cpp", 745 "source/common/ulocale.cpp", 746 "source/common/ulocbuilder.cpp", 747 "source/common/umapfile.cpp", 748 "source/common/umath.cpp", 749 "source/common/umutablecptrie.cpp", 750 "source/common/umutex.cpp", 751 "source/common/unames.cpp", 752 "source/common/unifiedcache.cpp", 753 "source/common/unifilt.cpp", 754 "source/common/unifunct.cpp", 755 "source/common/uniset.cpp", 756 "source/common/uniset_closure.cpp", 757 "source/common/uniset_props.cpp", 758 "source/common/unisetspan.cpp", 759 "source/common/unistr.cpp", 760 "source/common/unistr_case.cpp", 761 "source/common/unistr_case_locale.cpp", 762 "source/common/unistr_cnv.cpp", 763 "source/common/unistr_props.cpp", 764 "source/common/unistr_titlecase_brkiter.cpp", 765 "source/common/unorm.cpp", 766 "source/common/unormcmp.cpp", 767 "source/common/uobject.cpp", 768 "source/common/uprops.cpp", 769 "source/common/ures_cnv.cpp", 770 "source/common/uresbund.cpp", 771 "source/common/uresdata.cpp", 772 "source/common/usc_impl.cpp", 773 "source/common/uscript.cpp", 774 "source/common/uscript_props.cpp", 775 "source/common/uset.cpp", 776 "source/common/uset_props.cpp", 777 "source/common/usetiter.cpp", 778 "source/common/ushape.cpp", 779 "source/common/usprep.cpp", 780 "source/common/ustack.cpp", 781 "source/common/ustr_cnv.cpp", 782 "source/common/ustr_titlecase_brkiter.cpp", 783 "source/common/ustr_wcs.cpp", 784 "source/common/ustrcase.cpp", 785 "source/common/ustrcase_locale.cpp", 786 "source/common/ustrenum.cpp", 787 "source/common/ustrfmt.cpp", 788 "source/common/ustring.cpp", 789 "source/common/ustrtrns.cpp", 790 "source/common/utext.cpp", 791 "source/common/utf_impl.cpp", 792 "source/common/util.cpp", 793 "source/common/util_props.cpp", 794 "source/common/utrace.cpp", 795 "source/common/utrie.cpp", 796 "source/common/utrie2.cpp", 797 "source/common/utrie2_builder.cpp", 798 "source/common/utrie_swap.cpp", 799 "source/common/uts46.cpp", 800 "source/common/utypes.cpp", 801 "source/common/uvector.cpp", 802 "source/common/uvectr32.cpp", 803 "source/common/uvectr64.cpp", 804 "source/common/wintz.cpp", 805 "source/i18n/alphaindex.cpp", 806 "source/i18n/anytrans.cpp", 807 "source/i18n/astro.cpp", 808 "source/i18n/basictz.cpp", 809 "source/i18n/bocsu.cpp", 810 "source/i18n/brktrans.cpp", 811 "source/i18n/buddhcal.cpp", 812 "source/i18n/calendar.cpp", 813 "source/i18n/casetrn.cpp", 814 "source/i18n/cecal.cpp", 815 "source/i18n/chnsecal.cpp", 816 "source/i18n/choicfmt.cpp", 817 "source/i18n/coleitr.cpp", 818 "source/i18n/coll.cpp", 819 "source/i18n/collation.cpp", 820 "source/i18n/collationbuilder.cpp", 821 "source/i18n/collationcompare.cpp", 822 "source/i18n/collationdata.cpp", 823 "source/i18n/collationdatabuilder.cpp", 824 "source/i18n/collationdatareader.cpp", 825 "source/i18n/collationdatawriter.cpp", 826 "source/i18n/collationfastlatin.cpp", 827 "source/i18n/collationfastlatinbuilder.cpp", 828 "source/i18n/collationfcd.cpp", 829 "source/i18n/collationiterator.cpp", 830 "source/i18n/collationkeys.cpp", 831 "source/i18n/collationroot.cpp", 832 "source/i18n/collationrootelements.cpp", 833 "source/i18n/collationruleparser.cpp", 834 "source/i18n/collationsets.cpp", 835 "source/i18n/collationsettings.cpp", 836 "source/i18n/collationtailoring.cpp", 837 "source/i18n/collationweights.cpp", 838 "source/i18n/compactdecimalformat.cpp", 839 "source/i18n/coptccal.cpp", 840 "source/i18n/cpdtrans.cpp", 841 "source/i18n/csdetect.cpp", 842 "source/i18n/csmatch.cpp", 843 "source/i18n/csr2022.cpp", 844 "source/i18n/csrecog.cpp", 845 "source/i18n/csrmbcs.cpp", 846 "source/i18n/csrsbcs.cpp", 847 "source/i18n/csrucode.cpp", 848 "source/i18n/csrutf8.cpp", 849 "source/i18n/curramt.cpp", 850 "source/i18n/currfmt.cpp", 851 "source/i18n/currpinf.cpp", 852 "source/i18n/currunit.cpp", 853 "source/i18n/dangical.cpp", 854 "source/i18n/datefmt.cpp", 855 "source/i18n/dayperiodrules.cpp", 856 "source/i18n/dcfmtsym.cpp", 857 "source/i18n/decContext.cpp", 858 "source/i18n/decNumber.cpp", 859 "source/i18n/decimfmt.cpp", 860 "source/i18n/displayoptions.cpp", 861 "source/i18n/double-conversion-bignum-dtoa.cpp", 862 "source/i18n/double-conversion-bignum.cpp", 863 "source/i18n/double-conversion-cached-powers.cpp", 864 "source/i18n/double-conversion-double-to-string.cpp", 865 "source/i18n/double-conversion-fast-dtoa.cpp", 866 "source/i18n/double-conversion-string-to-double.cpp", 867 "source/i18n/double-conversion-strtod.cpp", 868 "source/i18n/dtfmtsym.cpp", 869 "source/i18n/dtitvfmt.cpp", 870 "source/i18n/dtitvinf.cpp", 871 "source/i18n/dtptngen.cpp", 872 "source/i18n/dtrule.cpp", 873 "source/i18n/erarules.cpp", 874 "source/i18n/esctrn.cpp", 875 "source/i18n/ethpccal.cpp", 876 "source/i18n/fmtable.cpp", 877 "source/i18n/fmtable_cnv.cpp", 878 "source/i18n/format.cpp", 879 "source/i18n/formatted_string_builder.cpp", 880 "source/i18n/formattedval_iterimpl.cpp", 881 "source/i18n/formattedval_sbimpl.cpp", 882 "source/i18n/formattedvalue.cpp", 883 "source/i18n/fphdlimp.cpp", 884 "source/i18n/fpositer.cpp", 885 "source/i18n/funcrepl.cpp", 886 "source/i18n/gender.cpp", 887 "source/i18n/gregocal.cpp", 888 "source/i18n/gregoimp.cpp", 889 "source/i18n/hebrwcal.cpp", 890 "source/i18n/indiancal.cpp", 891 "source/i18n/inputext.cpp", 892 "source/i18n/islamcal.cpp", 893 "source/i18n/iso8601cal.cpp", 894 "source/i18n/japancal.cpp", 895 "source/i18n/listformatter.cpp", 896 "source/i18n/measfmt.cpp", 897 "source/i18n/measunit.cpp", 898 "source/i18n/measunit_extra.cpp", 899 "source/i18n/measure.cpp", 900 "source/i18n/msgfmt.cpp", 901 "source/i18n/name2uni.cpp", 902 "source/i18n/nfrs.cpp", 903 "source/i18n/nfrule.cpp", 904 "source/i18n/nfsubs.cpp", 905 "source/i18n/nortrans.cpp", 906 "source/i18n/nultrans.cpp", 907 "source/i18n/number_affixutils.cpp", 908 "source/i18n/number_asformat.cpp", 909 "source/i18n/number_capi.cpp", 910 "source/i18n/number_compact.cpp", 911 "source/i18n/number_currencysymbols.cpp", 912 "source/i18n/number_decimalquantity.cpp", 913 "source/i18n/number_decimfmtprops.cpp", 914 "source/i18n/number_fluent.cpp", 915 "source/i18n/number_formatimpl.cpp", 916 "source/i18n/number_grouping.cpp", 917 "source/i18n/number_integerwidth.cpp", 918 "source/i18n/number_longnames.cpp", 919 "source/i18n/number_mapper.cpp", 920 "source/i18n/number_modifiers.cpp", 921 "source/i18n/number_multiplier.cpp", 922 "source/i18n/number_notation.cpp", 923 "source/i18n/number_output.cpp", 924 "source/i18n/number_padding.cpp", 925 "source/i18n/number_patternmodifier.cpp", 926 "source/i18n/number_patternstring.cpp", 927 "source/i18n/number_rounding.cpp", 928 "source/i18n/number_scientific.cpp", 929 "source/i18n/number_simple.cpp", 930 "source/i18n/number_skeletons.cpp", 931 "source/i18n/number_symbolswrapper.cpp", 932 "source/i18n/number_usageprefs.cpp", 933 "source/i18n/number_utils.cpp", 934 "source/i18n/numfmt.cpp", 935 "source/i18n/numparse_affixes.cpp", 936 "source/i18n/numparse_compositions.cpp", 937 "source/i18n/numparse_currency.cpp", 938 "source/i18n/numparse_decimal.cpp", 939 "source/i18n/numparse_impl.cpp", 940 "source/i18n/numparse_parsednumber.cpp", 941 "source/i18n/numparse_scientific.cpp", 942 "source/i18n/numparse_symbols.cpp", 943 "source/i18n/numparse_validators.cpp", 944 "source/i18n/numrange_capi.cpp", 945 "source/i18n/numrange_fluent.cpp", 946 "source/i18n/numrange_impl.cpp", 947 "source/i18n/numsys.cpp", 948 "source/i18n/olsontz.cpp", 949 "source/i18n/persncal.cpp", 950 "source/i18n/pluralranges.cpp", 951 "source/i18n/plurfmt.cpp", 952 "source/i18n/plurrule.cpp", 953 "source/i18n/quant.cpp", 954 "source/i18n/quantityformatter.cpp", 955 "source/i18n/rbnf.cpp", 956 "source/i18n/rbt.cpp", 957 "source/i18n/rbt_data.cpp", 958 "source/i18n/rbt_pars.cpp", 959 "source/i18n/rbt_rule.cpp", 960 "source/i18n/rbt_set.cpp", 961 "source/i18n/rbtz.cpp", 962 "source/i18n/regexcmp.cpp", 963 "source/i18n/regeximp.cpp", 964 "source/i18n/regexst.cpp", 965 "source/i18n/regextxt.cpp", 966 "source/i18n/region.cpp", 967 "source/i18n/reldatefmt.cpp", 968 "source/i18n/reldtfmt.cpp", 969 "source/i18n/rematch.cpp", 970 "source/i18n/remtrans.cpp", 971 "source/i18n/repattrn.cpp", 972 "source/i18n/rulebasedcollator.cpp", 973 "source/i18n/scientificnumberformatter.cpp", 974 "source/i18n/scriptset.cpp", 975 "source/i18n/search.cpp", 976 "source/i18n/selfmt.cpp", 977 "source/i18n/sharedbreakiterator.cpp", 978 "source/i18n/simpletz.cpp", 979 "source/i18n/smpdtfmt.cpp", 980 "source/i18n/smpdtfst.cpp", 981 "source/i18n/sortkey.cpp", 982 "source/i18n/standardplural.cpp", 983 "source/i18n/string_segment.cpp", 984 "source/i18n/strmatch.cpp", 985 "source/i18n/strrepl.cpp", 986 "source/i18n/stsearch.cpp", 987 "source/i18n/taiwncal.cpp", 988 "source/i18n/timezone.cpp", 989 "source/i18n/titletrn.cpp", 990 "source/i18n/tmunit.cpp", 991 "source/i18n/tmutamt.cpp", 992 "source/i18n/tmutfmt.cpp", 993 "source/i18n/tolowtrn.cpp", 994 "source/i18n/toupptrn.cpp", 995 "source/i18n/translit.cpp", 996 "source/i18n/transreg.cpp", 997 "source/i18n/tridpars.cpp", 998 "source/i18n/tzfmt.cpp", 999 "source/i18n/tzgnames.cpp", 1000 "source/i18n/tznames.cpp", 1001 "source/i18n/tznames_impl.cpp", 1002 "source/i18n/tzrule.cpp", 1003 "source/i18n/tztrans.cpp", 1004 "source/i18n/ucal.cpp", 1005 "source/i18n/ucln_in.cpp", 1006 "source/i18n/ucol.cpp", 1007 "source/i18n/ucol_res.cpp", 1008 "source/i18n/ucol_sit.cpp", 1009 "source/i18n/ucoleitr.cpp", 1010 "source/i18n/ucsdet.cpp", 1011 "source/i18n/udat.cpp", 1012 "source/i18n/udateintervalformat.cpp", 1013 "source/i18n/udatpg.cpp", 1014 "source/i18n/ufieldpositer.cpp", 1015 "source/i18n/uitercollationiterator.cpp", 1016 "source/i18n/ulistformatter.cpp", 1017 "source/i18n/ulocdata.cpp", 1018 "source/i18n/umsg.cpp", 1019 "source/i18n/unesctrn.cpp", 1020 "source/i18n/uni2name.cpp", 1021 "source/i18n/units_complexconverter.cpp", 1022 "source/i18n/units_converter.cpp", 1023 "source/i18n/units_data.cpp", 1024 "source/i18n/units_router.cpp", 1025 "source/i18n/unum.cpp", 1026 "source/i18n/unumsys.cpp", 1027 "source/i18n/upluralrules.cpp", 1028 "source/i18n/uregex.cpp", 1029 "source/i18n/uregexc.cpp", 1030 "source/i18n/uregion.cpp", 1031 "source/i18n/usearch.cpp", 1032 "source/i18n/uspoof.cpp", 1033 "source/i18n/uspoof_build.cpp", 1034 "source/i18n/uspoof_conf.cpp", 1035 "source/i18n/uspoof_impl.cpp", 1036 "source/i18n/utf16collationiterator.cpp", 1037 "source/i18n/utf8collationiterator.cpp", 1038 "source/i18n/utmscale.cpp", 1039 "source/i18n/utrans.cpp", 1040 "source/i18n/vtzone.cpp", 1041 "source/i18n/vzone.cpp", 1042 "source/i18n/windtfmt.cpp", 1043 "source/i18n/winnmfmt.cpp", 1044 "source/i18n/wintzimpl.cpp", 1045 "source/i18n/zonemeta.cpp", 1046 "source/i18n/zrule.cpp", 1047 "source/i18n/ztrans.cpp", 1048] + select({ 1049 "@platforms//os:windows": [ 1050 "source/stubdata/stubdata.cpp", 1051 "SkLoadICU.cpp", 1052 ], 1053 ":cpu_wasm": ["generated_icu_wasm_dat.cpp"], 1054 "@platforms//os:android": ["generated_icu_android_dat.S"], 1055 "@platforms//os:ios": ["generated_icu_ios_dat.S"], 1056 "@platforms//os:macos": ["generated_icu_mac_dat.S"], 1057 "//conditions:default": ["generated_icu_common_dat.S"], 1058}) 1059 1060cc_library( 1061 name = "icu", 1062 srcs = ICU_SRCS, 1063 hdrs = ICU_HDRS, 1064 copts = [ 1065 "-Wno-deprecated-declarations", 1066 "-Wno-unused-but-set-variable", 1067 "-Wno-unused-function", 1068 ], 1069 defines = [ 1070 "SK_USING_THIRD_PARTY_ICU", 1071 "U_DISABLE_RENAMING=1", 1072 "U_USING_ICU_NAMESPACE=0", 1073 ], 1074 includes = [ 1075 "source/common", 1076 "source/i18n", 1077 ], 1078 local_defines = [ 1079 # http://userguide.icu-project.org/howtouseicu 1080 "U_COMMON_IMPLEMENTATION", 1081 "U_STATIC_IMPLEMENTATION", 1082 "U_ENABLE_DYLOAD=0", 1083 "U_I18N_IMPLEMENTATION", 1084 1085 # If we don't set this to zero, ICU will set it to 600, 1086 # which makes Macs set _POSIX_C_SOURCE=200112L, 1087 # which makes Macs set __DARWIN_C_LEVEL=_POSIX_C_SOURCE instead of =__DARWIN_C_FULL, 1088 # which makes <time.h> not expose timespec_get, 1089 # which makes recent libc++ <ctime> not #include-able with -std=c++17. 1090 "_XOPEN_SOURCE=0", 1091 ] + select({ 1092 # Tell ICU that we are a 32 bit platform, otherwise, 1093 # double-conversion-utils.h doesn't know how to operate. 1094 ":cpu_wasm": ["__i386__"], 1095 "//conditions:default": [], 1096 }), 1097 visibility = ["//visibility:public"], 1098) 1099 1100cc_library( 1101 name = "icu_headers", 1102 hdrs = ICU_HDRS, 1103 includes = [ 1104 "source/common", 1105 "source/i18n", 1106 ], 1107 visibility = ["//visibility:public"], 1108) 1109