xref: /aosp_15_r20/external/cronet/third_party/icu/icu.gyp (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright (c) 2012 The Chromium Authors. All rights reserved.
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Worker{
6*6777b538SAndroid Build Coastguard Worker  'includes': [
7*6777b538SAndroid Build Coastguard Worker    'icu.gypi',
8*6777b538SAndroid Build Coastguard Worker  ],
9*6777b538SAndroid Build Coastguard Worker  'variables': {
10*6777b538SAndroid Build Coastguard Worker    'use_system_icu%': 0,
11*6777b538SAndroid Build Coastguard Worker    'icu_use_data_file_flag%': 0,
12*6777b538SAndroid Build Coastguard Worker    'want_separate_host_toolset%': 1,
13*6777b538SAndroid Build Coastguard Worker  },
14*6777b538SAndroid Build Coastguard Worker  'target_defaults': {
15*6777b538SAndroid Build Coastguard Worker    'direct_dependent_settings': {
16*6777b538SAndroid Build Coastguard Worker      'defines': [
17*6777b538SAndroid Build Coastguard Worker        # Tell ICU to not insert |using namespace icu;| into its headers,
18*6777b538SAndroid Build Coastguard Worker        # so that chrome's source explicitly has to use |icu::|.
19*6777b538SAndroid Build Coastguard Worker        'U_USING_ICU_NAMESPACE=0',
20*6777b538SAndroid Build Coastguard Worker        # We don't use ICU plugins and dyload is only necessary for them.
21*6777b538SAndroid Build Coastguard Worker        # NaCl-related builds also fail looking for dlfcn.h when it's enabled.
22*6777b538SAndroid Build Coastguard Worker        'U_ENABLE_DYLOAD=0',
23*6777b538SAndroid Build Coastguard Worker      ],
24*6777b538SAndroid Build Coastguard Worker    },
25*6777b538SAndroid Build Coastguard Worker    'defines': [
26*6777b538SAndroid Build Coastguard Worker      'U_USING_ICU_NAMESPACE=0',
27*6777b538SAndroid Build Coastguard Worker      'HAVE_DLOPEN=0',
28*6777b538SAndroid Build Coastguard Worker      # Only build encoding coverters and detectors necessary for HTML5.
29*6777b538SAndroid Build Coastguard Worker      'UCONFIG_ONLY_HTML_CONVERSION=1',
30*6777b538SAndroid Build Coastguard Worker      # TODO(jshin): Do we still need/want this?
31*6777b538SAndroid Build Coastguard Worker      'UCONFIG_USE_WINDOWS_LCID_MAPPING_API=0',
32*6777b538SAndroid Build Coastguard Worker      # No dependency on the default platform encoding.
33*6777b538SAndroid Build Coastguard Worker      # Will cut down the code size.
34*6777b538SAndroid Build Coastguard Worker      'U_CHARSET_IS_UTF8=1',
35*6777b538SAndroid Build Coastguard Worker    ],
36*6777b538SAndroid Build Coastguard Worker    'conditions': [
37*6777b538SAndroid Build Coastguard Worker      ['component=="static_library"', {
38*6777b538SAndroid Build Coastguard Worker        'defines': [
39*6777b538SAndroid Build Coastguard Worker          'U_STATIC_IMPLEMENTATION',
40*6777b538SAndroid Build Coastguard Worker        ],
41*6777b538SAndroid Build Coastguard Worker      }],
42*6777b538SAndroid Build Coastguard Worker      ['OS=="win"', {
43*6777b538SAndroid Build Coastguard Worker        'cflags': [ '/utf-8' ],
44*6777b538SAndroid Build Coastguard Worker      }],
45*6777b538SAndroid Build Coastguard Worker      ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \
46*6777b538SAndroid Build Coastguard Worker         or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="qnx") and \
47*6777b538SAndroid Build Coastguard Worker        (target_arch=="arm" or target_arch=="ia32" or \
48*6777b538SAndroid Build Coastguard Worker         target_arch=="mipsel" or target_arch=="mips" or \
49*6777b538SAndroid Build Coastguard Worker         target_arch=="ppc" or target_arch=="s390")', {
50*6777b538SAndroid Build Coastguard Worker        'target_conditions': [
51*6777b538SAndroid Build Coastguard Worker          ['_toolset=="host"', {
52*6777b538SAndroid Build Coastguard Worker            'conditions': [
53*6777b538SAndroid Build Coastguard Worker              ['host_arch=="s390" or host_arch=="s390x"', {
54*6777b538SAndroid Build Coastguard Worker                'cflags': [ '-m31' ],
55*6777b538SAndroid Build Coastguard Worker                'ldflags': [ '-m31' ],
56*6777b538SAndroid Build Coastguard Worker                'asflags': [ '-31' ],
57*6777b538SAndroid Build Coastguard Worker              },{
58*6777b538SAndroid Build Coastguard Worker               'cflags': [ '-m32' ],
59*6777b538SAndroid Build Coastguard Worker               'ldflags': [ '-m32' ],
60*6777b538SAndroid Build Coastguard Worker               'asflags': [ '-32' ],
61*6777b538SAndroid Build Coastguard Worker              }],
62*6777b538SAndroid Build Coastguard Worker            ],
63*6777b538SAndroid Build Coastguard Worker            'xcode_settings': {
64*6777b538SAndroid Build Coastguard Worker              'ARCHS': [ 'i386' ],
65*6777b538SAndroid Build Coastguard Worker            },
66*6777b538SAndroid Build Coastguard Worker          }],
67*6777b538SAndroid Build Coastguard Worker        ],
68*6777b538SAndroid Build Coastguard Worker      }],
69*6777b538SAndroid Build Coastguard Worker      ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \
70*6777b538SAndroid Build Coastguard Worker         or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="qnx") and \
71*6777b538SAndroid Build Coastguard Worker        (target_arch=="arm64" or target_arch=="x64" or \
72*6777b538SAndroid Build Coastguard Worker         target_arch=="mips64el" or target_arch=="mips64" or \
73*6777b538SAndroid Build Coastguard Worker         target_arch=="ppc64" or target_arch=="s390x")', {
74*6777b538SAndroid Build Coastguard Worker        'target_conditions': [
75*6777b538SAndroid Build Coastguard Worker          ['_toolset=="host"', {
76*6777b538SAndroid Build Coastguard Worker            'cflags': [ '-m64' ],
77*6777b538SAndroid Build Coastguard Worker            'ldflags': [ '-m64' ],
78*6777b538SAndroid Build Coastguard Worker            'asflags': [ '-64' ],
79*6777b538SAndroid Build Coastguard Worker            'xcode_settings': {
80*6777b538SAndroid Build Coastguard Worker              'ARCHS': [ 'x86_64' ],
81*6777b538SAndroid Build Coastguard Worker            },
82*6777b538SAndroid Build Coastguard Worker          }],
83*6777b538SAndroid Build Coastguard Worker        ],
84*6777b538SAndroid Build Coastguard Worker      }],
85*6777b538SAndroid Build Coastguard Worker    ],
86*6777b538SAndroid Build Coastguard Worker    'include_dirs': [
87*6777b538SAndroid Build Coastguard Worker      'source/common',
88*6777b538SAndroid Build Coastguard Worker      'source/i18n',
89*6777b538SAndroid Build Coastguard Worker    ],
90*6777b538SAndroid Build Coastguard Worker    'msvs_disabled_warnings': [4005, 4068, 4267],
91*6777b538SAndroid Build Coastguard Worker  },
92*6777b538SAndroid Build Coastguard Worker  'conditions': [
93*6777b538SAndroid Build Coastguard Worker    ['use_system_icu==0 or want_separate_host_toolset==1', {
94*6777b538SAndroid Build Coastguard Worker      'targets': [
95*6777b538SAndroid Build Coastguard Worker        {
96*6777b538SAndroid Build Coastguard Worker          'target_name': 'copy_icudt_dat',
97*6777b538SAndroid Build Coastguard Worker          'type': 'none',
98*6777b538SAndroid Build Coastguard Worker          # icudtl.dat is the same for both host/target, so this only supports a
99*6777b538SAndroid Build Coastguard Worker          # single toolset. If a target requires that the .dat file be copied
100*6777b538SAndroid Build Coastguard Worker          # to the output directory, it should explicitly depend on this target
101*6777b538SAndroid Build Coastguard Worker          # with the host toolset (like copy_icudt_dat#host).
102*6777b538SAndroid Build Coastguard Worker          'toolsets': [ 'host' ],
103*6777b538SAndroid Build Coastguard Worker          'copies': [{
104*6777b538SAndroid Build Coastguard Worker            'destination': '<(PRODUCT_DIR)',
105*6777b538SAndroid Build Coastguard Worker            'conditions': [
106*6777b538SAndroid Build Coastguard Worker              ['OS == "android"', {
107*6777b538SAndroid Build Coastguard Worker                'files': [
108*6777b538SAndroid Build Coastguard Worker                  'android/icudtl.dat',
109*6777b538SAndroid Build Coastguard Worker                ],
110*6777b538SAndroid Build Coastguard Worker              } , { # else: OS != android
111*6777b538SAndroid Build Coastguard Worker                'conditions': [
112*6777b538SAndroid Build Coastguard Worker                  # Big Endian
113*6777b538SAndroid Build Coastguard Worker                  [ 'v8_host_byteorder=="big" or target_arch=="mips" or \
114*6777b538SAndroid Build Coastguard Worker                     target_arch=="mips64"', {
115*6777b538SAndroid Build Coastguard Worker                    'files': [
116*6777b538SAndroid Build Coastguard Worker                      'common/icudtb.dat',
117*6777b538SAndroid Build Coastguard Worker                    ],
118*6777b538SAndroid Build Coastguard Worker                  } , {  # else: ! Big Endian = Little Endian
119*6777b538SAndroid Build Coastguard Worker                    'files': [
120*6777b538SAndroid Build Coastguard Worker                      'common/icudtl.dat',
121*6777b538SAndroid Build Coastguard Worker                    ],
122*6777b538SAndroid Build Coastguard Worker                  }],
123*6777b538SAndroid Build Coastguard Worker                ],
124*6777b538SAndroid Build Coastguard Worker              }],
125*6777b538SAndroid Build Coastguard Worker            ],
126*6777b538SAndroid Build Coastguard Worker          }],
127*6777b538SAndroid Build Coastguard Worker        },
128*6777b538SAndroid Build Coastguard Worker        {
129*6777b538SAndroid Build Coastguard Worker          'target_name': 'data_assembly',
130*6777b538SAndroid Build Coastguard Worker          'type': 'none',
131*6777b538SAndroid Build Coastguard Worker          'conditions': [
132*6777b538SAndroid Build Coastguard Worker            [ 'v8_host_byteorder=="big" or target_arch=="mips" or \
133*6777b538SAndroid Build Coastguard Worker               target_arch=="mips64"', { # Big Endian
134*6777b538SAndroid Build Coastguard Worker              'data_assembly_inputs': [
135*6777b538SAndroid Build Coastguard Worker                'common/icudtb.dat',
136*6777b538SAndroid Build Coastguard Worker              ],
137*6777b538SAndroid Build Coastguard Worker              'data_assembly_outputs': [
138*6777b538SAndroid Build Coastguard Worker                '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtb_dat.S',
139*6777b538SAndroid Build Coastguard Worker              ],
140*6777b538SAndroid Build Coastguard Worker            }, { # Little Endian
141*6777b538SAndroid Build Coastguard Worker              'data_assembly_outputs': [
142*6777b538SAndroid Build Coastguard Worker                '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtl_dat.S',
143*6777b538SAndroid Build Coastguard Worker              ],
144*6777b538SAndroid Build Coastguard Worker              'conditions': [
145*6777b538SAndroid Build Coastguard Worker                ['OS == "android"', {
146*6777b538SAndroid Build Coastguard Worker                  'data_assembly_inputs': [
147*6777b538SAndroid Build Coastguard Worker                    'android/icudtl.dat',
148*6777b538SAndroid Build Coastguard Worker                  ],
149*6777b538SAndroid Build Coastguard Worker                } , { # else: OS!="android"
150*6777b538SAndroid Build Coastguard Worker                  'data_assembly_inputs': [
151*6777b538SAndroid Build Coastguard Worker                    'common/icudtl.dat',
152*6777b538SAndroid Build Coastguard Worker                  ],
153*6777b538SAndroid Build Coastguard Worker                }], # OS==android
154*6777b538SAndroid Build Coastguard Worker              ],
155*6777b538SAndroid Build Coastguard Worker            }],
156*6777b538SAndroid Build Coastguard Worker          ],
157*6777b538SAndroid Build Coastguard Worker          'sources': [
158*6777b538SAndroid Build Coastguard Worker            '<@(_data_assembly_inputs)',
159*6777b538SAndroid Build Coastguard Worker          ],
160*6777b538SAndroid Build Coastguard Worker          'actions': [
161*6777b538SAndroid Build Coastguard Worker            {
162*6777b538SAndroid Build Coastguard Worker              'action_name': 'make_data_assembly',
163*6777b538SAndroid Build Coastguard Worker              'inputs': [
164*6777b538SAndroid Build Coastguard Worker                'scripts/make_data_assembly.py',
165*6777b538SAndroid Build Coastguard Worker                '<@(_data_assembly_inputs)',
166*6777b538SAndroid Build Coastguard Worker              ],
167*6777b538SAndroid Build Coastguard Worker              'outputs': [
168*6777b538SAndroid Build Coastguard Worker                '<@(_data_assembly_outputs)',
169*6777b538SAndroid Build Coastguard Worker              ],
170*6777b538SAndroid Build Coastguard Worker              'target_conditions': [
171*6777b538SAndroid Build Coastguard Worker                 [ 'OS == "mac" or OS == "ios" or '
172*6777b538SAndroid Build Coastguard Worker                   '((OS == "android" or OS == "qnx") and '
173*6777b538SAndroid Build Coastguard Worker                   '_toolset == "host" and host_os == "mac")', {
174*6777b538SAndroid Build Coastguard Worker                   'action': ['python', '<@(_inputs)', '<@(_outputs)', '--mac'],
175*6777b538SAndroid Build Coastguard Worker                 } , {
176*6777b538SAndroid Build Coastguard Worker                   'action': ['python', '<@(_inputs)', '<@(_outputs)'],
177*6777b538SAndroid Build Coastguard Worker                 }],
178*6777b538SAndroid Build Coastguard Worker              ],
179*6777b538SAndroid Build Coastguard Worker            },
180*6777b538SAndroid Build Coastguard Worker          ],
181*6777b538SAndroid Build Coastguard Worker        },
182*6777b538SAndroid Build Coastguard Worker        {
183*6777b538SAndroid Build Coastguard Worker          'target_name': 'icudata',
184*6777b538SAndroid Build Coastguard Worker          'type': 'static_library',
185*6777b538SAndroid Build Coastguard Worker          'defines': [
186*6777b538SAndroid Build Coastguard Worker            'U_HIDE_DATA_SYMBOL',
187*6777b538SAndroid Build Coastguard Worker          ],
188*6777b538SAndroid Build Coastguard Worker          'dependencies': [
189*6777b538SAndroid Build Coastguard Worker            'data_assembly#target',
190*6777b538SAndroid Build Coastguard Worker          ],
191*6777b538SAndroid Build Coastguard Worker          'sources': [
192*6777b538SAndroid Build Coastguard Worker             '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtl_dat.S',
193*6777b538SAndroid Build Coastguard Worker             '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtb_dat.S',
194*6777b538SAndroid Build Coastguard Worker          ],
195*6777b538SAndroid Build Coastguard Worker          'conditions': [
196*6777b538SAndroid Build Coastguard Worker            [ 'v8_host_byteorder=="big" or target_arch=="mips" or \
197*6777b538SAndroid Build Coastguard Worker               target_arch=="mips64"', {
198*6777b538SAndroid Build Coastguard Worker              'sources!': [
199*6777b538SAndroid Build Coastguard Worker                '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtl_dat.S'
200*6777b538SAndroid Build Coastguard Worker              ],
201*6777b538SAndroid Build Coastguard Worker            }, {
202*6777b538SAndroid Build Coastguard Worker              'sources!': [
203*6777b538SAndroid Build Coastguard Worker                '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtb_dat.S'
204*6777b538SAndroid Build Coastguard Worker              ],
205*6777b538SAndroid Build Coastguard Worker            }],
206*6777b538SAndroid Build Coastguard Worker            [ 'use_system_icu==1 and want_separate_host_toolset==1', {
207*6777b538SAndroid Build Coastguard Worker              'toolsets': ['host'],
208*6777b538SAndroid Build Coastguard Worker            }],
209*6777b538SAndroid Build Coastguard Worker            [ 'use_system_icu==0 and want_separate_host_toolset==1', {
210*6777b538SAndroid Build Coastguard Worker              'toolsets': ['host', 'target'],
211*6777b538SAndroid Build Coastguard Worker            }],
212*6777b538SAndroid Build Coastguard Worker            [ 'use_system_icu==0 and want_separate_host_toolset==0', {
213*6777b538SAndroid Build Coastguard Worker              'toolsets': ['target'],
214*6777b538SAndroid Build Coastguard Worker            }],
215*6777b538SAndroid Build Coastguard Worker            [ 'OS == "win" and icu_use_data_file_flag==0', {
216*6777b538SAndroid Build Coastguard Worker              'type': 'none',
217*6777b538SAndroid Build Coastguard Worker              'dependencies!': [
218*6777b538SAndroid Build Coastguard Worker                'data_assembly#target',
219*6777b538SAndroid Build Coastguard Worker              ],
220*6777b538SAndroid Build Coastguard Worker              'copies': [
221*6777b538SAndroid Build Coastguard Worker                {
222*6777b538SAndroid Build Coastguard Worker                  'destination': '<(PRODUCT_DIR)',
223*6777b538SAndroid Build Coastguard Worker                  'files': [
224*6777b538SAndroid Build Coastguard Worker                    'windows/icudt.dll',
225*6777b538SAndroid Build Coastguard Worker                  ],
226*6777b538SAndroid Build Coastguard Worker                },
227*6777b538SAndroid Build Coastguard Worker              ],
228*6777b538SAndroid Build Coastguard Worker            }],
229*6777b538SAndroid Build Coastguard Worker            [ 'icu_use_data_file_flag==1', {
230*6777b538SAndroid Build Coastguard Worker              'type': 'none',
231*6777b538SAndroid Build Coastguard Worker              'dependencies!': [
232*6777b538SAndroid Build Coastguard Worker                'data_assembly#target',
233*6777b538SAndroid Build Coastguard Worker              ],
234*6777b538SAndroid Build Coastguard Worker              # Remove any assembly data file.
235*6777b538SAndroid Build Coastguard Worker              'sources/': [['exclude', 'icudt[lb]_dat']],
236*6777b538SAndroid Build Coastguard Worker
237*6777b538SAndroid Build Coastguard Worker              # Make sure any binary depending on this gets the data file.
238*6777b538SAndroid Build Coastguard Worker              'conditions': [
239*6777b538SAndroid Build Coastguard Worker                ['OS != "ios"', {
240*6777b538SAndroid Build Coastguard Worker                  'dependencies': [
241*6777b538SAndroid Build Coastguard Worker                    'copy_icudt_dat#host',
242*6777b538SAndroid Build Coastguard Worker                  ],
243*6777b538SAndroid Build Coastguard Worker                } , { # else: OS=="ios"
244*6777b538SAndroid Build Coastguard Worker                  'link_settings': {
245*6777b538SAndroid Build Coastguard Worker                    'mac_bundle_resources': [
246*6777b538SAndroid Build Coastguard Worker                      'common/icudtl.dat',
247*6777b538SAndroid Build Coastguard Worker                    ],
248*6777b538SAndroid Build Coastguard Worker                  },
249*6777b538SAndroid Build Coastguard Worker                }], # OS!=ios
250*6777b538SAndroid Build Coastguard Worker              ], # conditions
251*6777b538SAndroid Build Coastguard Worker            }], # icu_use_data_file_flag
252*6777b538SAndroid Build Coastguard Worker          ], # conditions
253*6777b538SAndroid Build Coastguard Worker          'target_conditions': [
254*6777b538SAndroid Build Coastguard Worker            [ 'OS == "win"', {
255*6777b538SAndroid Build Coastguard Worker              'sources!': [
256*6777b538SAndroid Build Coastguard Worker                '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtl_dat.S',
257*6777b538SAndroid Build Coastguard Worker                '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtb_dat.S'
258*6777b538SAndroid Build Coastguard Worker              ],
259*6777b538SAndroid Build Coastguard Worker            }],
260*6777b538SAndroid Build Coastguard Worker          ], # target_conditions
261*6777b538SAndroid Build Coastguard Worker        },
262*6777b538SAndroid Build Coastguard Worker        {
263*6777b538SAndroid Build Coastguard Worker          'target_name': 'icui18n',
264*6777b538SAndroid Build Coastguard Worker          'type': '<(component)',
265*6777b538SAndroid Build Coastguard Worker          'sources': [
266*6777b538SAndroid Build Coastguard Worker            '<@(icui18n_sources)',
267*6777b538SAndroid Build Coastguard Worker          ],
268*6777b538SAndroid Build Coastguard Worker          'defines': [
269*6777b538SAndroid Build Coastguard Worker            'U_I18N_IMPLEMENTATION',
270*6777b538SAndroid Build Coastguard Worker          ],
271*6777b538SAndroid Build Coastguard Worker          'dependencies': [
272*6777b538SAndroid Build Coastguard Worker            'icuuc',
273*6777b538SAndroid Build Coastguard Worker          ],
274*6777b538SAndroid Build Coastguard Worker          'direct_dependent_settings': {
275*6777b538SAndroid Build Coastguard Worker            'include_dirs': [
276*6777b538SAndroid Build Coastguard Worker              'source/i18n',
277*6777b538SAndroid Build Coastguard Worker            ],
278*6777b538SAndroid Build Coastguard Worker          },
279*6777b538SAndroid Build Coastguard Worker          'variables': {
280*6777b538SAndroid Build Coastguard Worker            'clang_warning_flags': [
281*6777b538SAndroid Build Coastguard Worker              # ICU uses its own deprecated functions.
282*6777b538SAndroid Build Coastguard Worker              '-Wno-deprecated-declarations',
283*6777b538SAndroid Build Coastguard Worker              # ICU prefers `a && b || c` over `(a && b) || c`.
284*6777b538SAndroid Build Coastguard Worker              '-Wno-logical-op-parentheses',
285*6777b538SAndroid Build Coastguard Worker              # ICU has some `unsigned < 0` checks.
286*6777b538SAndroid Build Coastguard Worker              '-Wno-tautological-compare',
287*6777b538SAndroid Build Coastguard Worker              # ICU has some code with the pattern:
288*6777b538SAndroid Build Coastguard Worker              #   if (found = uprv_getWindowsTimeZoneInfo(...))
289*6777b538SAndroid Build Coastguard Worker              '-Wno-parentheses',
290*6777b538SAndroid Build Coastguard Worker            ],
291*6777b538SAndroid Build Coastguard Worker          },
292*6777b538SAndroid Build Coastguard Worker          # Since ICU wants to internally use its own deprecated APIs, don't
293*6777b538SAndroid Build Coastguard Worker          # complain about it.
294*6777b538SAndroid Build Coastguard Worker          'cflags': [
295*6777b538SAndroid Build Coastguard Worker            '-Wno-deprecated-declarations',
296*6777b538SAndroid Build Coastguard Worker          ],
297*6777b538SAndroid Build Coastguard Worker          'cflags_cc': [
298*6777b538SAndroid Build Coastguard Worker            '-frtti',
299*6777b538SAndroid Build Coastguard Worker          ],
300*6777b538SAndroid Build Coastguard Worker          'cflags_cc!': [
301*6777b538SAndroid Build Coastguard Worker            '-fno-rtti',
302*6777b538SAndroid Build Coastguard Worker          ],
303*6777b538SAndroid Build Coastguard Worker          'xcode_settings': {
304*6777b538SAndroid Build Coastguard Worker            'GCC_ENABLE_CPP_RTTI': 'YES',       # -frtti
305*6777b538SAndroid Build Coastguard Worker          },
306*6777b538SAndroid Build Coastguard Worker          'msvs_settings': {
307*6777b538SAndroid Build Coastguard Worker            'VCCLCompilerTool': {
308*6777b538SAndroid Build Coastguard Worker              'RuntimeTypeInfo': 'true',
309*6777b538SAndroid Build Coastguard Worker            },
310*6777b538SAndroid Build Coastguard Worker          },
311*6777b538SAndroid Build Coastguard Worker          'conditions': [
312*6777b538SAndroid Build Coastguard Worker            [ 'use_system_icu==1 and want_separate_host_toolset==1', {
313*6777b538SAndroid Build Coastguard Worker              'toolsets': ['host'],
314*6777b538SAndroid Build Coastguard Worker            }],
315*6777b538SAndroid Build Coastguard Worker            [ 'use_system_icu==0 and want_separate_host_toolset==1', {
316*6777b538SAndroid Build Coastguard Worker              'toolsets': ['host', 'target'],
317*6777b538SAndroid Build Coastguard Worker            }],
318*6777b538SAndroid Build Coastguard Worker            [ 'use_system_icu==0 and want_separate_host_toolset==0', {
319*6777b538SAndroid Build Coastguard Worker              'toolsets': ['target'],
320*6777b538SAndroid Build Coastguard Worker            }],
321*6777b538SAndroid Build Coastguard Worker            ['OS == "android" and clang==0', {
322*6777b538SAndroid Build Coastguard Worker                # Disable sincos() optimization to avoid a linker error since
323*6777b538SAndroid Build Coastguard Worker                # Android's math library doesn't have sincos().  Either
324*6777b538SAndroid Build Coastguard Worker                # -fno-builtin-sin or -fno-builtin-cos works.
325*6777b538SAndroid Build Coastguard Worker                'cflags': [
326*6777b538SAndroid Build Coastguard Worker                    '-fno-builtin-sin',
327*6777b538SAndroid Build Coastguard Worker                ],
328*6777b538SAndroid Build Coastguard Worker            }],
329*6777b538SAndroid Build Coastguard Worker            [ 'OS == "win" and clang==1', {
330*6777b538SAndroid Build Coastguard Worker              # Note: General clang warnings should go in the
331*6777b538SAndroid Build Coastguard Worker              # clang_warning_flags block above.
332*6777b538SAndroid Build Coastguard Worker              'msvs_settings': {
333*6777b538SAndroid Build Coastguard Worker                'VCCLCompilerTool': {
334*6777b538SAndroid Build Coastguard Worker                  'AdditionalOptions': [
335*6777b538SAndroid Build Coastguard Worker                    '-Wno-implicit-exception-spec-mismatch',
336*6777b538SAndroid Build Coastguard Worker                  ],
337*6777b538SAndroid Build Coastguard Worker                },
338*6777b538SAndroid Build Coastguard Worker              },
339*6777b538SAndroid Build Coastguard Worker            }],
340*6777b538SAndroid Build Coastguard Worker          ], # conditions
341*6777b538SAndroid Build Coastguard Worker        },
342*6777b538SAndroid Build Coastguard Worker        {
343*6777b538SAndroid Build Coastguard Worker          'target_name': 'icuuc',
344*6777b538SAndroid Build Coastguard Worker          'type': '<(component)',
345*6777b538SAndroid Build Coastguard Worker          'sources': [
346*6777b538SAndroid Build Coastguard Worker            '<@(icuuc_sources)',
347*6777b538SAndroid Build Coastguard Worker          ],
348*6777b538SAndroid Build Coastguard Worker          'defines': [
349*6777b538SAndroid Build Coastguard Worker            'U_COMMON_IMPLEMENTATION',
350*6777b538SAndroid Build Coastguard Worker          ],
351*6777b538SAndroid Build Coastguard Worker          'dependencies': [
352*6777b538SAndroid Build Coastguard Worker            'icudata',
353*6777b538SAndroid Build Coastguard Worker          ],
354*6777b538SAndroid Build Coastguard Worker          'direct_dependent_settings': {
355*6777b538SAndroid Build Coastguard Worker            'include_dirs': [
356*6777b538SAndroid Build Coastguard Worker              'source/common',
357*6777b538SAndroid Build Coastguard Worker            ],
358*6777b538SAndroid Build Coastguard Worker            'conditions': [
359*6777b538SAndroid Build Coastguard Worker              [ 'component=="static_library"', {
360*6777b538SAndroid Build Coastguard Worker                'defines': [
361*6777b538SAndroid Build Coastguard Worker                  'U_STATIC_IMPLEMENTATION',
362*6777b538SAndroid Build Coastguard Worker                ],
363*6777b538SAndroid Build Coastguard Worker              }],
364*6777b538SAndroid Build Coastguard Worker            ],
365*6777b538SAndroid Build Coastguard Worker          },
366*6777b538SAndroid Build Coastguard Worker          'variables': {
367*6777b538SAndroid Build Coastguard Worker            'clang_warning_flags': [
368*6777b538SAndroid Build Coastguard Worker              # ICU uses its own deprecated functions.
369*6777b538SAndroid Build Coastguard Worker              '-Wno-deprecated-declarations',
370*6777b538SAndroid Build Coastguard Worker              # ICU prefers `a && b || c` over `(a && b) || c`.
371*6777b538SAndroid Build Coastguard Worker              '-Wno-logical-op-parentheses',
372*6777b538SAndroid Build Coastguard Worker              # ICU has some `unsigned < 0` checks.
373*6777b538SAndroid Build Coastguard Worker              '-Wno-tautological-compare',
374*6777b538SAndroid Build Coastguard Worker              # uresdata.c has switch(RES_GET_TYPE(x)) code. The
375*6777b538SAndroid Build Coastguard Worker              # RES_GET_TYPE macro returns an UResType enum, but some switch
376*6777b538SAndroid Build Coastguard Worker              # statement contains case values that aren't part of that
377*6777b538SAndroid Build Coastguard Worker              # enum (e.g. URES_TABLE32 which is in UResInternalType). This
378*6777b538SAndroid Build Coastguard Worker              # is on purpose.
379*6777b538SAndroid Build Coastguard Worker              '-Wno-switch',
380*6777b538SAndroid Build Coastguard Worker              # ICU has some code with the pattern:
381*6777b538SAndroid Build Coastguard Worker              #   if (found = uprv_getWindowsTimeZoneInfo(...))
382*6777b538SAndroid Build Coastguard Worker              '-Wno-parentheses',
383*6777b538SAndroid Build Coastguard Worker              # ICU generally has no unused variables, but there are a few
384*6777b538SAndroid Build Coastguard Worker              # places where this warning triggers.
385*6777b538SAndroid Build Coastguard Worker              # See https://codereview.chromium.org/1222643002/ and
386*6777b538SAndroid Build Coastguard Worker              # http://www.icu-project.org/trac/ticket/11759.
387*6777b538SAndroid Build Coastguard Worker              '-Wno-unused-const-variable',
388*6777b538SAndroid Build Coastguard Worker              # ucnv2022.cpp contains three functions that are only used when
389*6777b538SAndroid Build Coastguard Worker              # certain preprocessor defines are set.
390*6777b538SAndroid Build Coastguard Worker              '-Wno-unused-function',
391*6777b538SAndroid Build Coastguard Worker            ],
392*6777b538SAndroid Build Coastguard Worker          },
393*6777b538SAndroid Build Coastguard Worker          'cflags': [
394*6777b538SAndroid Build Coastguard Worker            # Since ICU wants to internally use its own deprecated APIs,
395*6777b538SAndroid Build Coastguard Worker            # don't complain about it.
396*6777b538SAndroid Build Coastguard Worker            '-Wno-deprecated-declarations',
397*6777b538SAndroid Build Coastguard Worker            '-Wno-unused-function',
398*6777b538SAndroid Build Coastguard Worker          ],
399*6777b538SAndroid Build Coastguard Worker          'cflags_cc': [
400*6777b538SAndroid Build Coastguard Worker            '-frtti',
401*6777b538SAndroid Build Coastguard Worker          ],
402*6777b538SAndroid Build Coastguard Worker          'cflags_cc!': [
403*6777b538SAndroid Build Coastguard Worker            '-fno-rtti',
404*6777b538SAndroid Build Coastguard Worker          ],
405*6777b538SAndroid Build Coastguard Worker          'xcode_settings': {
406*6777b538SAndroid Build Coastguard Worker            'GCC_ENABLE_CPP_RTTI': 'YES',       # -frtti
407*6777b538SAndroid Build Coastguard Worker          },
408*6777b538SAndroid Build Coastguard Worker          'msvs_settings': {
409*6777b538SAndroid Build Coastguard Worker            'VCCLCompilerTool': {
410*6777b538SAndroid Build Coastguard Worker              'RuntimeTypeInfo': 'true',
411*6777b538SAndroid Build Coastguard Worker            },
412*6777b538SAndroid Build Coastguard Worker          },
413*6777b538SAndroid Build Coastguard Worker          'all_dependent_settings': {
414*6777b538SAndroid Build Coastguard Worker            'msvs_settings': {
415*6777b538SAndroid Build Coastguard Worker              'VCLinkerTool': {
416*6777b538SAndroid Build Coastguard Worker                'AdditionalDependencies': [
417*6777b538SAndroid Build Coastguard Worker                  'advapi32.lib',
418*6777b538SAndroid Build Coastguard Worker                ],
419*6777b538SAndroid Build Coastguard Worker              },
420*6777b538SAndroid Build Coastguard Worker            },
421*6777b538SAndroid Build Coastguard Worker          },
422*6777b538SAndroid Build Coastguard Worker          'conditions': [
423*6777b538SAndroid Build Coastguard Worker            [ 'use_system_icu==1 and want_separate_host_toolset==1', {
424*6777b538SAndroid Build Coastguard Worker              'toolsets': ['host'],
425*6777b538SAndroid Build Coastguard Worker            }],
426*6777b538SAndroid Build Coastguard Worker            [ 'use_system_icu==0 and want_separate_host_toolset==1', {
427*6777b538SAndroid Build Coastguard Worker              'toolsets': ['host', 'target'],
428*6777b538SAndroid Build Coastguard Worker            }],
429*6777b538SAndroid Build Coastguard Worker            [ 'use_system_icu==0 and want_separate_host_toolset==0', {
430*6777b538SAndroid Build Coastguard Worker              'toolsets': ['target'],
431*6777b538SAndroid Build Coastguard Worker            }],
432*6777b538SAndroid Build Coastguard Worker            [ 'OS == "win" or icu_use_data_file_flag==1', {
433*6777b538SAndroid Build Coastguard Worker              'sources': [
434*6777b538SAndroid Build Coastguard Worker                'source/stubdata/stubdata.cpp',
435*6777b538SAndroid Build Coastguard Worker              ],
436*6777b538SAndroid Build Coastguard Worker              'defines': [
437*6777b538SAndroid Build Coastguard Worker                'U_ICUDATAENTRY_IN_COMMON',
438*6777b538SAndroid Build Coastguard Worker              ],
439*6777b538SAndroid Build Coastguard Worker            }],
440*6777b538SAndroid Build Coastguard Worker            [ 'OS == "win" and clang==1', {
441*6777b538SAndroid Build Coastguard Worker              # Note: General clang warnings should go in the
442*6777b538SAndroid Build Coastguard Worker              # clang_warning_flags block above.
443*6777b538SAndroid Build Coastguard Worker              'msvs_settings': {
444*6777b538SAndroid Build Coastguard Worker                'VCCLCompilerTool': {
445*6777b538SAndroid Build Coastguard Worker                  'AdditionalOptions': [
446*6777b538SAndroid Build Coastguard Worker                    '-Wno-implicit-exception-spec-mismatch',
447*6777b538SAndroid Build Coastguard Worker                  ],
448*6777b538SAndroid Build Coastguard Worker                },
449*6777b538SAndroid Build Coastguard Worker              },
450*6777b538SAndroid Build Coastguard Worker            }],
451*6777b538SAndroid Build Coastguard Worker          ], # conditions
452*6777b538SAndroid Build Coastguard Worker        },
453*6777b538SAndroid Build Coastguard Worker      ], # targets
454*6777b538SAndroid Build Coastguard Worker    }],
455*6777b538SAndroid Build Coastguard Worker    ['use_system_icu==1', {
456*6777b538SAndroid Build Coastguard Worker      'targets': [
457*6777b538SAndroid Build Coastguard Worker        {
458*6777b538SAndroid Build Coastguard Worker          'target_name': 'system_icu',
459*6777b538SAndroid Build Coastguard Worker          'type': 'none',
460*6777b538SAndroid Build Coastguard Worker          'conditions': [
461*6777b538SAndroid Build Coastguard Worker            ['OS=="qnx"', {
462*6777b538SAndroid Build Coastguard Worker              'link_settings': {
463*6777b538SAndroid Build Coastguard Worker                'libraries': [
464*6777b538SAndroid Build Coastguard Worker                  '-licui18n',
465*6777b538SAndroid Build Coastguard Worker                  '-licuuc',
466*6777b538SAndroid Build Coastguard Worker                ],
467*6777b538SAndroid Build Coastguard Worker              },
468*6777b538SAndroid Build Coastguard Worker            }],
469*6777b538SAndroid Build Coastguard Worker            ['OS!="qnx"', {
470*6777b538SAndroid Build Coastguard Worker              'link_settings': {
471*6777b538SAndroid Build Coastguard Worker                'ldflags': [
472*6777b538SAndroid Build Coastguard Worker                  '<!@(icu-config --ldflags)',
473*6777b538SAndroid Build Coastguard Worker                ],
474*6777b538SAndroid Build Coastguard Worker                'libraries': [
475*6777b538SAndroid Build Coastguard Worker                  '<!@(icu-config --ldflags-libsonly)',
476*6777b538SAndroid Build Coastguard Worker                ],
477*6777b538SAndroid Build Coastguard Worker              },
478*6777b538SAndroid Build Coastguard Worker            }],
479*6777b538SAndroid Build Coastguard Worker          ],
480*6777b538SAndroid Build Coastguard Worker        },
481*6777b538SAndroid Build Coastguard Worker        {
482*6777b538SAndroid Build Coastguard Worker          'target_name': 'icudata',
483*6777b538SAndroid Build Coastguard Worker          'type': 'none',
484*6777b538SAndroid Build Coastguard Worker          'dependencies': ['system_icu'],
485*6777b538SAndroid Build Coastguard Worker          'export_dependent_settings': ['system_icu'],
486*6777b538SAndroid Build Coastguard Worker          'toolsets': ['target'],
487*6777b538SAndroid Build Coastguard Worker        },
488*6777b538SAndroid Build Coastguard Worker        {
489*6777b538SAndroid Build Coastguard Worker          'target_name': 'icui18n',
490*6777b538SAndroid Build Coastguard Worker          'type': 'none',
491*6777b538SAndroid Build Coastguard Worker          'dependencies': ['system_icu'],
492*6777b538SAndroid Build Coastguard Worker          'export_dependent_settings': ['system_icu'],
493*6777b538SAndroid Build Coastguard Worker          'variables': {
494*6777b538SAndroid Build Coastguard Worker            'headers_root_path': 'source/i18n',
495*6777b538SAndroid Build Coastguard Worker            'header_filenames': [
496*6777b538SAndroid Build Coastguard Worker              # This list can easily be updated using the command below:
497*6777b538SAndroid Build Coastguard Worker              # ls source/i18n/unicode/*h | sort | \
498*6777b538SAndroid Build Coastguard Worker              # sed "s/^.*i18n\/\(.*\)$/              '\1',/"
499*6777b538SAndroid Build Coastguard Worker	      # I18N_HDR_START
500*6777b538SAndroid Build Coastguard Worker              'unicode/alphaindex.h',
501*6777b538SAndroid Build Coastguard Worker              'unicode/basictz.h',
502*6777b538SAndroid Build Coastguard Worker              'unicode/calendar.h',
503*6777b538SAndroid Build Coastguard Worker              'unicode/choicfmt.h',
504*6777b538SAndroid Build Coastguard Worker              'unicode/coleitr.h',
505*6777b538SAndroid Build Coastguard Worker              'unicode/coll.h',
506*6777b538SAndroid Build Coastguard Worker              'unicode/compactdecimalformat.h',
507*6777b538SAndroid Build Coastguard Worker              'unicode/curramt.h',
508*6777b538SAndroid Build Coastguard Worker              'unicode/currpinf.h',
509*6777b538SAndroid Build Coastguard Worker              'unicode/currunit.h',
510*6777b538SAndroid Build Coastguard Worker              'unicode/datefmt.h',
511*6777b538SAndroid Build Coastguard Worker              'unicode/dcfmtsym.h',
512*6777b538SAndroid Build Coastguard Worker              'unicode/decimfmt.h',
513*6777b538SAndroid Build Coastguard Worker              'unicode/displayoptions.h',
514*6777b538SAndroid Build Coastguard Worker              'unicode/dtfmtsym.h',
515*6777b538SAndroid Build Coastguard Worker              'unicode/dtitvfmt.h',
516*6777b538SAndroid Build Coastguard Worker              'unicode/dtitvinf.h',
517*6777b538SAndroid Build Coastguard Worker              'unicode/dtptngen.h',
518*6777b538SAndroid Build Coastguard Worker              'unicode/dtrule.h',
519*6777b538SAndroid Build Coastguard Worker              'unicode/fieldpos.h',
520*6777b538SAndroid Build Coastguard Worker              'unicode/fmtable.h',
521*6777b538SAndroid Build Coastguard Worker              'unicode/format.h',
522*6777b538SAndroid Build Coastguard Worker              'unicode/formattednumber.h',
523*6777b538SAndroid Build Coastguard Worker              'unicode/formattedvalue.h',
524*6777b538SAndroid Build Coastguard Worker              'unicode/fpositer.h',
525*6777b538SAndroid Build Coastguard Worker              'unicode/gender.h',
526*6777b538SAndroid Build Coastguard Worker              'unicode/gregocal.h',
527*6777b538SAndroid Build Coastguard Worker              'unicode/listformatter.h',
528*6777b538SAndroid Build Coastguard Worker              'unicode/measfmt.h',
529*6777b538SAndroid Build Coastguard Worker              'unicode/measunit.h',
530*6777b538SAndroid Build Coastguard Worker              'unicode/measure.h',
531*6777b538SAndroid Build Coastguard Worker              'unicode/msgfmt.h',
532*6777b538SAndroid Build Coastguard Worker              'unicode/nounit.h',
533*6777b538SAndroid Build Coastguard Worker              'unicode/numberformatter.h',
534*6777b538SAndroid Build Coastguard Worker              'unicode/numberrangeformatter.h',
535*6777b538SAndroid Build Coastguard Worker              'unicode/numfmt.h',
536*6777b538SAndroid Build Coastguard Worker              'unicode/numsys.h',
537*6777b538SAndroid Build Coastguard Worker              'unicode/plurfmt.h',
538*6777b538SAndroid Build Coastguard Worker              'unicode/plurrule.h',
539*6777b538SAndroid Build Coastguard Worker              'unicode/rbnf.h',
540*6777b538SAndroid Build Coastguard Worker              'unicode/rbtz.h',
541*6777b538SAndroid Build Coastguard Worker              'unicode/regex.h',
542*6777b538SAndroid Build Coastguard Worker              'unicode/region.h',
543*6777b538SAndroid Build Coastguard Worker              'unicode/reldatefmt.h',
544*6777b538SAndroid Build Coastguard Worker              'unicode/scientificnumberformatter.h',
545*6777b538SAndroid Build Coastguard Worker              'unicode/search.h',
546*6777b538SAndroid Build Coastguard Worker              'unicode/selfmt.h',
547*6777b538SAndroid Build Coastguard Worker              'unicode/simplenumberformatter.h',
548*6777b538SAndroid Build Coastguard Worker              'unicode/simpletz.h',
549*6777b538SAndroid Build Coastguard Worker              'unicode/smpdtfmt.h',
550*6777b538SAndroid Build Coastguard Worker              'unicode/sortkey.h',
551*6777b538SAndroid Build Coastguard Worker              'unicode/stsearch.h',
552*6777b538SAndroid Build Coastguard Worker              'unicode/tblcoll.h',
553*6777b538SAndroid Build Coastguard Worker              'unicode/timezone.h',
554*6777b538SAndroid Build Coastguard Worker              'unicode/tmunit.h',
555*6777b538SAndroid Build Coastguard Worker              'unicode/tmutamt.h',
556*6777b538SAndroid Build Coastguard Worker              'unicode/tmutfmt.h',
557*6777b538SAndroid Build Coastguard Worker              'unicode/translit.h',
558*6777b538SAndroid Build Coastguard Worker              'unicode/tzfmt.h',
559*6777b538SAndroid Build Coastguard Worker              'unicode/tznames.h',
560*6777b538SAndroid Build Coastguard Worker              'unicode/tzrule.h',
561*6777b538SAndroid Build Coastguard Worker              'unicode/tztrans.h',
562*6777b538SAndroid Build Coastguard Worker              'unicode/ucal.h',
563*6777b538SAndroid Build Coastguard Worker              'unicode/ucoleitr.h',
564*6777b538SAndroid Build Coastguard Worker              'unicode/ucol.h',
565*6777b538SAndroid Build Coastguard Worker              'unicode/ucsdet.h',
566*6777b538SAndroid Build Coastguard Worker              'unicode/udateintervalformat.h',
567*6777b538SAndroid Build Coastguard Worker              'unicode/udat.h',
568*6777b538SAndroid Build Coastguard Worker              'unicode/udatpg.h',
569*6777b538SAndroid Build Coastguard Worker              'unicode/udisplayoptions.h',
570*6777b538SAndroid Build Coastguard Worker              'unicode/ufieldpositer.h',
571*6777b538SAndroid Build Coastguard Worker              'unicode/uformattable.h',
572*6777b538SAndroid Build Coastguard Worker              'unicode/uformattednumber.h',
573*6777b538SAndroid Build Coastguard Worker              'unicode/uformattedvalue.h',
574*6777b538SAndroid Build Coastguard Worker              'unicode/ugender.h',
575*6777b538SAndroid Build Coastguard Worker              'unicode/ulistformatter.h',
576*6777b538SAndroid Build Coastguard Worker              'unicode/ulocdata.h',
577*6777b538SAndroid Build Coastguard Worker              'unicode/umsg.h',
578*6777b538SAndroid Build Coastguard Worker              'unicode/unirepl.h',
579*6777b538SAndroid Build Coastguard Worker              'unicode/unumberformatter.h',
580*6777b538SAndroid Build Coastguard Worker              'unicode/unumberoptions.h',
581*6777b538SAndroid Build Coastguard Worker              'unicode/unumberrangeformatter.h',
582*6777b538SAndroid Build Coastguard Worker              'unicode/unum.h',
583*6777b538SAndroid Build Coastguard Worker              'unicode/unumsys.h',
584*6777b538SAndroid Build Coastguard Worker              'unicode/upluralrules.h',
585*6777b538SAndroid Build Coastguard Worker              'unicode/uregex.h',
586*6777b538SAndroid Build Coastguard Worker              'unicode/uregion.h',
587*6777b538SAndroid Build Coastguard Worker              'unicode/ureldatefmt.h',
588*6777b538SAndroid Build Coastguard Worker              'unicode/usearch.h',
589*6777b538SAndroid Build Coastguard Worker              'unicode/usimplenumberformatter.h',
590*6777b538SAndroid Build Coastguard Worker              'unicode/uspoof.h',
591*6777b538SAndroid Build Coastguard Worker              'unicode/utmscale.h',
592*6777b538SAndroid Build Coastguard Worker              'unicode/utrans.h',
593*6777b538SAndroid Build Coastguard Worker              'unicode/vtzone.h',
594*6777b538SAndroid Build Coastguard Worker	      # I18N_HDR_END
595*6777b538SAndroid Build Coastguard Worker            ],
596*6777b538SAndroid Build Coastguard Worker          },
597*6777b538SAndroid Build Coastguard Worker          'includes': [
598*6777b538SAndroid Build Coastguard Worker            'shim_headers.gypi',
599*6777b538SAndroid Build Coastguard Worker          ],
600*6777b538SAndroid Build Coastguard Worker          'toolsets': ['target'],
601*6777b538SAndroid Build Coastguard Worker        },
602*6777b538SAndroid Build Coastguard Worker        {
603*6777b538SAndroid Build Coastguard Worker          'target_name': 'icuuc',
604*6777b538SAndroid Build Coastguard Worker          'type': 'none',
605*6777b538SAndroid Build Coastguard Worker          'dependencies': ['system_icu'],
606*6777b538SAndroid Build Coastguard Worker          'export_dependent_settings': ['system_icu'],
607*6777b538SAndroid Build Coastguard Worker          'variables': {
608*6777b538SAndroid Build Coastguard Worker            'headers_root_path': 'source/common',
609*6777b538SAndroid Build Coastguard Worker            'header_filenames': [
610*6777b538SAndroid Build Coastguard Worker              # This list can easily be updated using the command below:
611*6777b538SAndroid Build Coastguard Worker              # ls source/common/unicode/*h | sort | \
612*6777b538SAndroid Build Coastguard Worker              # sed "s/^.*common\/\(.*\)$/              '\1',/"
613*6777b538SAndroid Build Coastguard Worker	      # COMMON_HDR_START
614*6777b538SAndroid Build Coastguard Worker              'unicode/appendable.h',
615*6777b538SAndroid Build Coastguard Worker              'unicode/brkiter.h',
616*6777b538SAndroid Build Coastguard Worker              'unicode/bytestream.h',
617*6777b538SAndroid Build Coastguard Worker              'unicode/bytestriebuilder.h',
618*6777b538SAndroid Build Coastguard Worker              'unicode/bytestrie.h',
619*6777b538SAndroid Build Coastguard Worker              'unicode/caniter.h',
620*6777b538SAndroid Build Coastguard Worker              'unicode/casemap.h',
621*6777b538SAndroid Build Coastguard Worker              'unicode/char16ptr.h',
622*6777b538SAndroid Build Coastguard Worker              'unicode/chariter.h',
623*6777b538SAndroid Build Coastguard Worker              'unicode/dbbi.h',
624*6777b538SAndroid Build Coastguard Worker              'unicode/docmain.h',
625*6777b538SAndroid Build Coastguard Worker              'unicode/dtintrv.h',
626*6777b538SAndroid Build Coastguard Worker              'unicode/edits.h',
627*6777b538SAndroid Build Coastguard Worker              'unicode/enumset.h',
628*6777b538SAndroid Build Coastguard Worker              'unicode/errorcode.h',
629*6777b538SAndroid Build Coastguard Worker              'unicode/filteredbrk.h',
630*6777b538SAndroid Build Coastguard Worker              'unicode/icudataver.h',
631*6777b538SAndroid Build Coastguard Worker              'unicode/icuplug.h',
632*6777b538SAndroid Build Coastguard Worker              'unicode/idna.h',
633*6777b538SAndroid Build Coastguard Worker              'unicode/localebuilder.h',
634*6777b538SAndroid Build Coastguard Worker              'unicode/localematcher.h',
635*6777b538SAndroid Build Coastguard Worker              'unicode/localpointer.h',
636*6777b538SAndroid Build Coastguard Worker              'unicode/locdspnm.h',
637*6777b538SAndroid Build Coastguard Worker              'unicode/locid.h',
638*6777b538SAndroid Build Coastguard Worker              'unicode/messagepattern.h',
639*6777b538SAndroid Build Coastguard Worker              'unicode/normalizer2.h',
640*6777b538SAndroid Build Coastguard Worker              'unicode/normlzr.h',
641*6777b538SAndroid Build Coastguard Worker              'unicode/parseerr.h',
642*6777b538SAndroid Build Coastguard Worker              'unicode/parsepos.h',
643*6777b538SAndroid Build Coastguard Worker              'unicode/platform.h',
644*6777b538SAndroid Build Coastguard Worker              'unicode/ptypes.h',
645*6777b538SAndroid Build Coastguard Worker              'unicode/putil.h',
646*6777b538SAndroid Build Coastguard Worker              'unicode/rbbi.h',
647*6777b538SAndroid Build Coastguard Worker              'unicode/rep.h',
648*6777b538SAndroid Build Coastguard Worker              'unicode/resbund.h',
649*6777b538SAndroid Build Coastguard Worker              'unicode/schriter.h',
650*6777b538SAndroid Build Coastguard Worker              'unicode/simpleformatter.h',
651*6777b538SAndroid Build Coastguard Worker              'unicode/std_string.h',
652*6777b538SAndroid Build Coastguard Worker              'unicode/strenum.h',
653*6777b538SAndroid Build Coastguard Worker              'unicode/stringoptions.h',
654*6777b538SAndroid Build Coastguard Worker              'unicode/stringpiece.h',
655*6777b538SAndroid Build Coastguard Worker              'unicode/stringtriebuilder.h',
656*6777b538SAndroid Build Coastguard Worker              'unicode/symtable.h',
657*6777b538SAndroid Build Coastguard Worker              'unicode/ubidi.h',
658*6777b538SAndroid Build Coastguard Worker              'unicode/ubiditransform.h',
659*6777b538SAndroid Build Coastguard Worker              'unicode/ubrk.h',
660*6777b538SAndroid Build Coastguard Worker              'unicode/ucasemap.h',
661*6777b538SAndroid Build Coastguard Worker              'unicode/ucat.h',
662*6777b538SAndroid Build Coastguard Worker              'unicode/uchar.h',
663*6777b538SAndroid Build Coastguard Worker              'unicode/ucharstriebuilder.h',
664*6777b538SAndroid Build Coastguard Worker              'unicode/ucharstrie.h',
665*6777b538SAndroid Build Coastguard Worker              'unicode/uchriter.h',
666*6777b538SAndroid Build Coastguard Worker              'unicode/uclean.h',
667*6777b538SAndroid Build Coastguard Worker              'unicode/ucnv_cb.h',
668*6777b538SAndroid Build Coastguard Worker              'unicode/ucnv_err.h',
669*6777b538SAndroid Build Coastguard Worker              'unicode/ucnv.h',
670*6777b538SAndroid Build Coastguard Worker              'unicode/ucnvsel.h',
671*6777b538SAndroid Build Coastguard Worker              'unicode/uconfig.h',
672*6777b538SAndroid Build Coastguard Worker              'unicode/ucpmap.h',
673*6777b538SAndroid Build Coastguard Worker              'unicode/ucptrie.h',
674*6777b538SAndroid Build Coastguard Worker              'unicode/ucurr.h',
675*6777b538SAndroid Build Coastguard Worker              'unicode/udata.h',
676*6777b538SAndroid Build Coastguard Worker              'unicode/udisplaycontext.h',
677*6777b538SAndroid Build Coastguard Worker              'unicode/uenum.h',
678*6777b538SAndroid Build Coastguard Worker              'unicode/uidna.h',
679*6777b538SAndroid Build Coastguard Worker              'unicode/uiter.h',
680*6777b538SAndroid Build Coastguard Worker              'unicode/uldnames.h',
681*6777b538SAndroid Build Coastguard Worker              'unicode/ulocale.h',
682*6777b538SAndroid Build Coastguard Worker              'unicode/ulocbuilder.h',
683*6777b538SAndroid Build Coastguard Worker              'unicode/uloc.h',
684*6777b538SAndroid Build Coastguard Worker              'unicode/umachine.h',
685*6777b538SAndroid Build Coastguard Worker              'unicode/umisc.h',
686*6777b538SAndroid Build Coastguard Worker              'unicode/umutablecptrie.h',
687*6777b538SAndroid Build Coastguard Worker              'unicode/unifilt.h',
688*6777b538SAndroid Build Coastguard Worker              'unicode/unifunct.h',
689*6777b538SAndroid Build Coastguard Worker              'unicode/unimatch.h',
690*6777b538SAndroid Build Coastguard Worker              'unicode/uniset.h',
691*6777b538SAndroid Build Coastguard Worker              'unicode/unistr.h',
692*6777b538SAndroid Build Coastguard Worker              'unicode/unorm2.h',
693*6777b538SAndroid Build Coastguard Worker              'unicode/unorm.h',
694*6777b538SAndroid Build Coastguard Worker              'unicode/uobject.h',
695*6777b538SAndroid Build Coastguard Worker              'unicode/urename.h',
696*6777b538SAndroid Build Coastguard Worker              'unicode/urep.h',
697*6777b538SAndroid Build Coastguard Worker              'unicode/ures.h',
698*6777b538SAndroid Build Coastguard Worker              'unicode/uscript.h',
699*6777b538SAndroid Build Coastguard Worker              'unicode/uset.h',
700*6777b538SAndroid Build Coastguard Worker              'unicode/usetiter.h',
701*6777b538SAndroid Build Coastguard Worker              'unicode/ushape.h',
702*6777b538SAndroid Build Coastguard Worker              'unicode/usprep.h',
703*6777b538SAndroid Build Coastguard Worker              'unicode/ustring.h',
704*6777b538SAndroid Build Coastguard Worker              'unicode/ustringtrie.h',
705*6777b538SAndroid Build Coastguard Worker              'unicode/utext.h',
706*6777b538SAndroid Build Coastguard Worker              'unicode/utf16.h',
707*6777b538SAndroid Build Coastguard Worker              'unicode/utf32.h',
708*6777b538SAndroid Build Coastguard Worker              'unicode/utf8.h',
709*6777b538SAndroid Build Coastguard Worker              'unicode/utf.h',
710*6777b538SAndroid Build Coastguard Worker              'unicode/utf_old.h',
711*6777b538SAndroid Build Coastguard Worker              'unicode/utrace.h',
712*6777b538SAndroid Build Coastguard Worker              'unicode/utypes.h',
713*6777b538SAndroid Build Coastguard Worker              'unicode/uvernum.h',
714*6777b538SAndroid Build Coastguard Worker              'unicode/uversion.h',
715*6777b538SAndroid Build Coastguard Worker	      # COMMON_HDR_END
716*6777b538SAndroid Build Coastguard Worker            ],
717*6777b538SAndroid Build Coastguard Worker          },
718*6777b538SAndroid Build Coastguard Worker          'includes': [
719*6777b538SAndroid Build Coastguard Worker            'shim_headers.gypi',
720*6777b538SAndroid Build Coastguard Worker          ],
721*6777b538SAndroid Build Coastguard Worker          'toolsets': ['target'],
722*6777b538SAndroid Build Coastguard Worker        },
723*6777b538SAndroid Build Coastguard Worker      ], # targets
724*6777b538SAndroid Build Coastguard Worker    }],
725*6777b538SAndroid Build Coastguard Worker  ], # conditions
726*6777b538SAndroid Build Coastguard Worker}
727