1# This file is generated; do not edit.
2
3import os
4
5Import("env")
6
7env = env.Clone(COMPONENT_NAME='base',
8                TARGET_NAME='base_unittests')
9
10configurations = {
11    'Debug' : {
12        'Append' : dict(
13            CCFLAGS = [
14                '-Werror',
15                '-pthread',
16                '-fno-exceptions',
17                '-fno-asynchronous-unwind-tables',
18                '-fvisibility=hidden',
19                '-Wall',
20                '-D_FILE_OFFSET_BITS=64',
21                '-DPNG_NO_MMX_CODE',
22                '-pthread',
23                '-I/usr/include/gtk-2.0',
24                '-I/usr/lib/gtk-2.0/include',
25                '-I/usr/include/atk-1.0',
26                '-I/usr/include/cairo',
27                '-I/usr/include/pango-1.0',
28                '-I/usr/include/glib-2.0',
29                '-I/usr/lib/glib-2.0/include',
30                '-I/usr/include/freetype2',
31                '-I/usr/include/libpng12',
32                '-I/usr/include/pixman-1',
33                '-I/usr/include/nss',
34                '-I/usr/include/nspr',
35                '-O0',
36                '-g'
37            ],
38            CPPDEFINES = [
39                '__STDC_FORMAT_MACROS',
40                'CHROMIUM_BUILD',
41                'UNIT_TEST',
42                'GTEST_HAS_RTTI=0',
43                '_DEBUG'
44            ],
45            CPPPATH = [
46                env.Dir('$SRC_DIR/base/../third_party/icu/public/common'),
47                env.Dir('$SRC_DIR/base/..'),
48                env.Dir('$SRC_DIR/base/../testing/gmock/include'),
49                env.Dir('$SRC_DIR/base/../testing/gtest/include')
50            ],
51            CXXFLAGS = [
52                '-fno-rtti',
53                '-fno-threadsafe-statics',
54                '-fvisibility-inlines-hidden'
55            ],
56            LINKFLAGS = [
57                '-pthread',
58                '-rdynamic'
59            ],
60            LIBS = [
61                '-lrt',
62                '-lgtk-x11-2.0',
63                '-lgdk-x11-2.0',
64                '-latk-1.0',
65                '-lgdk_pixbuf-2.0',
66                '-lm',
67                '-lpangocairo-1.0',
68                '-lpango-1.0',
69                '-lcairo',
70                '-lgobject-2.0',
71                '-lgmodule-2.0',
72                '-ldl',
73                '-lgthread-2.0',
74                '-lrt',
75                '-lglib-2.0',
76                '-lnss3',
77                '-lnssutil3',
78                '-lsmime3',
79                '-lssl3',
80                '-lplds4',
81                '-lplc4',
82                '-lnspr4',
83                '-lpthread',
84                '-ldl',
85                '-lrt',
86                'base',
87                'base_i18n',
88                'gmock',
89                'gtest',
90                'event',
91                'icui18n',
92                'icuuc',
93                'icudata'
94            ],
95        ),
96        'FilterOut' : dict(
97        ),
98        'Replace' : dict(
99             FLOCK_LDMODULE = ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
100             FLOCK_LINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
101             FLOCK_SHLINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
102             IMPLICIT_COMMAND_DEPENDENCIES = '0',
103             LDMODULECOM = [['$FLOCK_LDMODULE',
104  '-o',
105  '$TARGET',
106  '$_LIBDIRFLAGS',
107  '$LDMODULEFLAGS',
108  '$SOURCES',
109  '-Wl,--start-group',
110  '$_LIBFLAGS',
111  '-Wl,--end-group']],
112             LIBPATH = ['$LIB_DIR'],
113             LINKCOM = [['$FLOCK_LINK',
114  '-o',
115  '$TARGET',
116  '$_LIBDIRFLAGS',
117  '$LINKFLAGS',
118  '$SOURCES',
119  '-Wl,--start-group',
120  '$_LIBFLAGS',
121  '-Wl,--end-group']],
122             SHLINKCOM = [['$FLOCK_SHLINK',
123  '-o',
124  '$TARGET',
125  '$_LIBDIRFLAGS',
126  '$SHLINKFLAGS',
127  '$SOURCES',
128  '-Wl,--start-group',
129  '$_LIBFLAGS',
130  '-Wl,--end-group']],
131        ),
132        'ImportExternal' : [
133             'AS',
134             'CC',
135             'CXX',
136             'LINK',
137        ],
138        'PropagateExternal' : [
139             'AS',
140             'CC',
141             'CCACHE_DIR',
142             'CXX',
143             'DISTCC_DIR',
144             'DISTCC_HOSTS',
145             'HOME',
146             'INCLUDE_SERVER_ARGS',
147             'INCLUDE_SERVER_PORT',
148             'LINK',
149             'CHROME_BUILD_TYPE',
150             'CHROMIUM_BUILD',
151             'OFFICIAL_BUILD',
152        ],
153    },
154    'Release' : {
155        'Append' : dict(
156            CCFLAGS = [
157                '-Werror',
158                '-pthread',
159                '-fno-exceptions',
160                '-fno-asynchronous-unwind-tables',
161                '-fvisibility=hidden',
162                '-Wall',
163                '-D_FILE_OFFSET_BITS=64',
164                '-DPNG_NO_MMX_CODE',
165                '-pthread',
166                '-I/usr/include/gtk-2.0',
167                '-I/usr/lib/gtk-2.0/include',
168                '-I/usr/include/atk-1.0',
169                '-I/usr/include/cairo',
170                '-I/usr/include/pango-1.0',
171                '-I/usr/include/glib-2.0',
172                '-I/usr/lib/glib-2.0/include',
173                '-I/usr/include/freetype2',
174                '-I/usr/include/libpng12',
175                '-I/usr/include/pixman-1',
176                '-I/usr/include/nss',
177                '-I/usr/include/nspr',
178                '-O2',
179                '-fno-ident',
180                '-fdata-sections',
181                '-ffunction-sections'
182            ],
183            CPPDEFINES = [
184                '__STDC_FORMAT_MACROS',
185                'CHROMIUM_BUILD',
186                'UNIT_TEST',
187                'GTEST_HAS_RTTI=0',
188                'NDEBUG',
189                'NVALGRIND'
190            ],
191            CPPPATH = [
192                env.Dir('$SRC_DIR/base/../third_party/icu/public/common'),
193                env.Dir('$SRC_DIR/base/..'),
194                env.Dir('$SRC_DIR/base/../testing/gmock/include'),
195                env.Dir('$SRC_DIR/base/../testing/gtest/include')
196            ],
197            CXXFLAGS = [
198                '-fno-rtti',
199                '-fno-threadsafe-statics',
200                '-fvisibility-inlines-hidden'
201            ],
202            LINKFLAGS = [
203                '-pthread',
204                '-Wl,--gc-sections'
205            ],
206            LIBS = [
207                '-lrt',
208                '-lgtk-x11-2.0',
209                '-lgdk-x11-2.0',
210                '-latk-1.0',
211                '-lgdk_pixbuf-2.0',
212                '-lm',
213                '-lpangocairo-1.0',
214                '-lpango-1.0',
215                '-lcairo',
216                '-lgobject-2.0',
217                '-lgmodule-2.0',
218                '-ldl',
219                '-lgthread-2.0',
220                '-lrt',
221                '-lglib-2.0',
222                '-lnss3',
223                '-lnssutil3',
224                '-lsmime3',
225                '-lssl3',
226                '-lplds4',
227                '-lplc4',
228                '-lnspr4',
229                '-lpthread',
230                '-ldl',
231                '-lrt',
232                'base',
233                'base_i18n',
234                'gmock',
235                'gtest',
236                'event',
237                'icui18n',
238                'icuuc',
239                'icudata'
240            ],
241        ),
242        'FilterOut' : dict(
243        ),
244        'Replace' : dict(
245             FLOCK_LDMODULE = ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'],
246             FLOCK_LINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'],
247             FLOCK_SHLINK = ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'],
248             IMPLICIT_COMMAND_DEPENDENCIES = '0',
249             LDMODULECOM = [['$FLOCK_LDMODULE',
250  '-o',
251  '$TARGET',
252  '$_LIBDIRFLAGS',
253  '$LDMODULEFLAGS',
254  '$SOURCES',
255  '-Wl,--start-group',
256  '$_LIBFLAGS',
257  '-Wl,--end-group']],
258             LIBPATH = ['$LIB_DIR'],
259             LINKCOM = [['$FLOCK_LINK',
260  '-o',
261  '$TARGET',
262  '$_LIBDIRFLAGS',
263  '$LINKFLAGS',
264  '$SOURCES',
265  '-Wl,--start-group',
266  '$_LIBFLAGS',
267  '-Wl,--end-group']],
268             SHLINKCOM = [['$FLOCK_SHLINK',
269  '-o',
270  '$TARGET',
271  '$_LIBDIRFLAGS',
272  '$SHLINKFLAGS',
273  '$SOURCES',
274  '-Wl,--start-group',
275  '$_LIBFLAGS',
276  '-Wl,--end-group']],
277        ),
278        'ImportExternal' : [
279             'AS',
280             'CC',
281             'CXX',
282             'LINK',
283        ],
284        'PropagateExternal' : [
285             'AS',
286             'CC',
287             'CCACHE_DIR',
288             'CXX',
289             'DISTCC_DIR',
290             'DISTCC_HOSTS',
291             'HOME',
292             'INCLUDE_SERVER_ARGS',
293             'INCLUDE_SERVER_PORT',
294             'LINK',
295             'CHROME_BUILD_TYPE',
296             'CHROMIUM_BUILD',
297             'OFFICIAL_BUILD',
298        ],
299    },
300}
301
302config = configurations[env['CONFIG_NAME']]
303env.Append(**config['Append'])
304env.FilterOut(**config['FilterOut'])
305env.Replace(**config['Replace'])
306
307# Scons forces -fPIC for SHCCFLAGS on some platforms.
308# Disable that so we can control it from cflags in gyp.
309# Note that Scons itself is inconsistent with its -fPIC
310# setting. SHCCFLAGS forces -fPIC, and SHCFLAGS does not.
311# This will make SHCCFLAGS consistent with SHCFLAGS.
312env['SHCCFLAGS'] = ['$CCFLAGS']
313
314for _var in config['ImportExternal']:
315  if _var in ARGUMENTS:
316    env[_var] = ARGUMENTS[_var]
317  elif _var in os.environ:
318    env[_var] = os.environ[_var]
319for _var in config['PropagateExternal']:
320  if _var in ARGUMENTS:
321    env[_var] = ARGUMENTS[_var]
322  elif _var in os.environ:
323    env['ENV'][_var] = os.environ[_var]
324
325env['ENV']['LD_LIBRARY_PATH'] = env.subst('$LIB_DIR')
326
327if ARGUMENTS.get('COVERAGE') not in (None, '0'):
328  env.AppendUnique(
329            CCFLAGS = [
330                '-fprofile-arcs',
331                '-ftest-coverage'
332            ],
333            LINKFLAGS = [
334                '-fprofile-arcs'
335            ],
336  )
337
338if ARGUMENTS.get('PROFILE') not in (None, '0'):
339  env.AppendUnique(
340            CCFLAGS = [
341                '-pg',
342                '-g'
343            ],
344            LINKFLAGS = [
345                '-pg'
346            ],
347  )
348
349if ARGUMENTS.get('SYMBOLS') not in (None, '0'):
350  env.AppendUnique(
351            CCFLAGS = [
352                '-g'
353            ],
354  )
355
356input_files = [
357    'multiprocess_test.h',
358    'test/run_all_unittests.cc',
359    'test/test_suite.h',
360    'at_exit_unittest.cc',
361    'atomic_flag_unittest.cc',
362    'atomicops_unittest.cc',
363    'bits_unittest.cc',
364    'command_line_unittest.cc',
365    'condition_variable_unittest.cc',
366    'crypto/rsa_private_key_unittest.cc',
367    'crypto/signature_creator_unittest.cc',
368    'crypto/signature_verifier_unittest.cc',
369    'data_pack_unittest.cc',
370    'debug_util_unittest.cc',
371    'directory_watcher_unittest.cc',
372    'field_trial_unittest.cc',
373    'file_descriptor_shuffle_unittest.cc',
374    'file_path_unittest.cc',
375    'file_util_unittest.cc',
376    'gfx/rect_unittest.cc',
377    'gmock_unittest.cc',
378    'histogram_unittest.cc',
379    'hmac_unittest.cc',
380    'id_map_unittest.cc',
381    'i18n/file_util_icu_unittest.cc',
382    'i18n/icu_string_conversions_unittest.cc',
383    'i18n/word_iterator_unittest.cc',
384    'json/json_reader_unittest.cc',
385    'json/json_writer_unittest.cc',
386    'json/string_escape_unittest.cc',
387    'lazy_instance_unittest.cc',
388    'leak_tracker_unittest.cc',
389    'linked_list_unittest.cc',
390    'linked_ptr_unittest.cc',
391    'message_loop_unittest.cc',
392    'message_pump_glib_unittest.cc',
393    'observer_list_unittest.cc',
394    'path_service_unittest.cc',
395    'pickle_unittest.cc',
396    'pr_time_unittest.cc',
397    'process_util_unittest.cc',
398    'rand_util_unittest.cc',
399    'ref_counted_unittest.cc',
400    'scoped_ptr_unittest.cc',
401    'scoped_temp_dir_unittest.cc',
402    'sha1_unittest.cc',
403    'sha2_unittest.cc',
404    'shared_memory_unittest.cc',
405    'simple_thread_unittest.cc',
406    'singleton_unittest.cc',
407    'stack_container_unittest.cc',
408    'stats_table_unittest.cc',
409    'string_piece_unittest.cc',
410    'string_tokenizer_unittest.cc',
411    'string_util_unittest.cc',
412    'sys_info_unittest.cc',
413    'sys_string_conversions_unittest.cc',
414    'task_unittest.cc',
415    'thread_collision_warner_unittest.cc',
416    'thread_local_storage_unittest.cc',
417    'thread_local_unittest.cc',
418    'thread_unittest.cc',
419    'time_unittest.cc',
420    'timer_unittest.cc',
421    'tracked_objects_unittest.cc',
422    'tuple_unittest.cc',
423    'utf_offset_string_conversions_unittest.cc',
424    'utf_string_conversions_unittest.cc',
425    'values_unittest.cc',
426    'version_unittest.cc',
427    'waitable_event_unittest.cc',
428    'waitable_event_watcher_unittest.cc',
429    'watchdog_unittest.cc',
430    'weak_ptr_unittest.cc',
431    'worker_pool_unittest.cc',
432]
433
434target_files = []
435prerequisites = []
436
437_program = env.File('${PROGPREFIX}base_unittests${PROGSUFFIX}')
438_result = []
439for infile in input_files:
440  if env.compilable(infile):
441    if (type(infile) == type('')
442        and (infile.startswith('$SRC_DIR/base/')
443             or not os.path.isabs(env.subst(infile)))):
444      # Force files below the build directory by replacing all '..'
445      # elements in the path with '__':
446      base, ext = os.path.splitext(os.path.normpath(infile))
447      base = [d == '..' and '__' or d for d in base.split('/')]
448      base = os.path.join(*base)
449      object = '${OBJ_DIR}/${COMPONENT_NAME}/${TARGET_NAME}/' + base
450      if not infile.startswith('$SRC_DIR/base/'):
451        infile = '$SRC_DIR/base/' + infile
452      infile = env.StaticObject(object, infile)[0]
453    else:
454      infile = env.StaticObject(infile)[0]
455  _result.append(infile)
456input_files = _result
457
458_outputs = env.GypProgram(_program, input_files)
459target_files.extend(_outputs)
460
461if GetOption('verbose'):
462  _action = Action([['cd',
463 '"/usr/local/google/chromium/src/base"',
464 '&&',
465 '$TARGET_NAME',
466 '--gtest_print_time']])
467else:
468  _action = Action([['cd',
469 '"/usr/local/google/chromium/src/base"',
470 '&&',
471 '$TARGET_NAME',
472 '--gtest_print_time']], )
473
474gyp_target = env.Alias('base_unittests', target_files)
475dependencies = [
476    Alias('base'),
477    Alias('base_i18n'),
478    Alias('gmock'),
479    Alias('gtest'),
480    Alias('gtk'),
481    Alias('nss'),
482    Alias('xdisplaycheck'),
483    Alias('libevent'),
484    Alias('icui18n'),
485    Alias('icuuc'),
486    Alias('icudata')
487]
488env.Requires(target_files, dependencies)
489env.Requires(gyp_target, dependencies)
490for prerequisite in prerequisites:
491  env.Requires(prerequisite, dependencies)
492env.Requires(gyp_target, prerequisites)
493
494_run_as_target = env.Alias('run_base_unittests', target_files, _action)
495env.Requires(_run_as_target, [
496    Alias('base_unittests'),
497])
498env.AlwaysBuild(_run_as_target)
499Return("gyp_target")
500