Home | History | Annotate | Download | only in icu
      1 # Copyright 2016 Google Inc.
      2 #
      3 # Use of this source code is governed by a BSD-style license that can be
      4 # found in the LICENSE file.
      5 
      6 declare_args() {
      7   skia_use_system_icu = is_official_build
      8 }
      9 
     10 import("../third_party.gni")
     11 
     12 if (skia_use_system_icu) {
     13   system("icu") {
     14     libs = [ "icuuc" ]
     15     defines = [ "U_USING_ICU_NAMESPACE=0" ]
     16   }
     17 } else {
     18   third_party("icu") {
     19     public_include_dirs = [
     20       "../externals/icu/source/common",
     21       ".",
     22     ]
     23     public_defines = [ "U_USING_ICU_NAMESPACE=0" ]
     24     configs -= [ "//gn:no_rtti" ]
     25     defines = [
     26       # http://userguide.icu-project.org/howtouseicu
     27       "U_COMMON_IMPLEMENTATION",
     28       "U_STATIC_IMPLEMENTATION",
     29       "U_ENABLE_DYLOAD=0",
     30     ]
     31     sources = [
     32       "../externals/icu/source/common/appendable.cpp",
     33       "../externals/icu/source/common/bmpset.cpp",
     34       "../externals/icu/source/common/brkeng.cpp",
     35       "../externals/icu/source/common/brkiter.cpp",
     36       "../externals/icu/source/common/bytestream.cpp",
     37       "../externals/icu/source/common/bytestrie.cpp",
     38       "../externals/icu/source/common/bytestriebuilder.cpp",
     39       "../externals/icu/source/common/bytestrieiterator.cpp",
     40       "../externals/icu/source/common/caniter.cpp",
     41       "../externals/icu/source/common/chariter.cpp",
     42       "../externals/icu/source/common/charstr.cpp",
     43       "../externals/icu/source/common/cmemory.c",
     44       "../externals/icu/source/common/cstring.c",
     45       "../externals/icu/source/common/cwchar.c",
     46       "../externals/icu/source/common/dictbe.cpp",
     47       "../externals/icu/source/common/dictionarydata.cpp",
     48       "../externals/icu/source/common/dtintrv.cpp",
     49       "../externals/icu/source/common/errorcode.cpp",
     50       "../externals/icu/source/common/filteredbrk.cpp",
     51       "../externals/icu/source/common/filterednormalizer2.cpp",
     52       "../externals/icu/source/common/icudataver.c",
     53       "../externals/icu/source/common/icuplug.cpp",
     54       "../externals/icu/source/common/listformatter.cpp",
     55       "../externals/icu/source/common/loadednormalizer2impl.cpp",
     56       "../externals/icu/source/common/locavailable.cpp",
     57       "../externals/icu/source/common/locbased.cpp",
     58       "../externals/icu/source/common/locdispnames.cpp",
     59       "../externals/icu/source/common/locid.cpp",
     60       "../externals/icu/source/common/loclikely.cpp",
     61       "../externals/icu/source/common/locmap.c",
     62       "../externals/icu/source/common/locresdata.cpp",
     63       "../externals/icu/source/common/locutil.cpp",
     64       "../externals/icu/source/common/messagepattern.cpp",
     65       "../externals/icu/source/common/normalizer2.cpp",
     66       "../externals/icu/source/common/normalizer2impl.cpp",
     67       "../externals/icu/source/common/normlzr.cpp",
     68       "../externals/icu/source/common/parsepos.cpp",
     69       "../externals/icu/source/common/patternprops.cpp",
     70       "../externals/icu/source/common/pluralmap.cpp",
     71       "../externals/icu/source/common/propname.cpp",
     72       "../externals/icu/source/common/propsvec.c",
     73       "../externals/icu/source/common/punycode.cpp",
     74       "../externals/icu/source/common/putil.cpp",
     75       "../externals/icu/source/common/rbbi.cpp",
     76       "../externals/icu/source/common/rbbidata.cpp",
     77       "../externals/icu/source/common/rbbinode.cpp",
     78       "../externals/icu/source/common/rbbirb.cpp",
     79       "../externals/icu/source/common/rbbiscan.cpp",
     80       "../externals/icu/source/common/rbbisetb.cpp",
     81       "../externals/icu/source/common/rbbistbl.cpp",
     82       "../externals/icu/source/common/rbbitblb.cpp",
     83       "../externals/icu/source/common/resbund.cpp",
     84       "../externals/icu/source/common/resbund_cnv.cpp",
     85       "../externals/icu/source/common/resource.cpp",
     86       "../externals/icu/source/common/ruleiter.cpp",
     87       "../externals/icu/source/common/schriter.cpp",
     88       "../externals/icu/source/common/serv.cpp",
     89       "../externals/icu/source/common/servlk.cpp",
     90       "../externals/icu/source/common/servlkf.cpp",
     91       "../externals/icu/source/common/servls.cpp",
     92       "../externals/icu/source/common/servnotf.cpp",
     93       "../externals/icu/source/common/servrbf.cpp",
     94       "../externals/icu/source/common/servslkf.cpp",
     95       "../externals/icu/source/common/sharedobject.cpp",
     96       "../externals/icu/source/common/simplepatternformatter.cpp",
     97       "../externals/icu/source/common/stringpiece.cpp",
     98       "../externals/icu/source/common/stringtriebuilder.cpp",
     99       "../externals/icu/source/common/uarrsort.c",
    100       "../externals/icu/source/common/ubidi.c",
    101       "../externals/icu/source/common/ubidi_props.c",
    102       "../externals/icu/source/common/ubidiln.c",
    103       "../externals/icu/source/common/ubidiwrt.c",
    104       "../externals/icu/source/common/ubrk.cpp",
    105       "../externals/icu/source/common/ucase.cpp",
    106       "../externals/icu/source/common/ucasemap.cpp",
    107       "../externals/icu/source/common/ucasemap_titlecase_brkiter.cpp",
    108       "../externals/icu/source/common/ucat.c",
    109       "../externals/icu/source/common/uchar.c",
    110       "../externals/icu/source/common/ucharstrie.cpp",
    111       "../externals/icu/source/common/ucharstriebuilder.cpp",
    112       "../externals/icu/source/common/ucharstrieiterator.cpp",
    113       "../externals/icu/source/common/uchriter.cpp",
    114       "../externals/icu/source/common/ucln_cmn.cpp",
    115       "../externals/icu/source/common/ucmndata.c",
    116       "../externals/icu/source/common/ucnv.c",
    117       "../externals/icu/source/common/ucnv2022.cpp",
    118       "../externals/icu/source/common/ucnv_bld.cpp",
    119       "../externals/icu/source/common/ucnv_cb.c",
    120       "../externals/icu/source/common/ucnv_cnv.c",
    121       "../externals/icu/source/common/ucnv_ct.c",
    122       "../externals/icu/source/common/ucnv_err.c",
    123       "../externals/icu/source/common/ucnv_ext.cpp",
    124       "../externals/icu/source/common/ucnv_io.cpp",
    125       "../externals/icu/source/common/ucnv_lmb.c",
    126       "../externals/icu/source/common/ucnv_set.c",
    127       "../externals/icu/source/common/ucnv_u16.c",
    128       "../externals/icu/source/common/ucnv_u32.c",
    129       "../externals/icu/source/common/ucnv_u7.c",
    130       "../externals/icu/source/common/ucnv_u8.c",
    131       "../externals/icu/source/common/ucnvbocu.cpp",
    132       "../externals/icu/source/common/ucnvdisp.c",
    133       "../externals/icu/source/common/ucnvhz.c",
    134       "../externals/icu/source/common/ucnvisci.c",
    135       "../externals/icu/source/common/ucnvlat1.c",
    136       "../externals/icu/source/common/ucnvmbcs.cpp",
    137       "../externals/icu/source/common/ucnvscsu.c",
    138       "../externals/icu/source/common/ucnvsel.cpp",
    139       "../externals/icu/source/common/ucol_swp.cpp",
    140       "../externals/icu/source/common/udata.cpp",
    141       "../externals/icu/source/common/udatamem.c",
    142       "../externals/icu/source/common/udataswp.c",
    143       "../externals/icu/source/common/uenum.c",
    144       "../externals/icu/source/common/uhash.c",
    145       "../externals/icu/source/common/uhash_us.cpp",
    146       "../externals/icu/source/common/uidna.cpp",
    147       "../externals/icu/source/common/uinit.cpp",
    148       "../externals/icu/source/common/uinvchar.c",
    149       "../externals/icu/source/common/uiter.cpp",
    150       "../externals/icu/source/common/ulist.c",
    151       "../externals/icu/source/common/ulistformatter.cpp",
    152       "../externals/icu/source/common/uloc.cpp",
    153       "../externals/icu/source/common/uloc_keytype.cpp",
    154       "../externals/icu/source/common/uloc_tag.c",
    155       "../externals/icu/source/common/umapfile.c",
    156       "../externals/icu/source/common/umath.c",
    157       "../externals/icu/source/common/umutex.cpp",
    158       "../externals/icu/source/common/unames.cpp",
    159       "../externals/icu/source/common/unifiedcache.cpp",
    160       "../externals/icu/source/common/unifilt.cpp",
    161       "../externals/icu/source/common/unifunct.cpp",
    162       "../externals/icu/source/common/uniset.cpp",
    163       "../externals/icu/source/common/uniset_closure.cpp",
    164       "../externals/icu/source/common/uniset_props.cpp",
    165       "../externals/icu/source/common/unisetspan.cpp",
    166       "../externals/icu/source/common/unistr.cpp",
    167       "../externals/icu/source/common/unistr_case.cpp",
    168       "../externals/icu/source/common/unistr_case_locale.cpp",
    169       "../externals/icu/source/common/unistr_cnv.cpp",
    170       "../externals/icu/source/common/unistr_props.cpp",
    171       "../externals/icu/source/common/unistr_titlecase_brkiter.cpp",
    172       "../externals/icu/source/common/unorm.cpp",
    173       "../externals/icu/source/common/unormcmp.cpp",
    174       "../externals/icu/source/common/uobject.cpp",
    175       "../externals/icu/source/common/uprops.cpp",
    176       "../externals/icu/source/common/ures_cnv.c",
    177       "../externals/icu/source/common/uresbund.cpp",
    178       "../externals/icu/source/common/uresdata.cpp",
    179       "../externals/icu/source/common/uresource.cpp",
    180       "../externals/icu/source/common/usc_impl.c",
    181       "../externals/icu/source/common/uscript.c",
    182       "../externals/icu/source/common/uscript_props.cpp",
    183       "../externals/icu/source/common/uset.cpp",
    184       "../externals/icu/source/common/uset_props.cpp",
    185       "../externals/icu/source/common/usetiter.cpp",
    186       "../externals/icu/source/common/ushape.cpp",
    187       "../externals/icu/source/common/usprep.cpp",
    188       "../externals/icu/source/common/ustack.cpp",
    189       "../externals/icu/source/common/ustr_cnv.cpp",
    190       "../externals/icu/source/common/ustr_titlecase_brkiter.cpp",
    191       "../externals/icu/source/common/ustr_wcs.cpp",
    192       "../externals/icu/source/common/ustrcase.cpp",
    193       "../externals/icu/source/common/ustrcase_locale.cpp",
    194       "../externals/icu/source/common/ustrenum.cpp",
    195       "../externals/icu/source/common/ustrfmt.c",
    196       "../externals/icu/source/common/ustring.cpp",
    197       "../externals/icu/source/common/ustrtrns.cpp",
    198       "../externals/icu/source/common/utext.cpp",
    199       "../externals/icu/source/common/utf_impl.c",
    200       "../externals/icu/source/common/util.cpp",
    201       "../externals/icu/source/common/util_props.cpp",
    202       "../externals/icu/source/common/utrace.c",
    203       "../externals/icu/source/common/utrie.cpp",
    204       "../externals/icu/source/common/utrie2.cpp",
    205       "../externals/icu/source/common/utrie2_builder.cpp",
    206       "../externals/icu/source/common/uts46.cpp",
    207       "../externals/icu/source/common/utypes.c",
    208       "../externals/icu/source/common/uvector.cpp",
    209       "../externals/icu/source/common/uvectr32.cpp",
    210       "../externals/icu/source/common/uvectr64.cpp",
    211       "../externals/icu/source/common/wintz.c",
    212     ]
    213     if (is_win) {
    214       deps = [
    215         ":icudata",
    216       ]
    217       public_defines += [
    218         "U_NOEXCEPT=",
    219         "U_STATIC_IMPLEMENTATION",
    220       ]
    221       libs = [ "Advapi32.lib" ]
    222       sources += [ "../externals/icu/source/stubdata/stubdata.c" ]
    223     } else {
    224       if (is_ios) {
    225         sources += [ "../externals/icu/mac/icudtl_dat.S" ]
    226       } else {
    227         sources += [ "../externals/icu/$current_os/icudtl_dat.S" ]
    228       }
    229       libs = [ "dl" ]
    230     }
    231   }
    232   if (is_win) {
    233     copy("icudata") {
    234       sources = [
    235         "../externals/icu/windows/icudt.dll",
    236       ]
    237       outputs = [
    238         "$root_out_dir/icudt.dll",
    239       ]
    240       data = outputs
    241     }
    242   }
    243 }
    244