Newer
Older
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
Michael Achenbach
committed
import("//build/config/host_byteorder.gni")
if (is_android) {
import("//build/config/android/rules.gni")
}
if (is_mac) {
import("//build/config/sanitizers/sanitizers.gni")
}
# Meta target that includes both icuuc and icui18n. Most targets want both.
# You can depend on the individually if you need to.
group("icu") {
":icui18n",
":icuuc",
]
}
# Shared config used by ICU and all dependents.
config("icu_config") {
defines = [
# Tell ICU to not insert |using namespace icu;| into its headers,
# so that chrome's source explicitly has to use |icu::|.
# We don't use ICU plugins and dyload is only necessary for them.
# NaCl-related builds also fail looking for dlfcn.h when it's enabled.
defines += [ "U_STATIC_IMPLEMENTATION" ]
}
include_dirs = [
"source/common",
"source/i18n",
]
if (icu_use_data_file) {
defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ]
} else {
if (is_win) {
defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_SHARED" ]
} else {
defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC" ]
}
}
if (is_win) {
defines += [ "UCHAR_TYPE=wchar_t" ]
} else {
defines += [ "UCHAR_TYPE=uint16_t" ]
}
}
# Config used only by ICU code.
config("icu_code") {
cflags = []
defines = [
"HAVE_DLOPEN=0",
# Only build encoding coverters and detectors necessary for HTML5.
"UCONFIG_ONLY_HTML_CONVERSION=1",
# No dependency on the default platform encoding.
# Will cut down the code size.
"U_CHARSET_IS_UTF8=1",
]
if (is_win) {
# Disable some compiler warnings.
cflags += [
"/wd4005", # Macro redefinition.
"/wd4068", # Unknown pragmas.
"/wd4267", # Conversion from size_t on 64-bits.
# http://bugs.icu-project.org/trac/ticket/12821
} else if (is_linux || is_android) {
cflags += [
"-Wno-unused-function",
]
}
if (is_clang) {
cflags += [
# ICU has some code with the pattern:
# if (found = uprv_getWindowsTimeZoneInfo(...))
# ucnv2022.cpp contains three functions that are only used when
# certain preprocessor defines are set.
# unistr.cpp also has an unused function for non-component builds.
if (is_clang || is_linux || is_android) {
cflags += [
# ICU uses its own deprecated functions.
"-Wno-deprecated-declarations",
]
}
# find source/i18n -maxdepth 1 ! -type d | egrep '\.(c|cpp|h)$' |\
# sort | sed 's/^\(.*\)$/ "\1",/'
"source/i18n/affixpatternparser.cpp",
"source/i18n/affixpatternparser.h",
"source/i18n/alphaindex.cpp",
"source/i18n/anytrans.cpp",
"source/i18n/basictz.cpp",
"source/i18n/bocsu.cpp",
"source/i18n/calendar.cpp",
"source/i18n/casetrn.cpp",
"source/i18n/choicfmt.cpp",
"source/i18n/coleitr.cpp",
"source/i18n/collationbuilder.cpp",
"source/i18n/collationbuilder.h",
"source/i18n/collationcompare.h",
"source/i18n/collation.cpp",
"source/i18n/collationdatabuilder.cpp",
"source/i18n/collationdatabuilder.h",
"source/i18n/collationdatareader.h",
"source/i18n/collationdatawriter.h",
"source/i18n/collationfastlatinbuilder.cpp",
"source/i18n/collationfastlatinbuilder.h",
"source/i18n/collationfastlatin.h",
"source/i18n/collationfcd.h",
"source/i18n/collation.h",
"source/i18n/collationiterator.h",
"source/i18n/collationroot.cpp",
"source/i18n/collationrootelements.cpp",
"source/i18n/collationrootelements.h",
"source/i18n/collationroot.h",
"source/i18n/collationruleparser.h",
"source/i18n/collationsettings.h",
"source/i18n/collationtailoring.h",
"source/i18n/collationweights.h",
"source/i18n/compactdecimalformat.cpp",
"source/i18n/coptccal.cpp",
"source/i18n/curramt.cpp",
"source/i18n/currfmt.cpp",
"source/i18n/currpinf.cpp",
"source/i18n/currunit.cpp",
"source/i18n/dangical.cpp",
"source/i18n/dayperiodrules.cpp",
"source/i18n/dayperiodrules.h",
"source/i18n/decimalformatpattern.h",
"source/i18n/decimalformatpatternimpl.h",
"source/i18n/decimfmtimpl.cpp",
"source/i18n/decNumber.h",
"source/i18n/decNumberLocal.h",
"source/i18n/digitaffix.cpp",
"source/i18n/digitaffixesandpadding.cpp",
"source/i18n/digitaffixesandpadding.h",
"source/i18n/digitaffix.h",
"source/i18n/digitformatter.cpp",
"source/i18n/digitformatter.h",
"source/i18n/digitgrouping.cpp",
"source/i18n/digitinterval.cpp",
"source/i18n/dtitvinf.cpp",
"source/i18n/dtptngen.cpp",
"source/i18n/dtrule.cpp",
"source/i18n/esctrn.cpp",
"source/i18n/fmtable_cnv.cpp",
"source/i18n/fmtable.cpp",
"source/i18n/format.cpp",
"source/i18n/fphdlimp.cpp",
"source/i18n/fpositer.cpp",
"source/i18n/funcrepl.cpp",
"source/i18n/gender.cpp",
"source/i18n/gregocal.cpp",
"source/i18n/gregoimp.cpp",
"source/i18n/measfmt.cpp",
"source/i18n/measunit.cpp",
"source/i18n/measure.cpp",
"source/i18n/msgfmt.cpp",
"source/i18n/name2uni.h",
"source/i18n/nfrlist.h",
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
"source/i18n/number_affixutils.cpp",
"source/i18n/number_affixutils.h",
"source/i18n/number_compact.cpp",
"source/i18n/number_compact.h",
"source/i18n/number_decimalquantity.cpp",
"source/i18n/number_decimalquantity.h",
"source/i18n/number_decimfmtprops.cpp",
"source/i18n/number_decimfmtprops.h",
"source/i18n/number_fluent.cpp",
"source/i18n/number_formatimpl.cpp",
"source/i18n/number_formatimpl.h",
"source/i18n/number_grouping.cpp",
"source/i18n/number_integerwidth.cpp",
"source/i18n/number_longnames.cpp",
"source/i18n/number_longnames.h",
"source/i18n/number_modifiers.cpp",
"source/i18n/number_modifiers.h",
"source/i18n/number_notation.cpp",
"source/i18n/number_padding.cpp",
"source/i18n/number_patternmodifier.cpp",
"source/i18n/number_patternmodifier.h",
"source/i18n/number_patternstring.cpp",
"source/i18n/number_patternstring.h",
"source/i18n/number_rounding.cpp",
"source/i18n/number_roundingutils.h",
"source/i18n/number_scientific.cpp",
"source/i18n/number_scientific.h",
"source/i18n/number_stringbuilder.cpp",
"source/i18n/number_stringbuilder.h",
"source/i18n/number_types.h",
"source/i18n/number_utils.h",
"source/i18n/numfmt.cpp",
"source/i18n/numsys.cpp",
"source/i18n/pluralaffix.cpp",
"source/i18n/plurfmt.cpp",
"source/i18n/plurrule.cpp",
"source/i18n/precision.cpp",
"source/i18n/quantityformatter.h",
"source/i18n/rbnf.cpp",
"source/i18n/rbt.cpp",
"source/i18n/rbt_data.cpp",
"source/i18n/rbt_data.h",
"source/i18n/rbt.h",
"source/i18n/rbtz.cpp",
"source/i18n/regexcmp.cpp",
"source/i18n/regexcmp.h",
"source/i18n/regexcst.h",
"source/i18n/reldatefmt.cpp",
"source/i18n/reldtfmt.cpp",
"source/i18n/rematch.cpp",
"source/i18n/remtrans.cpp",
"source/i18n/repattrn.cpp",
"source/i18n/rulebasedcollator.cpp",
"source/i18n/scientificnumberformatter.cpp",
"source/i18n/search.cpp",
"source/i18n/selfmt.cpp",
"source/i18n/sharedbreakiterator.h",
"source/i18n/sharedcalendar.h",
"source/i18n/shareddateformatsymbols.h",
"source/i18n/sharednumberformat.h",
"source/i18n/sharedpluralrules.h",
"source/i18n/significantdigitinterval.h",
"source/i18n/smallintformatter.cpp",
"source/i18n/smallintformatter.h",
"source/i18n/smpdtfmt.cpp",
"source/i18n/smpdtfst.cpp",
"source/i18n/standardplural.cpp",
"source/i18n/standardplural.h",
"source/i18n/stsearch.cpp",
"source/i18n/taiwncal.cpp",
"source/i18n/timezone.cpp",
"source/i18n/titletrn.cpp",
"source/i18n/tmunit.cpp",
"source/i18n/tmutamt.cpp",
"source/i18n/tmutfmt.cpp",
"source/i18n/tolowtrn.cpp",
"source/i18n/translit.cpp",
"source/i18n/transreg.cpp",
"source/i18n/tzfmt.cpp",
"source/i18n/tzgnames.cpp",
"source/i18n/tznames.cpp",
"source/i18n/tznames_impl.cpp",
"source/i18n/tzrule.cpp",
"source/i18n/tztrans.cpp",
"source/i18n/ucal.cpp",
"source/i18n/ucln_in.cpp",
"source/i18n/ucol.cpp",
"source/i18n/ucoleitr.cpp",
"source/i18n/ucol_res.cpp",
"source/i18n/ucol_sit.cpp",
"source/i18n/ucsdet.cpp",
"source/i18n/udat.cpp",
"source/i18n/udateintervalformat.cpp",
"source/i18n/udatpg.cpp",
"source/i18n/ufieldpositer.cpp",
"source/i18n/uitercollationiterator.cpp",
"source/i18n/uitercollationiterator.h",
"source/i18n/unum.cpp",
"source/i18n/unumsys.cpp",
"source/i18n/upluralrules.cpp",
"source/i18n/uregexc.cpp",
"source/i18n/uregex.cpp",
"source/i18n/uregion.cpp",
"source/i18n/usearch.cpp",
"source/i18n/uspoof_build.cpp",
"source/i18n/uspoof_conf.cpp",
"source/i18n/uspoof.cpp",
"source/i18n/uspoof_impl.cpp",
"source/i18n/uspoof_impl.h",
"source/i18n/usrchimp.h",
"source/i18n/utf16collationiterator.cpp",
"source/i18n/utf16collationiterator.h",
"source/i18n/utf8collationiterator.cpp",
"source/i18n/utf8collationiterator.h",
"source/i18n/valueformatter.cpp",
"source/i18n/valueformatter.h",
"source/i18n/visibledigits.cpp",
"source/i18n/vtzone.cpp",
"source/i18n/vzone.cpp",
# ls source/i18n/unicode/*h | sort | sed 's/^\(.*\)$/ "\1",/'
public = [
# crbug.com/726654: Make astro.h public until the upstream adds an API.
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
"source/i18n/unicode/alphaindex.h",
"source/i18n/unicode/basictz.h",
"source/i18n/unicode/calendar.h",
"source/i18n/unicode/choicfmt.h",
"source/i18n/unicode/coleitr.h",
"source/i18n/unicode/coll.h",
"source/i18n/unicode/compactdecimalformat.h",
"source/i18n/unicode/curramt.h",
"source/i18n/unicode/currpinf.h",
"source/i18n/unicode/currunit.h",
"source/i18n/unicode/datefmt.h",
"source/i18n/unicode/dcfmtsym.h",
"source/i18n/unicode/decimfmt.h",
"source/i18n/unicode/dtfmtsym.h",
"source/i18n/unicode/dtitvfmt.h",
"source/i18n/unicode/dtitvinf.h",
"source/i18n/unicode/dtptngen.h",
"source/i18n/unicode/dtrule.h",
"source/i18n/unicode/fieldpos.h",
"source/i18n/unicode/fmtable.h",
"source/i18n/unicode/format.h",
"source/i18n/unicode/fpositer.h",
"source/i18n/unicode/gender.h",
"source/i18n/unicode/gregocal.h",
"source/i18n/unicode/measfmt.h",
"source/i18n/unicode/measunit.h",
"source/i18n/unicode/measure.h",
"source/i18n/unicode/msgfmt.h",
"source/i18n/unicode/nounit.h",
"source/i18n/unicode/numberformatter.h",
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
"source/i18n/unicode/numfmt.h",
"source/i18n/unicode/numsys.h",
"source/i18n/unicode/plurfmt.h",
"source/i18n/unicode/plurrule.h",
"source/i18n/unicode/rbnf.h",
"source/i18n/unicode/rbtz.h",
"source/i18n/unicode/regex.h",
"source/i18n/unicode/region.h",
"source/i18n/unicode/reldatefmt.h",
"source/i18n/unicode/scientificnumberformatter.h",
"source/i18n/unicode/search.h",
"source/i18n/unicode/selfmt.h",
"source/i18n/unicode/simpletz.h",
"source/i18n/unicode/smpdtfmt.h",
"source/i18n/unicode/sortkey.h",
"source/i18n/unicode/stsearch.h",
"source/i18n/unicode/tblcoll.h",
"source/i18n/unicode/timezone.h",
"source/i18n/unicode/tmunit.h",
"source/i18n/unicode/tmutamt.h",
"source/i18n/unicode/tmutfmt.h",
"source/i18n/unicode/translit.h",
"source/i18n/unicode/tzfmt.h",
"source/i18n/unicode/tznames.h",
"source/i18n/unicode/tzrule.h",
"source/i18n/unicode/tztrans.h",
"source/i18n/unicode/ucal.h",
"source/i18n/unicode/ucoleitr.h",
"source/i18n/unicode/ucol.h",
"source/i18n/unicode/ucsdet.h",
"source/i18n/unicode/udateintervalformat.h",
"source/i18n/unicode/udat.h",
"source/i18n/unicode/udatpg.h",
"source/i18n/unicode/ufieldpositer.h",
"source/i18n/unicode/uformattable.h",
"source/i18n/unicode/ugender.h",
"source/i18n/unicode/ulocdata.h",
"source/i18n/unicode/umsg.h",
"source/i18n/unicode/unirepl.h",
"source/i18n/unicode/unum.h",
"source/i18n/unicode/unumsys.h",
"source/i18n/unicode/upluralrules.h",
"source/i18n/unicode/uregex.h",
"source/i18n/unicode/uregion.h",
"source/i18n/unicode/usearch.h",
"source/i18n/unicode/uspoof.h",
"source/i18n/unicode/utmscale.h",
"source/i18n/unicode/utrans.h",
"source/i18n/unicode/vtzone.h",
]
defines = [ "U_I18N_IMPLEMENTATION" ]
deps = [
":icuuc",
]
# ICU uses RTTI, replace the default "no rtti" config.
configs -= [
"//build/config/compiler:no_rtti", # ICU uses RTTI.
"//build/config/compiler:chromium_code",
]
configs += [
"//build/config/compiler:rtti",
"//build/config/compiler:no_chromium_code",
]
configs += [ ":icu_code" ]
public_configs = [ ":icu_config" ]
if (is_fuchsia) {
# Fuchsia puts its own libicui18n.so in /system/lib where we need to put our
# .so when doing component builds, so we need to give this a different name.
output_name = "icui18n_cr"
}
# find source/common -maxdepth 1 ! -type d | egrep '\.(c|cpp|h)$' |\
# sort | sed 's/^\(.*\)$/ "\1",/'
sources = [
"source/common/appendable.cpp",
"source/common/bmpset.cpp",
"source/common/bytesinkutil.cpp",
"source/common/bytesinkutil.h",
"source/common/bytestream.cpp",
"source/common/bytestriebuilder.cpp",
"source/common/bytestrie.cpp",
"source/common/bytestrieiterator.cpp",
"source/common/caniter.cpp",
"source/common/chariter.cpp",
"source/common/charstr.cpp",
"source/common/cmemory.h",
"source/common/cpputils.h",
"source/common/cstr.cpp",
"source/common/cstr.h",
"source/common/dictionarydata.h",
"source/common/filteredbrk.cpp",
"source/common/filterednormalizer2.cpp",
"source/common/listformatter.cpp",
"source/common/loadednormalizer2impl.cpp",
"source/common/locavailable.cpp",
"source/common/locbased.cpp",
"source/common/locid.cpp",
"source/common/loclikely.cpp",
"source/common/locresdata.cpp",
"source/common/locutil.cpp",
"source/common/locutil.h",
"source/common/messageimpl.h",
"source/common/msvcres.h",
"source/common/mutex.h",
"source/common/norm2allmodes.h",
"source/common/norm2_nfc_data.h",
"source/common/normalizer2.cpp",
"source/common/normalizer2impl.cpp",
"source/common/normalizer2impl.h",
"source/common/normlzr.cpp",
"source/common/parsepos.cpp",
"source/common/patternprops.cpp",
"source/common/patternprops.h",
"source/common/pluralmap.cpp",
"source/common/propname_data.h",
"source/common/propname.h",
"source/common/rbbi_cache.cpp",
"source/common/rbbi_cache.h",
"source/common/rbbi.cpp",
"source/common/rbbidata.cpp",
"source/common/rbbirb.h",
"source/common/rbbirpt.h",
"source/common/rbbistbl.cpp",
"source/common/rbbitblb.cpp",
"source/common/resbund_cnv.cpp",
"source/common/resbund.cpp",
"source/common/resource.cpp",
"source/common/schriter.cpp",
"source/common/serv.cpp",
"source/common/servlk.cpp",
"source/common/servlkf.cpp",
"source/common/servls.cpp",
"source/common/servnotf.cpp",
"source/common/servrbf.cpp",
"source/common/servslkf.cpp",
"source/common/sharedobject.cpp",
"source/common/sharedobject.h",
"source/common/stringpiece.cpp",
"source/common/stringtriebuilder.cpp",
"source/common/uarrsort.h",
"source/common/uassert.h",
"source/common/ubidiln.cpp",
"source/common/ubidi_props.cpp",
"source/common/ubidi_props_data.h",
"source/common/ubidi_props.h",
"source/common/ubiditransform.cpp",
"source/common/ubidiwrt.cpp",
"source/common/ucasemap_titlecase_brkiter.cpp",
"source/common/ucase_props_data.h",
"source/common/ucat.cpp",
"source/common/uchar.cpp",
"source/common/uchar_props_data.h",
"source/common/ucharstriebuilder.cpp",
"source/common/ucharstrie.cpp",
"source/common/ucharstrieiterator.cpp",
"source/common/uchriter.cpp",
"source/common/ucln_cmn.cpp",
"source/common/ucln_cmn.h",
"source/common/ucln.h",
"source/common/ucln_imp.h",
"source/common/ucnv2022.cpp",
"source/common/ucnv_bld.cpp",
"source/common/ucnv_cb.cpp",
"source/common/ucnv_cnv.cpp",
"source/common/ucnv.cpp",
"source/common/ucnv_ct.cpp",
"source/common/ucnvdisp.cpp",
"source/common/ucnv_err.cpp",
"source/common/ucnvisci.cpp",
"source/common/ucnvlat1.cpp",
"source/common/ucnv_lmb.cpp",
"source/common/ucnv_set.cpp",
"source/common/ucnv_u16.cpp",
"source/common/ucnv_u32.cpp",
"source/common/ucnv_u7.cpp",
"source/common/ucnv_u8.cpp",
"source/common/ucurr.cpp",
"source/common/ucurrimp.h",
"source/common/udataswp.h",
"source/common/uelement.h",
"source/common/uhash_us.cpp",
"source/common/uidna.cpp",
"source/common/uinit.cpp",
"source/common/ulistformatter.cpp",
"source/common/uloc_tag.cpp",
"source/common/umapfile.cpp",
"source/common/unames.cpp",
"source/common/unifiedcache.cpp",
"source/common/unifiedcache.h",
"source/common/unifilt.cpp",
"source/common/unifunct.cpp",
"source/common/uniset_closure.cpp",
"source/common/uniset.cpp",
"source/common/uniset_props.cpp",
"source/common/unisetspan.cpp",
"source/common/unisetspan.h",
"source/common/unistrappender.h",
"source/common/unistr_case.cpp",
"source/common/unistr_case_locale.cpp",
"source/common/unistr_cnv.cpp",
"source/common/unistr.cpp",
"source/common/unistr_props.cpp",
"source/common/unistr_titlecase_brkiter.cpp",
"source/common/unormcmp.cpp",
"source/common/unorm.cpp",
"source/common/uresdata.cpp",
"source/common/uresdata.h",
"source/common/uresimp.h",
"source/common/ureslocs.h",
"source/common/uscript_props.cpp",
"source/common/uset.cpp",
"source/common/usetiter.cpp",
"source/common/uset_props.cpp",
"source/common/ushape.cpp",
"source/common/usprep.cpp",
"source/common/ustack.cpp",
"source/common/ustrcase.cpp",
"source/common/ustrcase_locale.cpp",
"source/common/ustr_cnv.cpp",
"source/common/ustrfmt.h",
"source/common/ustr_imp.h",
"source/common/ustring.cpp",
"source/common/ustr_titlecase_brkiter.cpp",
"source/common/ustrtrns.cpp",
"source/common/ustr_wcs.cpp",
"source/common/utext.cpp",
"source/common/utrie2_builder.cpp",
"source/common/utrie2.cpp",
"source/common/utrie2.h",
"source/common/utrie2_impl.h",
# ls source/common/unicode/*h | sort | sed 's/^\(.*\)$/ "\1",/'
public = [
"source/common/unicode/appendable.h",
"source/common/unicode/brkiter.h",
"source/common/unicode/bytestream.h",
"source/common/unicode/bytestriebuilder.h",
"source/common/unicode/bytestrie.h",
"source/common/unicode/caniter.h",
"source/common/unicode/casemap.h",
"source/common/unicode/char16ptr.h",
"source/common/unicode/chariter.h",
"source/common/unicode/dbbi.h",
"source/common/unicode/docmain.h",
"source/common/unicode/dtintrv.h",
"source/common/unicode/enumset.h",
"source/common/unicode/errorcode.h",
"source/common/unicode/filteredbrk.h",
"source/common/unicode/icudataver.h",
"source/common/unicode/icuplug.h",
"source/common/unicode/idna.h",
"source/common/unicode/listformatter.h",
"source/common/unicode/localpointer.h",
"source/common/unicode/locid.h",
"source/common/unicode/messagepattern.h",
"source/common/unicode/normalizer2.h",
"source/common/unicode/normlzr.h",
"source/common/unicode/parseerr.h",
"source/common/unicode/parsepos.h",
"source/common/unicode/platform.h",
"source/common/unicode/ptypes.h",
"source/common/unicode/putil.h",
"source/common/unicode/rbbi.h",
"source/common/unicode/rep.h",
"source/common/unicode/resbund.h",
"source/common/unicode/schriter.h",
"source/common/unicode/std_string.h",
"source/common/unicode/strenum.h",
"source/common/unicode/stringoptions.h",
"source/common/unicode/stringpiece.h",
"source/common/unicode/stringtriebuilder.h",
"source/common/unicode/symtable.h",
"source/common/unicode/ubidi.h",
"source/common/unicode/ubrk.h",
"source/common/unicode/ucasemap.h",
"source/common/unicode/ucat.h",
"source/common/unicode/uchar.h",
"source/common/unicode/ucharstriebuilder.h",
"source/common/unicode/ucharstrie.h",
"source/common/unicode/uchriter.h",
"source/common/unicode/uclean.h",
"source/common/unicode/ucnv_cb.h",
"source/common/unicode/ucnv_err.h",
"source/common/unicode/ucnv.h",
"source/common/unicode/ucnvsel.h",
"source/common/unicode/uconfig.h",
"source/common/unicode/udata.h",
"source/common/unicode/uenum.h",
"source/common/unicode/uidna.h",
"source/common/unicode/uiter.h",
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
"source/common/unicode/ulistformatter.h",
"source/common/unicode/uloc.h",
"source/common/unicode/umachine.h",
"source/common/unicode/umisc.h",
"source/common/unicode/unifilt.h",
"source/common/unicode/unifunct.h",
"source/common/unicode/unimatch.h",
"source/common/unicode/uniset.h",
"source/common/unicode/unistr.h",
"source/common/unicode/unorm2.h",
"source/common/unicode/unorm.h",
"source/common/unicode/uobject.h",
"source/common/unicode/urename.h",
"source/common/unicode/urep.h",
"source/common/unicode/ures.h",
"source/common/unicode/uscript.h",
"source/common/unicode/uset.h",
"source/common/unicode/usetiter.h",
"source/common/unicode/ushape.h",
"source/common/unicode/usprep.h",
"source/common/unicode/ustring.h",
"source/common/unicode/ustringtrie.h",
"source/common/unicode/utext.h",
"source/common/unicode/utf16.h",
"source/common/unicode/utf32.h",
"source/common/unicode/utf8.h",
"source/common/unicode/utf.h",
"source/common/unicode/utf_old.h",
"source/common/unicode/utrace.h",
"source/common/unicode/utypes.h",
"source/common/unicode/uvernum.h",
"source/common/unicode/uversion.h",
]
defines = [ "U_COMMON_IMPLEMENTATION" ]
deps = [
":icudata",
]
configs -= [
"//build/config/compiler:no_rtti", # ICU uses RTTI.
"//build/config/compiler:chromium_code",
]
configs += [
"//build/config/compiler:rtti",
"//build/config/compiler:no_chromium_code",
]
configs += [ ":icu_code" ]
public_configs = [ ":icu_config" ]
if (is_win || icu_use_data_file) {
defines += [ "U_ICUDATAENTRY_IN_COMMON" ]
}
if (is_fuchsia) {
# Fuchsia puts its own libicuuc.so in /system/lib where we need to put our
# .so when doing component builds, so we need to give this a different name.
output_name = "icuuc_cr"
}
if (is_android && enable_java_templates) {
android_assets("icu_assets") {
if (icu_use_data_file) {
sources = [ "$root_out_dir/icudtl.dat" ]
deps = [ ":icudata" ]
disable_compression = true
}
}
}
# TODO(GYP): Gyp has considerations here for QNX and for the host toolchain
# that have not been ported over.
if (is_android) {
} else if (is_ios) {
data_dir = "ios"
Michael Achenbach
committed
if (current_cpu == "mips" || current_cpu == "mips64" ||
host_byteorder == "big") {
data_bundle_prefix = "icudtb"
} else {
data_bundle_prefix = "icudtl"
}
data_bundle = "${data_bundle_prefix}.dat"
# TODO(GYP) support use_system_icu.
if (icu_use_data_file) {
if (is_ios) {
bundle_data("icudata") {
sources = [ "$data_dir/$data_bundle" ]
outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
Dirk Pranke
committed
}
sources = [ "$data_dir/$data_bundle" ]
outputs = [ "$root_out_dir/$data_bundle" ]
data = [ "$root_out_dir/$data_bundle" ]
}
}
} else {
if (is_win) {
# On Windows the target DLL is pre-built so just use a copy rule.
# data_bundle and data_dir have to be used to avoid 'unused variable'
# error.
data_bundle = "icudt.dll"
data_dir = "windows"
sources = [ "$data_dir/$data_bundle" ]
outputs = [ "$root_out_dir/$data_bundle" ]
data = outputs
data_assembly = "$target_gen_dir/${data_bundle_prefix}_dat.S"
action("make_data_assembly") {
script = "scripts/make_data_assembly.py"
inputs = [ "$data_dir/$data_bundle" ]
outputs = [ "$data_assembly" ]
args = [
rebase_path(inputs[0], root_build_dir),
rebase_path(data_assembly, root_build_dir),
]
# TODO(GYP): Gyp has considerations here for QNX and for the host
# toolchain that have not been ported over.
if (is_mac || is_ios) {
}
source_set("icudata") {
sources = [ "$data_assembly" ]