Home | History | Annotate | Download | only in common
      1 // Copyright (C) 2008 The Android Open Source Project
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //      http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 //
     16 // Common definitions.
     17 //
     18 
     19 cc_defaults {
     20     name: "libicuuc_defaults",
     21     srcs: [
     22         "cmemory.c",
     23         "cstring.c",
     24         "cstr.cpp",
     25         "cwchar.c",
     26         "filteredbrk.cpp",
     27         "icuplug.cpp",
     28         "loadednormalizer2impl.cpp",
     29         "locdspnm.cpp",
     30         "locmap.c",
     31         "pluralmap.cpp",
     32         "propsvec.c",
     33         "punycode.cpp",
     34         "putil.cpp",
     35         "resource.cpp",
     36         "sharedobject.cpp",
     37         "simpleformatter.cpp",
     38         "uarrsort.c",
     39         "ubidi.c",
     40         "ubidiln.c",
     41         "ubidi_props.c",
     42         "ubiditransform.c",
     43         "ubidiwrt.c",
     44         "ucase.cpp",
     45         "ucasemap.cpp",
     46         "ucat.c",
     47         "uchar.c",
     48         "ucln_cmn.cpp",
     49         "ucmndata.c",
     50         "ucnv2022.cpp",
     51         "ucnv_bld.cpp",
     52         "ucnvbocu.cpp",
     53         "ucnv.c",
     54         "ucnv_cb.c",
     55         "ucnv_cnv.c",
     56         "ucnv_ct.c",
     57         "ucnvdisp.c",
     58         "ucnv_err.c",
     59         "ucnv_ext.cpp",
     60         "ucnvhz.c",
     61         "ucnv_io.cpp",
     62         "ucnvisci.c",
     63         "ucnvlat1.c",
     64         "ucnv_lmb.c",
     65         "ucnvmbcs.cpp",
     66         "ucnvscsu.c",
     67         "ucnv_set.c",
     68         "ucnv_u16.c",
     69         "ucnv_u32.c",
     70         "ucnv_u7.c",
     71         "ucnv_u8.c",
     72         "ucurr.cpp",
     73         "udatamem.c",
     74         "udataswp.c",
     75         "uenum.c",
     76         "uhash.c",
     77         "uinit.cpp",
     78         "uinvchar.c",
     79         "ulist.c",
     80         "ulistformatter.cpp",
     81         "uloc.cpp",
     82         "uloc_keytype.cpp",
     83         "uloc_tag.c",
     84         "umapfile.c",
     85         "umath.c",
     86         "umutex.cpp",
     87         "unames.cpp",
     88         "uresbund.cpp",
     89         "ures_cnv.c",
     90         "uresdata.cpp",
     91         "usc_impl.c",
     92         "uscript.c",
     93         "uscript_props.cpp",
     94         "ushape.cpp",
     95         "ustrcase.cpp",
     96         "ustr_cnv.cpp",
     97         "ustrfmt.c",
     98         "ustring.cpp",
     99         "ustrtrns.cpp",
    100         "ustr_wcs.cpp",
    101         "utf_impl.c",
    102         "utrace.c",
    103         "utrie2_builder.cpp",
    104         "utrie.cpp",
    105         "utypes.c",
    106         "wintz.c",
    107 
    108         "appendable.cpp",
    109         "bmpset.cpp",
    110         "brkeng.cpp",
    111         "brkiter.cpp",
    112         "bytestream.cpp",
    113         "bytestriebuilder.cpp",
    114         "bytestrie.cpp",
    115         "bytestrieiterator.cpp",
    116         "caniter.cpp",
    117         "chariter.cpp",
    118         "charstr.cpp",
    119         "dictbe.cpp",
    120         "dictionarydata.cpp",
    121         "dtintrv.cpp",
    122         "errorcode.cpp",
    123         "filterednormalizer2.cpp",
    124         "listformatter.cpp",
    125         "locavailable.cpp",
    126         "locbased.cpp",
    127         "locdispnames.cpp",
    128         "locid.cpp",
    129         "loclikely.cpp",
    130         "locresdata.cpp",
    131         "locutil.cpp",
    132         "messagepattern.cpp",
    133         "normalizer2.cpp",
    134         "normalizer2impl.cpp",
    135         "normlzr.cpp",
    136         "parsepos.cpp",
    137         "patternprops.cpp",
    138         "propname.cpp",
    139         "rbbi.cpp",
    140         "rbbidata.cpp",
    141         "rbbinode.cpp",
    142         "rbbirb.cpp",
    143         "rbbiscan.cpp",
    144         "rbbisetb.cpp",
    145         "rbbistbl.cpp",
    146         "rbbitblb.cpp",
    147         "resbund_cnv.cpp",
    148         "resbund.cpp",
    149         "ruleiter.cpp",
    150         "schriter.cpp",
    151         "serv.cpp",
    152         "servlk.cpp",
    153         "servlkf.cpp",
    154         "servls.cpp",
    155         "servnotf.cpp",
    156         "servrbf.cpp",
    157         "servslkf.cpp",
    158         "stringpiece.cpp",
    159         "stringtriebuilder.cpp",
    160         "ubrk.cpp",
    161         "ucasemap_titlecase_brkiter.cpp",
    162         "ucharstriebuilder.cpp",
    163         "ucharstrie.cpp",
    164         "ucharstrieiterator.cpp",
    165         "uchriter.cpp",
    166         "ucnvsel.cpp",
    167         "ucol_swp.cpp",
    168         "udata.cpp",
    169         "uhash_us.cpp",
    170         "uidna.cpp",
    171         "uiter.cpp",
    172         "unifiedcache.cpp",
    173         "unifilt.cpp",
    174         "unifunct.cpp",
    175         "uniset_closure.cpp",
    176         "uniset.cpp",
    177         "uniset_props.cpp",
    178         "unisetspan.cpp",
    179         "unistr_case.cpp",
    180         "unistr_case_locale.cpp",
    181         "unistr_cnv.cpp",
    182         "unistr.cpp",
    183         "unistr_props.cpp",
    184         "unistr_titlecase_brkiter.cpp",
    185         "unormcmp.cpp",
    186         "unorm.cpp",
    187         "uobject.cpp",
    188         "uprops.cpp",
    189         "uset.cpp",
    190         "usetiter.cpp",
    191         "uset_props.cpp",
    192         "usprep.cpp",
    193         "ustack.cpp",
    194         "ustrcase_locale.cpp",
    195         "ustrenum.cpp",
    196         "ustr_titlecase_brkiter.cpp",
    197         "utext.cpp",
    198         "util.cpp",
    199         "util_props.cpp",
    200         "utrie2.cpp",
    201         "uts46.cpp",
    202         "uvector.cpp",
    203         "uvectr32.cpp",
    204         "uvectr64.cpp",
    205     ],
    206 
    207     // We deliberately do not set -DICU_DATA_DIR: ICU4C is configured on Android
    208     // using udata_setCommonData.
    209     cflags: [
    210         "-D_REENTRANT",
    211         "-DU_COMMON_IMPLEMENTATION",
    212 
    213         "-O3",
    214         "-fvisibility=hidden",
    215 
    216         "-Wno-unused-parameter",
    217         "-Wno-missing-field-initializers",
    218         "-Wno-sign-compare",
    219         "-Wno-deprecated-declarations",
    220     ],
    221 
    222     export_include_dirs: ["."],
    223     rtti: true,
    224     clang: true,
    225     arch: {
    226         mips64: {
    227             clang: false,
    228         },
    229     },
    230 
    231     required: ["icu-data"],
    232 
    233     target: {
    234         android: {
    235             cflags: [
    236                 "-DPIC",
    237                 "-fPIC",
    238             ],
    239             shared_libs: ["libdl"],
    240         },
    241         host: {
    242             host_ldlibs: [
    243                 "-ldl",
    244                 "-lm",
    245                 "-lpthread",
    246             ],
    247         },
    248     },
    249 }
    250 
    251 //
    252 // Build for the host and target.
    253 //
    254 cc_library_shared {
    255     name: "libicuuc",
    256     vendor_available: true,
    257     host_supported: true,
    258     unique_host_soname: true,
    259     defaults: ["libicuuc_defaults"],
    260     static_libs: ["libicuuc_stubdata"],
    261 }
    262