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