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 19cc_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// 254cc_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