• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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