aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/icu/BUILD.gn
blob: 7233fcc4c9e904b8da3a42b50314744d5f505de1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
# Copyright 2016 Google Inc.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

declare_args() {
  skia_use_system_icu = is_official_build
}

import("../third_party.gni")

if (skia_use_system_icu) {
  system("icu") {
    libs = [ "icuuc" ]
    defines = [ "U_USING_ICU_NAMESPACE=0" ]
  }
} else {
  third_party("icu") {
    public_include_dirs = [
      "../externals/icu/source/common",
      ".",
    ]
    public_defines = [ "U_USING_ICU_NAMESPACE=0" ]
    configs -= [ "//gn:no_rtti" ]
    defines = [
      # http://userguide.icu-project.org/howtouseicu
      "U_COMMON_IMPLEMENTATION",
      "U_STATIC_IMPLEMENTATION",
      "U_ENABLE_DYLOAD=0",
    ]
    sources = [
      "../externals/icu/source/common/appendable.cpp",
      "../externals/icu/source/common/bmpset.cpp",
      "../externals/icu/source/common/brkeng.cpp",
      "../externals/icu/source/common/brkiter.cpp",
      "../externals/icu/source/common/bytestream.cpp",
      "../externals/icu/source/common/bytestrie.cpp",
      "../externals/icu/source/common/bytestriebuilder.cpp",
      "../externals/icu/source/common/bytestrieiterator.cpp",
      "../externals/icu/source/common/caniter.cpp",
      "../externals/icu/source/common/chariter.cpp",
      "../externals/icu/source/common/charstr.cpp",
      "../externals/icu/source/common/cmemory.c",
      "../externals/icu/source/common/cstring.c",
      "../externals/icu/source/common/cwchar.c",
      "../externals/icu/source/common/dictbe.cpp",
      "../externals/icu/source/common/dictionarydata.cpp",
      "../externals/icu/source/common/dtintrv.cpp",
      "../externals/icu/source/common/errorcode.cpp",
      "../externals/icu/source/common/filteredbrk.cpp",
      "../externals/icu/source/common/filterednormalizer2.cpp",
      "../externals/icu/source/common/icudataver.c",
      "../externals/icu/source/common/icuplug.cpp",
      "../externals/icu/source/common/listformatter.cpp",
      "../externals/icu/source/common/loadednormalizer2impl.cpp",
      "../externals/icu/source/common/locavailable.cpp",
      "../externals/icu/source/common/locbased.cpp",
      "../externals/icu/source/common/locdispnames.cpp",
      "../externals/icu/source/common/locid.cpp",
      "../externals/icu/source/common/loclikely.cpp",
      "../externals/icu/source/common/locmap.c",
      "../externals/icu/source/common/locresdata.cpp",
      "../externals/icu/source/common/locutil.cpp",
      "../externals/icu/source/common/messagepattern.cpp",
      "../externals/icu/source/common/normalizer2.cpp",
      "../externals/icu/source/common/normalizer2impl.cpp",
      "../externals/icu/source/common/normlzr.cpp",
      "../externals/icu/source/common/parsepos.cpp",
      "../externals/icu/source/common/patternprops.cpp",
      "../externals/icu/source/common/pluralmap.cpp",
      "../externals/icu/source/common/propname.cpp",
      "../externals/icu/source/common/propsvec.c",
      "../externals/icu/source/common/punycode.cpp",
      "../externals/icu/source/common/putil.cpp",
      "../externals/icu/source/common/rbbi.cpp",
      "../externals/icu/source/common/rbbidata.cpp",
      "../externals/icu/source/common/rbbinode.cpp",
      "../externals/icu/source/common/rbbirb.cpp",
      "../externals/icu/source/common/rbbiscan.cpp",
      "../externals/icu/source/common/rbbisetb.cpp",
      "../externals/icu/source/common/rbbistbl.cpp",
      "../externals/icu/source/common/rbbitblb.cpp",
      "../externals/icu/source/common/resbund.cpp",
      "../externals/icu/source/common/resbund_cnv.cpp",
      "../externals/icu/source/common/resource.cpp",
      "../externals/icu/source/common/ruleiter.cpp",
      "../externals/icu/source/common/schriter.cpp",
      "../externals/icu/source/common/serv.cpp",
      "../externals/icu/source/common/servlk.cpp",
      "../externals/icu/source/common/servlkf.cpp",
      "../externals/icu/source/common/servls.cpp",
      "../externals/icu/source/common/servnotf.cpp",
      "../externals/icu/source/common/servrbf.cpp",
      "../externals/icu/source/common/servslkf.cpp",
      "../externals/icu/source/common/sharedobject.cpp",
      "../externals/icu/source/common/simplepatternformatter.cpp",
      "../externals/icu/source/common/stringpiece.cpp",
      "../externals/icu/source/common/stringtriebuilder.cpp",
      "../externals/icu/source/common/uarrsort.c",
      "../externals/icu/source/common/ubidi.c",
      "../externals/icu/source/common/ubidi_props.c",
      "../externals/icu/source/common/ubidiln.c",
      "../externals/icu/source/common/ubidiwrt.c",
      "../externals/icu/source/common/ubrk.cpp",
      "../externals/icu/source/common/ucase.cpp",
      "../externals/icu/source/common/ucasemap.cpp",
      "../externals/icu/source/common/ucasemap_titlecase_brkiter.cpp",
      "../externals/icu/source/common/ucat.c",
      "../externals/icu/source/common/uchar.c",
      "../externals/icu/source/common/ucharstrie.cpp",
      "../externals/icu/source/common/ucharstriebuilder.cpp",
      "../externals/icu/source/common/ucharstrieiterator.cpp",
      "../externals/icu/source/common/uchriter.cpp",
      "../externals/icu/source/common/ucln_cmn.cpp",
      "../externals/icu/source/common/ucmndata.c",
      "../externals/icu/source/common/ucnv.c",
      "../externals/icu/source/common/ucnv2022.cpp",
      "../externals/icu/source/common/ucnv_bld.cpp",
      "../externals/icu/source/common/ucnv_cb.c",
      "../externals/icu/source/common/ucnv_cnv.c",
      "../externals/icu/source/common/ucnv_ct.c",
      "../externals/icu/source/common/ucnv_err.c",
      "../externals/icu/source/common/ucnv_ext.cpp",
      "../externals/icu/source/common/ucnv_io.cpp",
      "../externals/icu/source/common/ucnv_lmb.c",
      "../externals/icu/source/common/ucnv_set.c",
      "../externals/icu/source/common/ucnv_u16.c",
      "../externals/icu/source/common/ucnv_u32.c",
      "../externals/icu/source/common/ucnv_u7.c",
      "../externals/icu/source/common/ucnv_u8.c",
      "../externals/icu/source/common/ucnvbocu.cpp",
      "../externals/icu/source/common/ucnvdisp.c",
      "../externals/icu/source/common/ucnvhz.c",
      "../externals/icu/source/common/ucnvisci.c",
      "../externals/icu/source/common/ucnvlat1.c",
      "../externals/icu/source/common/ucnvmbcs.cpp",
      "../externals/icu/source/common/ucnvscsu.c",
      "../externals/icu/source/common/ucnvsel.cpp",
      "../externals/icu/source/common/ucol_swp.cpp",
      "../externals/icu/source/common/udata.cpp",
      "../externals/icu/source/common/udatamem.c",
      "../externals/icu/source/common/udataswp.c",
      "../externals/icu/source/common/uenum.c",
      "../externals/icu/source/common/uhash.c",
      "../externals/icu/source/common/uhash_us.cpp",
      "../externals/icu/source/common/uidna.cpp",
      "../externals/icu/source/common/uinit.cpp",
      "../externals/icu/source/common/uinvchar.c",
      "../externals/icu/source/common/uiter.cpp",
      "../externals/icu/source/common/ulist.c",
      "../externals/icu/source/common/ulistformatter.cpp",
      "../externals/icu/source/common/uloc.cpp",
      "../externals/icu/source/common/uloc_keytype.cpp",
      "../externals/icu/source/common/uloc_tag.c",
      "../externals/icu/source/common/umapfile.c",
      "../externals/icu/source/common/umath.c",
      "../externals/icu/source/common/umutex.cpp",
      "../externals/icu/source/common/unames.cpp",
      "../externals/icu/source/common/unifiedcache.cpp",
      "../externals/icu/source/common/unifilt.cpp",
      "../externals/icu/source/common/unifunct.cpp",
      "../externals/icu/source/common/uniset.cpp",
      "../externals/icu/source/common/uniset_closure.cpp",
      "../externals/icu/source/common/uniset_props.cpp",
      "../externals/icu/source/common/unisetspan.cpp",
      "../externals/icu/source/common/unistr.cpp",
      "../externals/icu/source/common/unistr_case.cpp",
      "../externals/icu/source/common/unistr_case_locale.cpp",
      "../externals/icu/source/common/unistr_cnv.cpp",
      "../externals/icu/source/common/unistr_props.cpp",
      "../externals/icu/source/common/unistr_titlecase_brkiter.cpp",
      "../externals/icu/source/common/unorm.cpp",
      "../externals/icu/source/common/unormcmp.cpp",
      "../externals/icu/source/common/uobject.cpp",
      "../externals/icu/source/common/uprops.cpp",
      "../externals/icu/source/common/ures_cnv.c",
      "../externals/icu/source/common/uresbund.cpp",
      "../externals/icu/source/common/uresdata.cpp",
      "../externals/icu/source/common/uresource.cpp",
      "../externals/icu/source/common/usc_impl.c",
      "../externals/icu/source/common/uscript.c",
      "../externals/icu/source/common/uscript_props.cpp",
      "../externals/icu/source/common/uset.cpp",
      "../externals/icu/source/common/uset_props.cpp",
      "../externals/icu/source/common/usetiter.cpp",
      "../externals/icu/source/common/ushape.cpp",
      "../externals/icu/source/common/usprep.cpp",
      "../externals/icu/source/common/ustack.cpp",
      "../externals/icu/source/common/ustr_cnv.cpp",
      "../externals/icu/source/common/ustr_titlecase_brkiter.cpp",
      "../externals/icu/source/common/ustr_wcs.cpp",
      "../externals/icu/source/common/ustrcase.cpp",
      "../externals/icu/source/common/ustrcase_locale.cpp",
      "../externals/icu/source/common/ustrenum.cpp",
      "../externals/icu/source/common/ustrfmt.c",
      "../externals/icu/source/common/ustring.cpp",
      "../externals/icu/source/common/ustrtrns.cpp",
      "../externals/icu/source/common/utext.cpp",
      "../externals/icu/source/common/utf_impl.c",
      "../externals/icu/source/common/util.cpp",
      "../externals/icu/source/common/util_props.cpp",
      "../externals/icu/source/common/utrace.c",
      "../externals/icu/source/common/utrie.cpp",
      "../externals/icu/source/common/utrie2.cpp",
      "../externals/icu/source/common/utrie2_builder.cpp",
      "../externals/icu/source/common/uts46.cpp",
      "../externals/icu/source/common/utypes.c",
      "../externals/icu/source/common/uvector.cpp",
      "../externals/icu/source/common/uvectr32.cpp",
      "../externals/icu/source/common/uvectr64.cpp",
      "../externals/icu/source/common/wintz.c",
    ]
    if (is_win) {
      deps = [
        ":icudata",
      ]
      public_defines += [
        "U_NOEXCEPT=",
        "U_STATIC_IMPLEMENTATION",
      ]
      libs = [ "Advapi32.lib" ]
      sources += [ "../externals/icu/source/stubdata/stubdata.c" ]
    } else {
      if (is_ios) {
        sources += [ "../externals/icu/mac/icudtl_dat.S" ]
      } else {
        sources += [ "../externals/icu/$current_os/icudtl_dat.S" ]
      }
      libs = [ "dl" ]
    }
  }
  if (is_win) {
    copy("icudata") {
      sources = [
        "../externals/icu/windows/icudt.dll",
      ]
      outputs = [
        "$root_out_dir/icudt.dll",
      ]
      data = outputs
    }
  }
}