1# Copyright (c) 2012 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5{ 6 'variables': { 7 'use_system_icu%': 0, 8 'icu_use_data_file_flag%': 0, 9 'want_separate_host_toolset%': 1, 10 }, 11 'target_defaults': { 12 'direct_dependent_settings': { 13 'defines': [ 14 # Tell ICU to not insert |using namespace icu;| into its headers, 15 # so that chrome's source explicitly has to use |icu::|. 16 'U_USING_ICU_NAMESPACE=0', 17 ], 18 }, 19 'defines': [ 20 'U_USING_ICU_NAMESPACE=0', 21 ], 22 'conditions': [ 23 ['component=="static_library"', { 24 'defines': [ 25 'U_STATIC_IMPLEMENTATION', 26 ], 27 }], 28 ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ 29 or OS=="netbsd" or OS=="mac" or OS=="android") and \ 30 (target_arch=="arm" or target_arch=="ia32" or \ 31 target_arch=="mipsel")', { 32 'target_conditions': [ 33 ['_toolset=="host"', { 34 'cflags': [ '-m32' ], 35 'ldflags': [ '-m32' ], 36 'asflags': [ '-32' ], 37 'xcode_settings': { 38 'ARCHS': [ 'i386' ], 39 }, 40 }], 41 ], 42 }], 43 ], 44 'include_dirs': [ 45 'source/common', 46 'source/i18n', 47 ], 48 'msvs_disabled_warnings': [4005, 4068, 4355, 4996, 4267], 49 }, 50 'conditions': [ 51 ['use_system_icu==0 or want_separate_host_toolset==1', { 52 'targets': [ 53 { 54 'target_name': 'icudata', 55 'type': 'static_library', 56 'defines': [ 57 'U_HIDE_DATA_SYMBOL', 58 ], 59 'sources': [ 60 # These are hand-generated, but will do for now. The linux 61 # version is an identical copy of the (mac) icudt46l_dat.S file, 62 # modulo removal of the .private_extern and .const directives and 63 # with no leading underscore on the icudt46_dat symbol. 64 'android/icudt46l_dat.S', 65 'linux/icudt46l_dat.S', 66 'mac/icudt46l_dat.S', 67 ], 68 'conditions': [ 69 [ 'use_system_icu==1', { 70 'toolsets': ['host'], 71 }, { 72 'toolsets': ['host', 'target'], 73 }], 74 [ 'OS == "win"', { 75 'type': 'none', 76 'copies': [ 77 { 78 'destination': '<(PRODUCT_DIR)', 79 'files': [ 80 'windows/icudt.dll', 81 ], 82 }, 83 ], 84 }], 85 [ 'OS != "win" and icu_use_data_file_flag', { 86 # Remove any assembly data file. 87 'sources/': [['exclude', 'icudt46l_dat']], 88 # Compile in the stub data symbol. 89 'sources': ['source/stubdata/stubdata.c'], 90 # Make sure any binary depending on this gets the data file. 91 'link_settings': { 92 'target_conditions': [ 93 ['(OS == "mac" and _mac_bundle) or OS=="ios"', { 94 'mac_bundle_resources': [ 95 'source/data/in/icudt46l.dat', 96 ], 97 }, { 98 'copies': [{ 99 'destination': '<(PRODUCT_DIR)', 100 'files': [ 101 'source/data/in/icudt46l.dat', 102 ], 103 }], 104 }], 105 ], # target_conditions 106 }, # link_settings 107 }], 108 ], 109 'target_conditions': [ 110 [ 'OS == "win" or OS == "mac" or OS == "ios" or ' 111 '(OS == "android" and (_toolset == "target" or host_os != "linux"))', { 112 'sources!': ['linux/icudt46l_dat.S'], 113 }], 114 [ 'OS != "android" or _toolset == "host"', { 115 'sources!': ['android/icudt46l_dat.S'], 116 }], 117 [ 'OS != "mac" and OS != "ios" and ' 118 '(OS != "android" or _toolset != "host" or host_os != "mac")', { 119 'sources!': ['mac/icudt46l_dat.S'], 120 }], 121 ], 122 }, 123 { 124 'target_name': 'icui18n', 125 'type': '<(component)', 126 'sources': [ 127 'source/i18n/anytrans.cpp', 128 'source/i18n/astro.cpp', 129 'source/i18n/basictz.cpp', 130 'source/i18n/bms.cpp', 131 'source/i18n/bmsearch.cpp', 132 'source/i18n/bocsu.c', 133 'source/i18n/brktrans.cpp', 134 'source/i18n/buddhcal.cpp', 135 'source/i18n/calendar.cpp', 136 'source/i18n/casetrn.cpp', 137 'source/i18n/cecal.cpp', 138 'source/i18n/chnsecal.cpp', 139 'source/i18n/choicfmt.cpp', 140 'source/i18n/coleitr.cpp', 141 'source/i18n/coll.cpp', 142 'source/i18n/colldata.cpp', 143 'source/i18n/coptccal.cpp', 144 'source/i18n/cpdtrans.cpp', 145 'source/i18n/csdetect.cpp', 146 'source/i18n/csmatch.cpp', 147 'source/i18n/csr2022.cpp', 148 'source/i18n/csrecog.cpp', 149 'source/i18n/csrmbcs.cpp', 150 'source/i18n/csrsbcs.cpp', 151 'source/i18n/csrucode.cpp', 152 'source/i18n/csrutf8.cpp', 153 'source/i18n/curramt.cpp', 154 'source/i18n/currfmt.cpp', 155 'source/i18n/currpinf.cpp', 156 'source/i18n/currunit.cpp', 157 'source/i18n/datefmt.cpp', 158 'source/i18n/dcfmtsym.cpp', 159 'source/i18n/decContext.c', 160 'source/i18n/decNumber.c', 161 'source/i18n/decimfmt.cpp', 162 'source/i18n/digitlst.cpp', 163 'source/i18n/dtfmtsym.cpp', 164 'source/i18n/dtitvfmt.cpp', 165 'source/i18n/dtitvinf.cpp', 166 'source/i18n/dtptngen.cpp', 167 'source/i18n/dtrule.cpp', 168 'source/i18n/esctrn.cpp', 169 'source/i18n/ethpccal.cpp', 170 'source/i18n/fmtable.cpp', 171 'source/i18n/fmtable_cnv.cpp', 172 'source/i18n/format.cpp', 173 'source/i18n/fphdlimp.cpp', 174 'source/i18n/fpositer.cpp', 175 'source/i18n/funcrepl.cpp', 176 'source/i18n/gregocal.cpp', 177 'source/i18n/gregoimp.cpp', 178 'source/i18n/hebrwcal.cpp', 179 'source/i18n/indiancal.cpp', 180 'source/i18n/inputext.cpp', 181 'source/i18n/islamcal.cpp', 182 'source/i18n/japancal.cpp', 183 'source/i18n/locdspnm.cpp', 184 'source/i18n/measfmt.cpp', 185 'source/i18n/measure.cpp', 186 'source/i18n/msgfmt.cpp', 187 'source/i18n/name2uni.cpp', 188 'source/i18n/nfrs.cpp', 189 'source/i18n/nfrule.cpp', 190 'source/i18n/nfsubs.cpp', 191 'source/i18n/nortrans.cpp', 192 'source/i18n/nultrans.cpp', 193 'source/i18n/numfmt.cpp', 194 'source/i18n/numsys.cpp', 195 'source/i18n/olsontz.cpp', 196 'source/i18n/persncal.cpp', 197 'source/i18n/plurfmt.cpp', 198 'source/i18n/plurrule.cpp', 199 'source/i18n/quant.cpp', 200 'source/i18n/rbnf.cpp', 201 'source/i18n/rbt.cpp', 202 'source/i18n/rbt_data.cpp', 203 'source/i18n/rbt_pars.cpp', 204 'source/i18n/rbt_rule.cpp', 205 'source/i18n/rbt_set.cpp', 206 'source/i18n/rbtz.cpp', 207 'source/i18n/regexcmp.cpp', 208 'source/i18n/regexst.cpp', 209 'source/i18n/regextxt.cpp', 210 'source/i18n/reldtfmt.cpp', 211 'source/i18n/rematch.cpp', 212 'source/i18n/remtrans.cpp', 213 'source/i18n/repattrn.cpp', 214 'source/i18n/search.cpp', 215 'source/i18n/selfmt.cpp', 216 'source/i18n/simpletz.cpp', 217 'source/i18n/smpdtfmt.cpp', 218 'source/i18n/sortkey.cpp', 219 'source/i18n/strmatch.cpp', 220 'source/i18n/strrepl.cpp', 221 'source/i18n/stsearch.cpp', 222 'source/i18n/taiwncal.cpp', 223 'source/i18n/tblcoll.cpp', 224 'source/i18n/timezone.cpp', 225 'source/i18n/titletrn.cpp', 226 'source/i18n/tmunit.cpp', 227 'source/i18n/tmutamt.cpp', 228 'source/i18n/tmutfmt.cpp', 229 'source/i18n/tolowtrn.cpp', 230 'source/i18n/toupptrn.cpp', 231 'source/i18n/translit.cpp', 232 'source/i18n/transreg.cpp', 233 'source/i18n/tridpars.cpp', 234 'source/i18n/tzrule.cpp', 235 'source/i18n/tztrans.cpp', 236 'source/i18n/ucal.cpp', 237 'source/i18n/ucln_in.c', 238 'source/i18n/ucol.cpp', 239 'source/i18n/ucol_bld.cpp', 240 'source/i18n/ucol_cnt.cpp', 241 'source/i18n/ucol_elm.cpp', 242 'source/i18n/ucol_res.cpp', 243 'source/i18n/ucol_sit.cpp', 244 'source/i18n/ucol_tok.cpp', 245 'source/i18n/ucol_wgt.cpp', 246 'source/i18n/ucoleitr.cpp', 247 'source/i18n/ucsdet.cpp', 248 'source/i18n/ucurr.cpp', 249 'source/i18n/udat.cpp', 250 'source/i18n/udatpg.cpp', 251 'source/i18n/ulocdata.c', 252 'source/i18n/umsg.cpp', 253 'source/i18n/unesctrn.cpp', 254 'source/i18n/uni2name.cpp', 255 'source/i18n/unum.cpp', 256 'source/i18n/uregex.cpp', 257 'source/i18n/uregexc.cpp', 258 'source/i18n/usearch.cpp', 259 'source/i18n/uspoof.cpp', 260 'source/i18n/uspoof_build.cpp', 261 'source/i18n/uspoof_conf.cpp', 262 'source/i18n/uspoof_impl.cpp', 263 'source/i18n/uspoof_wsconf.cpp', 264 'source/i18n/utmscale.c', 265 'source/i18n/utrans.cpp', 266 'source/i18n/vtzone.cpp', 267 'source/i18n/vzone.cpp', 268 'source/i18n/windtfmt.cpp', 269 'source/i18n/winnmfmt.cpp', 270 'source/i18n/wintzimpl.cpp', 271 'source/i18n/zonemeta.cpp', 272 'source/i18n/zrule.cpp', 273 'source/i18n/zstrfmt.cpp', 274 'source/i18n/ztrans.cpp', 275 ], 276 'defines': [ 277 'U_I18N_IMPLEMENTATION', 278 ], 279 'dependencies': [ 280 'icuuc', 281 ], 282 'direct_dependent_settings': { 283 'include_dirs': [ 284 'source/i18n', 285 ], 286 }, 287 'conditions': [ 288 [ 'use_system_icu==1', { 289 'toolsets': ['host'], 290 }, { 291 'toolsets': ['host', 'target'], 292 }], 293 [ 'os_posix == 1 and OS != "mac" and OS != "ios"', { 294 # Since ICU wants to internally use its own deprecated APIs, don't 295 # complain about it. 296 'cflags': [ 297 '-Wno-deprecated-declarations', 298 ], 299 'cflags_cc': [ 300 '-frtti', 301 ], 302 }], 303 ['OS == "mac" or OS == "ios"', { 304 'xcode_settings': { 305 'GCC_ENABLE_CPP_RTTI': 'YES', # -frtti 306 }, 307 }], 308 ['OS == "win"', { 309 'msvs_settings': { 310 'VCCLCompilerTool': { 311 'RuntimeTypeInfo': 'true', 312 }, 313 } 314 }], 315 ['clang==1', { 316 'xcode_settings': { 317 'WARNING_CFLAGS': [ 318 # ICU uses its own deprecated functions. 319 '-Wno-deprecated-declarations', 320 # ICU prefers `a && b || c` over `(a && b) || c`. 321 '-Wno-logical-op-parentheses', 322 # ICU has some `unsigned < 0` checks. 323 '-Wno-tautological-compare', 324 # uspoof.h has a U_NAMESPACE_USE macro. That's a bug, 325 # the header should use U_NAMESPACE_BEGIN instead. 326 # http://bugs.icu-project.org/trac/ticket/9054 327 '-Wno-header-hygiene', 328 # Looks like a real issue, see http://crbug.com/114660 329 '-Wno-return-type-c-linkage', 330 ], 331 }, 332 'cflags': [ 333 '-Wno-deprecated-declarations', 334 '-Wno-logical-op-parentheses', 335 '-Wno-tautological-compare', 336 '-Wno-header-hygiene', 337 '-Wno-return-type-c-linkage', 338 ], 339 }], 340 ['OS == "android" and clang==0', { 341 # Disable sincos() optimization to avoid a linker error since 342 # Android's math library doesn't have sincos(). Either 343 # -fno-builtin-sin or -fno-builtin-cos works. 344 'cflags': [ 345 '-fno-builtin-sin', 346 ], 347 }], 348 ['OS == "android" and use_system_stlport == 1', { 349 'target_conditions': [ 350 ['_toolset == "target"', { 351 # ICU requires RTTI, which is not present in the system's 352 # stlport, so we have to include gabi++. 353 'include_dirs': [ 354 '<(android_src)/abi/cpp/include', 355 ], 356 'link_settings': { 357 'libraries': [ 358 '-lgabi++', 359 ], 360 }, 361 }], 362 ], 363 }], 364 ], 365 }, 366 { 367 'target_name': 'icuuc', 368 'type': '<(component)', 369 'sources': [ 370 'source/common/bmpset.cpp', 371 'source/common/brkeng.cpp', 372 'source/common/brkiter.cpp', 373 'source/common/bytestream.cpp', 374 'source/common/caniter.cpp', 375 'source/common/chariter.cpp', 376 'source/common/charstr.cpp', 377 'source/common/cmemory.c', 378 'source/common/cstring.c', 379 'source/common/cwchar.c', 380 'source/common/dictbe.cpp', 381 'source/common/dtintrv.cpp', 382 'source/common/errorcode.cpp', 383 'source/common/filterednormalizer2.cpp', 384 'source/common/icudataver.c', 385 'source/common/icuplug.c', 386 'source/common/locavailable.cpp', 387 'source/common/locbased.cpp', 388 'source/common/locdispnames.cpp', 389 'source/common/locid.cpp', 390 'source/common/loclikely.cpp', 391 'source/common/locmap.c', 392 'source/common/locresdata.cpp', 393 'source/common/locutil.cpp', 394 'source/common/mutex.cpp', 395 'source/common/normalizer2.cpp', 396 'source/common/normalizer2impl.cpp', 397 'source/common/normlzr.cpp', 398 'source/common/parsepos.cpp', 399 'source/common/propname.cpp', 400 'source/common/propsvec.c', 401 'source/common/punycode.c', 402 'source/common/putil.c', 403 'source/common/rbbi.cpp', 404 'source/common/rbbidata.cpp', 405 'source/common/rbbinode.cpp', 406 'source/common/rbbirb.cpp', 407 'source/common/rbbiscan.cpp', 408 'source/common/rbbisetb.cpp', 409 'source/common/rbbistbl.cpp', 410 'source/common/rbbitblb.cpp', 411 'source/common/resbund.cpp', 412 'source/common/resbund_cnv.cpp', 413 'source/common/ruleiter.cpp', 414 'source/common/schriter.cpp', 415 'source/common/serv.cpp', 416 'source/common/servlk.cpp', 417 'source/common/servlkf.cpp', 418 'source/common/servls.cpp', 419 'source/common/servnotf.cpp', 420 'source/common/servrbf.cpp', 421 'source/common/servslkf.cpp', 422 'source/common/stringpiece.cpp', 423 'source/common/triedict.cpp', 424 'source/common/uarrsort.c', 425 'source/common/ubidi.c', 426 'source/common/ubidi_props.c', 427 'source/common/ubidiln.c', 428 'source/common/ubidiwrt.c', 429 'source/common/ubrk.cpp', 430 'source/common/ucase.c', 431 'source/common/ucasemap.c', 432 'source/common/ucat.c', 433 'source/common/uchar.c', 434 'source/common/uchriter.cpp', 435 'source/common/ucln_cmn.c', 436 'source/common/ucmndata.c', 437 'source/common/ucnv.c', 438 'source/common/ucnv2022.c', 439 'source/common/ucnv_bld.c', 440 'source/common/ucnv_cb.c', 441 'source/common/ucnv_cnv.c', 442 'source/common/ucnv_err.c', 443 'source/common/ucnv_ext.c', 444 'source/common/ucnv_io.c', 445 'source/common/ucnv_lmb.c', 446 'source/common/ucnv_set.c', 447 'source/common/ucnv_u16.c', 448 'source/common/ucnv_u32.c', 449 'source/common/ucnv_u7.c', 450 'source/common/ucnv_u8.c', 451 'source/common/ucnvbocu.c', 452 'source/common/ucnvdisp.c', 453 'source/common/ucnvhz.c', 454 'source/common/ucnvisci.c', 455 'source/common/ucnvlat1.c', 456 'source/common/ucnvmbcs.c', 457 'source/common/ucnvscsu.c', 458 'source/common/ucnvsel.cpp', 459 'source/common/ucol_swp.cpp', 460 'source/common/udata.cpp', 461 'source/common/udatamem.c', 462 'source/common/udataswp.c', 463 'source/common/uenum.c', 464 'source/common/uhash.c', 465 'source/common/uhash_us.cpp', 466 'source/common/uidna.cpp', 467 'source/common/uinit.c', 468 'source/common/uinvchar.c', 469 'source/common/uiter.cpp', 470 'source/common/ulist.c', 471 'source/common/uloc.c', 472 'source/common/uloc_tag.c', 473 'source/common/umapfile.c', 474 'source/common/umath.c', 475 'source/common/umutex.c', 476 'source/common/unames.c', 477 'source/common/unifilt.cpp', 478 'source/common/unifunct.cpp', 479 'source/common/uniset.cpp', 480 'source/common/uniset_props.cpp', 481 'source/common/unisetspan.cpp', 482 'source/common/unistr.cpp', 483 'source/common/unistr_case.cpp', 484 'source/common/unistr_cnv.cpp', 485 'source/common/unistr_props.cpp', 486 'source/common/unorm.cpp', 487 'source/common/unorm_it.c', 488 'source/common/unormcmp.cpp', 489 'source/common/uobject.cpp', 490 'source/common/uprops.cpp', 491 'source/common/ures_cnv.c', 492 'source/common/uresbund.c', 493 'source/common/uresdata.c', 494 'source/common/usc_impl.c', 495 'source/common/uscript.c', 496 'source/common/uset.cpp', 497 'source/common/uset_props.cpp', 498 'source/common/usetiter.cpp', 499 'source/common/ushape.c', 500 'source/common/usprep.cpp', 501 'source/common/ustack.cpp', 502 'source/common/ustr_cnv.c', 503 'source/common/ustr_wcs.c', 504 'source/common/ustrcase.c', 505 'source/common/ustrenum.cpp', 506 'source/common/ustrfmt.c', 507 'source/common/ustring.c', 508 'source/common/ustrtrns.c', 509 'source/common/utext.cpp', 510 'source/common/utf_impl.c', 511 'source/common/util.cpp', 512 'source/common/util_props.cpp', 513 'source/common/utrace.c', 514 'source/common/utrie.c', 515 'source/common/utrie2.cpp', 516 'source/common/utrie2_builder.c', 517 'source/common/uts46.cpp', 518 'source/common/utypes.c', 519 'source/common/uvector.cpp', 520 'source/common/uvectr32.cpp', 521 'source/common/uvectr64.cpp', 522 'source/common/wintz.c', 523 ], 524 'defines': [ 525 'U_COMMON_IMPLEMENTATION', 526 ], 527 'dependencies': [ 528 'icudata', 529 ], 530 'direct_dependent_settings': { 531 'include_dirs': [ 532 'source/common', 533 ], 534 'conditions': [ 535 [ 'component=="static_library"', { 536 'defines': [ 537 'U_STATIC_IMPLEMENTATION', 538 ], 539 }], 540 ], 541 }, 542 'conditions': [ 543 [ 'use_system_icu==1', { 544 'toolsets': ['host'], 545 }, { 546 'toolsets': ['host', 'target'], 547 }], 548 [ 'OS == "win"', { 549 'sources': [ 550 'source/stubdata/stubdata.c', 551 ], 552 }], 553 [ 'os_posix == 1 and OS != "mac" and OS != "ios"', { 554 'cflags': [ 555 # Since ICU wants to internally use its own deprecated APIs, 556 # don't complain about it. 557 '-Wno-deprecated-declarations', 558 '-Wno-unused-function', 559 ], 560 'cflags_cc': [ 561 '-frtti', 562 ], 563 }], 564 ['OS == "mac" or OS == "ios"', { 565 'xcode_settings': { 566 'GCC_ENABLE_CPP_RTTI': 'YES', # -frtti 567 }, 568 }], 569 ['OS == "win"', { 570 'msvs_settings': { 571 'VCCLCompilerTool': { 572 'RuntimeTypeInfo': 'true', 573 }, 574 }, 575 }], 576 ['OS == "android" and use_system_stlport == 1', { 577 'target_conditions': [ 578 ['_toolset == "target"', { 579 # ICU requires RTTI, which is not present in the system's 580 # stlport, so we have to include gabi++. 581 'include_dirs': [ 582 '<(android_src)/abi/cpp/include', 583 ], 584 'link_settings': { 585 'libraries': [ 586 '-lgabi++', 587 ], 588 }, 589 }], 590 ], 591 }], 592 ['clang==1', { 593 'xcode_settings': { 594 'WARNING_CFLAGS': [ 595 # ICU uses its own deprecated functions. 596 '-Wno-deprecated-declarations', 597 # ICU prefers `a && b || c` over `(a && b) || c`. 598 '-Wno-logical-op-parentheses', 599 # ICU has some `unsigned < 0` checks. 600 '-Wno-tautological-compare', 601 # uresdata.c has switch(RES_GET_TYPE(x)) code. The 602 # RES_GET_TYPE macro returns an UResType enum, but some switch 603 # statement contains case values that aren't part of that 604 # enum (e.g. URES_TABLE32 which is in UResInternalType). This 605 # is on purpose. 606 '-Wno-switch', 607 ], 608 }, 609 'cflags': [ 610 '-Wno-deprecated-declarations', 611 '-Wno-logical-op-parentheses', 612 '-Wno-tautological-compare', 613 '-Wno-switch', 614 ], 615 }], 616 ], 617 }, 618 ], 619 }], 620 ['use_system_icu==1', { 621 'targets': [ 622 { 623 'target_name': 'system_icu', 624 'type': 'none', 625 'conditions': [ 626 ['want_separate_host_toolset==1', { 627 'toolsets': ['target'], 628 }, { 629 'toolsets': ['host', 'target'], 630 }], 631 ['OS=="android"', { 632 'direct_dependent_settings': { 633 'include_dirs': [ 634 '<(android_src)/external/icu4c/common', 635 '<(android_src)/external/icu4c/i18n', 636 ], 637 }, 638 'link_settings': { 639 'libraries': [ 640 '-licui18n', 641 '-licuuc', 642 ], 643 }, 644 },{ # OS!="android" 645 'link_settings': { 646 'ldflags': [ 647 '<!@(icu-config --ldflags)', 648 ], 649 'libraries': [ 650 '<!@(icu-config --ldflags-libsonly)', 651 ], 652 }, 653 }], 654 ], 655 }, 656 { 657 'target_name': 'icudata', 658 'type': 'none', 659 'dependencies': ['system_icu'], 660 'export_dependent_settings': ['system_icu'], 661 'conditions': [ 662 ['want_separate_host_toolset==1', { 663 'toolsets': ['target'], 664 }, { 665 'toolsets': ['host', 'target'], 666 }], 667 ], 668 }, 669 { 670 'target_name': 'icui18n', 671 'type': 'none', 672 'dependencies': ['system_icu'], 673 'export_dependent_settings': ['system_icu'], 674 'variables': { 675 'headers_root_path': 'source/i18n', 676 'header_filenames': [ 677 # This list can easily be updated using the command below: 678 # find third_party/icu/source/i18n/unicode -iname '*.h' \ 679 # -printf "'%p',\n" | \ 680 # sed -e 's|third_party/icu/source/i18n/||' | sort -u 681 'unicode/basictz.h', 682 'unicode/bmsearch.h', 683 'unicode/bms.h', 684 'unicode/calendar.h', 685 'unicode/choicfmt.h', 686 'unicode/coleitr.h', 687 'unicode/colldata.h', 688 'unicode/coll.h', 689 'unicode/curramt.h', 690 'unicode/currpinf.h', 691 'unicode/currunit.h', 692 'unicode/datefmt.h', 693 'unicode/dcfmtsym.h', 694 'unicode/decimfmt.h', 695 'unicode/dtfmtsym.h', 696 'unicode/dtitvfmt.h', 697 'unicode/dtitvinf.h', 698 'unicode/dtptngen.h', 699 'unicode/dtrule.h', 700 'unicode/fieldpos.h', 701 'unicode/fmtable.h', 702 'unicode/format.h', 703 'unicode/fpositer.h', 704 'unicode/gregocal.h', 705 'unicode/locdspnm.h', 706 'unicode/measfmt.h', 707 'unicode/measunit.h', 708 'unicode/measure.h', 709 'unicode/msgfmt.h', 710 'unicode/numfmt.h', 711 'unicode/numsys.h', 712 'unicode/plurfmt.h', 713 'unicode/plurrule.h', 714 'unicode/rbnf.h', 715 'unicode/rbtz.h', 716 'unicode/regex.h', 717 'unicode/search.h', 718 'unicode/selfmt.h', 719 'unicode/simpletz.h', 720 'unicode/smpdtfmt.h', 721 'unicode/sortkey.h', 722 'unicode/stsearch.h', 723 'unicode/tblcoll.h', 724 'unicode/timezone.h', 725 'unicode/tmunit.h', 726 'unicode/tmutamt.h', 727 'unicode/tmutfmt.h', 728 'unicode/translit.h', 729 'unicode/tzrule.h', 730 'unicode/tztrans.h', 731 'unicode/ucal.h', 732 'unicode/ucoleitr.h', 733 'unicode/ucol.h', 734 'unicode/ucsdet.h', 735 'unicode/ucurr.h', 736 'unicode/udat.h', 737 'unicode/udatpg.h', 738 'unicode/uldnames.h', 739 'unicode/ulocdata.h', 740 'unicode/umsg.h', 741 'unicode/unirepl.h', 742 'unicode/unum.h', 743 'unicode/uregex.h', 744 'unicode/usearch.h', 745 'unicode/uspoof.h', 746 'unicode/utmscale.h', 747 'unicode/utrans.h', 748 'unicode/vtzone.h', 749 ], 750 }, 751 'includes': [ 752 '../../build/shim_headers.gypi', 753 ], 754 'conditions': [ 755 ['want_separate_host_toolset==1', { 756 'toolsets': ['target'], 757 }, { 758 'toolsets': ['host', 'target'], 759 }], 760 ], 761 }, 762 { 763 'target_name': 'icuuc', 764 'type': 'none', 765 'dependencies': ['system_icu'], 766 'export_dependent_settings': ['system_icu'], 767 'variables': { 768 'headers_root_path': 'source/common', 769 'header_filenames': [ 770 # This list can easily be updated using the command below: 771 # find third_party/icu/source/common/unicode -iname '*.h' \ 772 # -printf "'%p',\n" | \ 773 # sed -e 's|third_party/icu/source/common/||' | sort -u 774 'unicode/brkiter.h', 775 'unicode/bytestream.h', 776 'unicode/caniter.h', 777 'unicode/chariter.h', 778 'unicode/dbbi.h', 779 'unicode/docmain.h', 780 'unicode/dtintrv.h', 781 'unicode/errorcode.h', 782 'unicode/icudataver.h', 783 'unicode/icuplug.h', 784 'unicode/idna.h', 785 'unicode/localpointer.h', 786 'unicode/locid.h', 787 'unicode/normalizer2.h', 788 'unicode/normlzr.h', 789 'unicode/pandroid.h', 790 'unicode/parseerr.h', 791 'unicode/parsepos.h', 792 'unicode/pfreebsd.h', 793 'unicode/plinux.h', 794 'unicode/pmac.h', 795 'unicode/popenbsd.h', 796 'unicode/ppalmos.h', 797 'unicode/ptypes.h', 798 'unicode/putil.h', 799 'unicode/pwin32.h', 800 'unicode/rbbi.h', 801 'unicode/rep.h', 802 'unicode/resbund.h', 803 'unicode/schriter.h', 804 'unicode/std_string.h', 805 'unicode/strenum.h', 806 'unicode/stringpiece.h', 807 'unicode/symtable.h', 808 'unicode/ubidi.h', 809 'unicode/ubrk.h', 810 'unicode/ucasemap.h', 811 'unicode/ucat.h', 812 'unicode/uchar.h', 813 'unicode/uchriter.h', 814 'unicode/uclean.h', 815 'unicode/ucnv_cb.h', 816 'unicode/ucnv_err.h', 817 'unicode/ucnv.h', 818 'unicode/ucnvsel.h', 819 'unicode/uconfig.h', 820 'unicode/udata.h', 821 'unicode/udeprctd.h', 822 'unicode/udraft.h', 823 'unicode/uenum.h', 824 'unicode/uidna.h', 825 'unicode/uintrnal.h', 826 'unicode/uiter.h', 827 'unicode/uloc.h', 828 'unicode/umachine.h', 829 'unicode/umisc.h', 830 'unicode/unifilt.h', 831 'unicode/unifunct.h', 832 'unicode/unimatch.h', 833 'unicode/uniset.h', 834 'unicode/unistr.h', 835 'unicode/unorm2.h', 836 'unicode/unorm.h', 837 'unicode/uobject.h', 838 'unicode/uobslete.h', 839 'unicode/urename.h', 840 'unicode/urep.h', 841 'unicode/ures.h', 842 'unicode/uscript.h', 843 'unicode/uset.h', 844 'unicode/usetiter.h', 845 'unicode/ushape.h', 846 'unicode/usprep.h', 847 'unicode/ustring.h', 848 'unicode/usystem.h', 849 'unicode/utext.h', 850 'unicode/utf16.h', 851 'unicode/utf32.h', 852 'unicode/utf8.h', 853 'unicode/utf.h', 854 'unicode/utf_old.h', 855 'unicode/utrace.h', 856 'unicode/utypeinfo.h', 857 'unicode/utypes.h', 858 'unicode/uvernum.h', 859 'unicode/uversion.h', 860 ], 861 }, 862 'includes': [ 863 '../../build/shim_headers.gypi', 864 ], 865 'conditions': [ 866 ['want_separate_host_toolset==1', { 867 'toolsets': ['target'], 868 }, { 869 'toolsets': ['host', 'target'], 870 }], 871 ], 872 }, 873 ], 874 }], 875 ], 876} 877