1# This file is generated; do not edit.
2
3import os
4
5Import("env")
6
7env = env.Clone(COMPONENT_NAME='icu',
8                TARGET_NAME='icudata')
9
10configurations = {
11    'Debug' : {
12        'Append' : dict(
13            CCFLAGS = [
14                '-pthread',
15                '-fno-exceptions',
16                '-fno-asynchronous-unwind-tables',
17                '-fvisibility=hidden',
18                '-D_FILE_OFFSET_BITS=64',
19                '-O0',
20                '-g'
21            ],
22            CPPDEFINES = [
23                'U_STATIC_IMPLEMENTATION',
24                'CHROMIUM_BUILD',
25                '_DEBUG'
26            ],
27            CPPPATH = [
28                env.Dir('$SRC_DIR/third_party/icu/public/common'),
29                env.Dir('$SRC_DIR/third_party/icu/public/i18n'),
30                env.Dir('$SRC_DIR/third_party/icu/source/common'),
31                env.Dir('$SRC_DIR/third_party/icu/source/i18n')
32            ],
33            CXXFLAGS = [
34                '-fno-rtti',
35                '-fno-threadsafe-statics',
36                '-fvisibility-inlines-hidden'
37            ],
38            LINKFLAGS = [
39                '-pthread',
40                '-rdynamic'
41            ],
42        ),
43        'FilterOut' : dict(
44        ),
45        'Replace' : dict(
46             FLOCK_LDMODULE = ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
47             FLOCK_LINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
48             FLOCK_SHLINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
49             IMPLICIT_COMMAND_DEPENDENCIES = '0',
50             LDMODULECOM = [['$FLOCK_LDMODULE',
51  '-o',
52  '$TARGET',
53  '$_LIBDIRFLAGS',
54  '$LDMODULEFLAGS',
55  '$SOURCES',
56  '-Wl,--start-group',
57  '$_LIBFLAGS',
58  '-Wl,--end-group']],
59             LIBPATH = ['$LIB_DIR'],
60             LINKCOM = [['$FLOCK_LINK',
61  '-o',
62  '$TARGET',
63  '$_LIBDIRFLAGS',
64  '$LINKFLAGS',
65  '$SOURCES',
66  '-Wl,--start-group',
67  '$_LIBFLAGS',
68  '-Wl,--end-group']],
69             SHLINKCOM = [['$FLOCK_SHLINK',
70  '-o',
71  '$TARGET',
72  '$_LIBDIRFLAGS',
73  '$SHLINKFLAGS',
74  '$SOURCES',
75  '-Wl,--start-group',
76  '$_LIBFLAGS',
77  '-Wl,--end-group']],
78        ),
79        'ImportExternal' : [
80             'AS',
81             'CC',
82             'CXX',
83             'LINK',
84        ],
85        'PropagateExternal' : [
86             'AS',
87             'CC',
88             'CCACHE_DIR',
89             'CXX',
90             'DISTCC_DIR',
91             'DISTCC_HOSTS',
92             'HOME',
93             'INCLUDE_SERVER_ARGS',
94             'INCLUDE_SERVER_PORT',
95             'LINK',
96             'CHROME_BUILD_TYPE',
97             'CHROMIUM_BUILD',
98             'OFFICIAL_BUILD',
99        ],
100    },
101    'Release' : {
102        'Append' : dict(
103            CCFLAGS = [
104                '-pthread',
105                '-fno-exceptions',
106                '-fno-asynchronous-unwind-tables',
107                '-fvisibility=hidden',
108                '-D_FILE_OFFSET_BITS=64',
109                '-O2',
110                '-fno-ident',
111                '-fdata-sections',
112                '-ffunction-sections'
113            ],
114            CPPDEFINES = [
115                'U_STATIC_IMPLEMENTATION',
116                'CHROMIUM_BUILD',
117                'NDEBUG',
118                'NVALGRIND'
119            ],
120            CPPPATH = [
121                env.Dir('$SRC_DIR/third_party/icu/public/common'),
122                env.Dir('$SRC_DIR/third_party/icu/public/i18n'),
123                env.Dir('$SRC_DIR/third_party/icu/source/common'),
124                env.Dir('$SRC_DIR/third_party/icu/source/i18n')
125            ],
126            CXXFLAGS = [
127                '-fno-rtti',
128                '-fno-threadsafe-statics',
129                '-fvisibility-inlines-hidden'
130            ],
131            LINKFLAGS = [
132                '-pthread',
133                '-Wl,--gc-sections'
134            ],
135        ),
136        'FilterOut' : dict(
137        ),
138        'Replace' : dict(
139             FLOCK_LDMODULE = ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
140             FLOCK_LINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
141             FLOCK_SHLINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
142             IMPLICIT_COMMAND_DEPENDENCIES = '0',
143             LDMODULECOM = [['$FLOCK_LDMODULE',
144  '-o',
145  '$TARGET',
146  '$_LIBDIRFLAGS',
147  '$LDMODULEFLAGS',
148  '$SOURCES',
149  '-Wl,--start-group',
150  '$_LIBFLAGS',
151  '-Wl,--end-group']],
152             LIBPATH = ['$LIB_DIR'],
153             LINKCOM = [['$FLOCK_LINK',
154  '-o',
155  '$TARGET',
156  '$_LIBDIRFLAGS',
157  '$LINKFLAGS',
158  '$SOURCES',
159  '-Wl,--start-group',
160  '$_LIBFLAGS',
161  '-Wl,--end-group']],
162             SHLINKCOM = [['$FLOCK_SHLINK',
163  '-o',
164  '$TARGET',
165  '$_LIBDIRFLAGS',
166  '$SHLINKFLAGS',
167  '$SOURCES',
168  '-Wl,--start-group',
169  '$_LIBFLAGS',
170  '-Wl,--end-group']],
171        ),
172        'ImportExternal' : [
173             'AS',
174             'CC',
175             'CXX',
176             'LINK',
177        ],
178        'PropagateExternal' : [
179             'AS',
180             'CC',
181             'CCACHE_DIR',
182             'CXX',
183             'DISTCC_DIR',
184             'DISTCC_HOSTS',
185             'HOME',
186             'INCLUDE_SERVER_ARGS',
187             'INCLUDE_SERVER_PORT',
188             'LINK',
189             'CHROME_BUILD_TYPE',
190             'CHROMIUM_BUILD',
191             'OFFICIAL_BUILD',
192        ],
193    },
194}
195
196config = configurations[env['CONFIG_NAME']]
197env.Append(**config['Append'])
198env.FilterOut(**config['FilterOut'])
199env.Replace(**config['Replace'])
200
201# Scons forces -fPIC for SHCCFLAGS on some platforms.
202# Disable that so we can control it from cflags in gyp.
203# Note that Scons itself is inconsistent with its -fPIC
204# setting. SHCCFLAGS forces -fPIC, and SHCFLAGS does not.
205# This will make SHCCFLAGS consistent with SHCFLAGS.
206env['SHCCFLAGS'] = ['$CCFLAGS']
207
208for _var in config['ImportExternal']:
209  if _var in ARGUMENTS:
210    env[_var] = ARGUMENTS[_var]
211  elif _var in os.environ:
212    env[_var] = os.environ[_var]
213for _var in config['PropagateExternal']:
214  if _var in ARGUMENTS:
215    env[_var] = ARGUMENTS[_var]
216  elif _var in os.environ:
217    env['ENV'][_var] = os.environ[_var]
218
219env['ENV']['LD_LIBRARY_PATH'] = env.subst('$LIB_DIR')
220
221if ARGUMENTS.get('COVERAGE') not in (None, '0'):
222  env.AppendUnique(
223            CCFLAGS = [
224                '-fprofile-arcs',
225                '-ftest-coverage'
226            ],
227            LINKFLAGS = [
228                '-fprofile-arcs'
229            ],
230  )
231
232if ARGUMENTS.get('PROFILE') not in (None, '0'):
233  env.AppendUnique(
234            CCFLAGS = [
235                '-pg',
236                '-g'
237            ],
238            LINKFLAGS = [
239                '-pg'
240            ],
241  )
242
243if ARGUMENTS.get('SYMBOLS') not in (None, '0'):
244  env.AppendUnique(
245            CCFLAGS = [
246                '-g'
247            ],
248  )
249
250input_files = [
251    'linux/icudt42l_dat.s',
252]
253
254target_files = []
255prerequisites = []
256
257_result = []
258for infile in input_files:
259  if env.compilable(infile):
260    if (type(infile) == type('')
261        and (infile.startswith('$SRC_DIR/third_party/icu/')
262             or not os.path.isabs(env.subst(infile)))):
263      # Force files below the build directory by replacing all '..'
264      # elements in the path with '__':
265      base, ext = os.path.splitext(os.path.normpath(infile))
266      base = [d == '..' and '__' or d for d in base.split('/')]
267      base = os.path.join(*base)
268      object = '${OBJ_DIR}/${COMPONENT_NAME}/${TARGET_NAME}/' + base
269      if not infile.startswith('$SRC_DIR/third_party/icu/'):
270        infile = '$SRC_DIR/third_party/icu/' + infile
271      infile = env.StaticObject(object, infile)[0]
272    else:
273      infile = env.StaticObject(infile)[0]
274  _result.append(infile)
275input_files = _result
276
277_outputs = env.GypStaticLibrary('icudata', input_files)
278target_files.extend(_outputs)
279
280gyp_target = env.Alias('icudata', target_files)
281env.Requires(gyp_target, prerequisites)
282Return("gyp_target")
283