1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 { 6 'variables': { 7 'chromium_code': 1, 8 }, 9 'includes': [ 10 '../build/win_precompile.gypi', 11 'base.gypi', 12 ], 13 'targets': [ 14 { 15 'target_name': 'base', 16 'type': '<(component)', 17 'toolsets': ['host', 'target'], 18 'variables': { 19 'base_target': 1, 20 'enable_wexit_time_destructors': 1, 21 'optimize': 'max', 22 }, 23 'dependencies': [ 24 'allocator/allocator.gyp:allocator', 25 'allocator/allocator.gyp:allocator_features#target', 26 'base_debugging_flags#target', 27 'base_win_features#target', 28 'base_static', 29 'base_build_date#target', 30 '../testing/gtest.gyp:gtest_prod', 31 '../third_party/modp_b64/modp_b64.gyp:modp_b64', 32 'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 33 ], 34 # TODO(gregoryd): direct_dependent_settings should be shared with the 35 # 64-bit target, but it doesn't work due to a bug in gyp 36 'direct_dependent_settings': { 37 'include_dirs': [ 38 '..', 39 ], 40 }, 41 'conditions': [ 42 ['desktop_linux == 1 or chromeos == 1', { 43 'conditions': [ 44 ['chromeos==1', { 45 'sources/': [ ['include', '_chromeos\\.cc$'] ] 46 }], 47 ], 48 'dependencies': [ 49 'symbolize', 50 'xdg_mime', 51 ], 52 'defines': [ 53 'USE_SYMBOLIZE', 54 ], 55 }, { # desktop_linux == 0 and chromeos == 0 56 'sources/': [ 57 ['exclude', '/xdg_user_dirs/'], 58 ['exclude', '_nss\\.cc$'], 59 ], 60 }], 61 ['use_glib==1', { 62 'dependencies': [ 63 '../build/linux/system.gyp:glib', 64 ], 65 'export_dependent_settings': [ 66 '../build/linux/system.gyp:glib', 67 ], 68 }], 69 ['OS == "android" and _toolset == "host"', { 70 # Always build base as a static_library for host toolset, even if 71 # we're doing a component build. Specifically, we only care about the 72 # target toolset using components since that's what developers are 73 # focusing on. In theory we should do this more generally for all 74 # targets when building for host, but getting the gyp magic 75 # per-toolset for the "component" variable is hard, and we really only 76 # need base on host. 77 'type': 'static_library', 78 # Base for host support is the minimum required to run the 79 # ssl false start blacklist tool. It requires further changes 80 # to generically support host builds (and tests). 81 # Note: when building for host, gyp has OS == "android", 82 # hence the *_android.cc files are included but the actual code 83 # doesn't have OS_ANDROID / ANDROID defined. 84 'conditions': [ 85 ['host_os == "mac"', { 86 'sources/': [ 87 ['exclude', '^native_library_linux\\.cc$'], 88 ['exclude', '^process_util_linux\\.cc$'], 89 ['exclude', '^sys_info_linux\\.cc$'], 90 ['exclude', '^sys_string_conversions_linux\\.cc$'], 91 ['exclude', '^worker_pool_linux\\.cc$'], 92 ], 93 }], 94 ], 95 }], 96 ['OS == "android" and _toolset == "target"', { 97 'dependencies': [ 98 'base_java', 99 'base_jni_headers', 100 '../build/android/ndk.gyp:cpu_features', 101 '../third_party/ashmem/ashmem.gyp:ashmem', 102 ], 103 'link_settings': { 104 'libraries': [ 105 '-llog', 106 ], 107 }, 108 'sources!': [ 109 'debug/stack_trace_posix.cc', 110 ], 111 }], 112 ['os_bsd==1', { 113 'include_dirs': [ 114 '/usr/local/include', 115 ], 116 'link_settings': { 117 'libraries': [ 118 '-L/usr/local/lib -lexecinfo', 119 ], 120 }, 121 }], 122 ['OS == "linux"', { 123 'link_settings': { 124 'libraries': [ 125 # We need rt for clock_gettime(). 126 '-lrt', 127 # For 'native_library_linux.cc' 128 '-ldl', 129 ], 130 }, 131 'conditions': [ 132 ['use_allocator!="tcmalloc"', { 133 'defines': [ 134 'NO_TCMALLOC', 135 ], 136 'direct_dependent_settings': { 137 'defines': [ 138 'NO_TCMALLOC', 139 ], 140 }, 141 }], 142 ], 143 }], 144 ['use_sysroot==0 and (OS == "android" or OS == "linux")', { 145 'link_settings': { 146 'libraries': [ 147 # Needed for <atomic> when building with newer C++ library. 148 '-latomic', 149 ], 150 }, 151 }], 152 ['OS == "win"', { 153 # Specify delayload for base.dll. 154 'msvs_settings': { 155 'VCLinkerTool': { 156 'DelayLoadDLLs': [ 157 'cfgmgr32.dll', 158 'powrprof.dll', 159 'setupapi.dll', 160 ], 161 'AdditionalDependencies': [ 162 'cfgmgr32.lib', 163 'powrprof.lib', 164 'setupapi.lib', 165 'userenv.lib', 166 'winmm.lib', 167 ], 168 }, 169 }, 170 # Specify delayload for components that link with base.lib. 171 'all_dependent_settings': { 172 'msvs_settings': { 173 'VCLinkerTool': { 174 'DelayLoadDLLs': [ 175 'cfgmgr32.dll', 176 'powrprof.dll', 177 'setupapi.dll', 178 ], 179 'AdditionalDependencies': [ 180 'cfgmgr32.lib', 181 'powrprof.lib', 182 'setupapi.lib', 183 'userenv.lib', 184 'winmm.lib', 185 ], 186 }, 187 }, 188 }, 189 'dependencies': [ 190 'trace_event/etw_manifest/etw_manifest.gyp:etw_manifest', 191 ], 192 }], 193 ['OS == "mac" or (OS == "ios" and _toolset == "host")', { 194 'link_settings': { 195 'libraries': [ 196 '$(SDKROOT)/System/Library/Frameworks/AppKit.framework', 197 '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework', 198 '$(SDKROOT)/System/Library/Frameworks/Carbon.framework', 199 '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework', 200 '$(SDKROOT)/System/Library/Frameworks/Foundation.framework', 201 '$(SDKROOT)/System/Library/Frameworks/IOKit.framework', 202 '$(SDKROOT)/System/Library/Frameworks/Security.framework', 203 '$(SDKROOT)/usr/lib/libbsm.dylib', 204 ], 205 }, 206 }], 207 ['OS == "ios" and _toolset != "host"', { 208 'link_settings': { 209 'libraries': [ 210 '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework', 211 '$(SDKROOT)/System/Library/Frameworks/CoreGraphics.framework', 212 '$(SDKROOT)/System/Library/Frameworks/CoreText.framework', 213 '$(SDKROOT)/System/Library/Frameworks/Foundation.framework', 214 '$(SDKROOT)/System/Library/Frameworks/UIKit.framework', 215 ], 216 }, 217 }], 218 ['OS != "win" and (OS != "ios" or _toolset == "host")', { 219 'dependencies': ['third_party/libevent/libevent.gyp:libevent'], 220 },], 221 ['component=="shared_library"', { 222 'conditions': [ 223 ['OS=="win"', { 224 'sources!': [ 225 'debug/debug_on_start_win.cc', 226 ], 227 }], 228 ], 229 }], 230 ['OS=="ios"', { 231 'sources!': [ 232 'sync_socket.h', 233 'sync_socket_posix.cc', 234 ] 235 }], 236 ['use_experimental_allocator_shim==1', { 237 'dependencies': [ 'allocator/allocator.gyp:unified_allocator_shim'] 238 }], 239 ], 240 'sources': [ 241 'auto_reset.h', 242 'linux_util.cc', 243 'linux_util.h', 244 'message_loop/message_pump_android.cc', 245 'message_loop/message_pump_android.h', 246 'message_loop/message_pump_glib.cc', 247 'message_loop/message_pump_glib.h', 248 'message_loop/message_pump_io_ios.cc', 249 'message_loop/message_pump_io_ios.h', 250 'message_loop/message_pump_libevent.cc', 251 'message_loop/message_pump_libevent.h', 252 'message_loop/message_pump_mac.h', 253 'message_loop/message_pump_mac.mm', 254 'metrics/field_trial.cc', 255 'metrics/field_trial.h', 256 'posix/file_descriptor_shuffle.cc', 257 'posix/file_descriptor_shuffle.h', 258 'sync_socket.h', 259 'sync_socket_posix.cc', 260 'sync_socket_win.cc', 261 'third_party/xdg_user_dirs/xdg_user_dir_lookup.cc', 262 'third_party/xdg_user_dirs/xdg_user_dir_lookup.h', 263 ], 264 'includes': [ 265 '../build/android/increase_size_for_speed.gypi', 266 ], 267 }, 268 { 269 'target_name': 'base_i18n', 270 'type': '<(component)', 271 'variables': { 272 'enable_wexit_time_destructors': 1, 273 'optimize': 'max', 274 'base_i18n_target': 1, 275 }, 276 'dependencies': [ 277 'base', 278 'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 279 '../third_party/icu/icu.gyp:icui18n', 280 '../third_party/icu/icu.gyp:icuuc', 281 ], 282 'conditions': [ 283 ['OS == "win"', { 284 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 285 'msvs_disabled_warnings': [ 286 4267, 287 ], 288 }], 289 ['icu_use_data_file_flag==1', { 290 'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE'], 291 }, { # else icu_use_data_file_flag !=1 292 'conditions': [ 293 ['OS=="win"', { 294 'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_SHARED'], 295 }, { 296 'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC'], 297 }], 298 ], 299 }], 300 ['OS == "ios"', { 301 'toolsets': ['host', 'target'], 302 }], 303 ], 304 'export_dependent_settings': [ 305 'base', 306 '../third_party/icu/icu.gyp:icuuc', 307 '../third_party/icu/icu.gyp:icui18n', 308 ], 309 'includes': [ 310 '../build/android/increase_size_for_speed.gypi', 311 ], 312 }, 313 { 314 'target_name': 'base_message_loop_tests', 315 'type': 'static_library', 316 'dependencies': [ 317 'base', 318 '../testing/gtest.gyp:gtest', 319 ], 320 'sources': [ 321 'message_loop/message_loop_test.cc', 322 'message_loop/message_loop_test.h', 323 ], 324 }, 325 { 326 # This is the subset of files from base that should not be used with a 327 # dynamic library. Note that this library cannot depend on base because 328 # base depends on base_static. 329 'target_name': 'base_static', 330 'type': 'static_library', 331 'variables': { 332 'enable_wexit_time_destructors': 1, 333 'optimize': 'max', 334 }, 335 'toolsets': ['host', 'target'], 336 'sources': [ 337 'base_switches.cc', 338 'base_switches.h', 339 'win/pe_image.cc', 340 'win/pe_image.h', 341 ], 342 'include_dirs': [ 343 '..', 344 ], 345 'includes': [ 346 '../build/android/increase_size_for_speed.gypi', 347 ], 348 }, 349 # Include this target for a main() function that simply instantiates 350 # and runs a base::TestSuite. 351 { 352 'target_name': 'run_all_unittests', 353 'type': 'static_library', 354 'dependencies': [ 355 'test_support_base', 356 ], 357 'sources': [ 358 'test/run_all_unittests.cc', 359 ], 360 }, 361 { 362 'target_name': 'base_unittests', 363 'type': '<(gtest_target_type)', 364 'sources': [ 365 'allocator/tcmalloc_unittest.cc', 366 'android/application_status_listener_unittest.cc', 367 'android/content_uri_utils_unittest.cc', 368 'android/jni_android_unittest.cc', 369 'android/jni_array_unittest.cc', 370 'android/jni_string_unittest.cc', 371 'android/library_loader/library_prefetcher_unittest.cc', 372 'android/path_utils_unittest.cc', 373 'android/scoped_java_ref_unittest.cc', 374 'android/sys_utils_unittest.cc', 375 'at_exit_unittest.cc', 376 'atomicops_unittest.cc', 377 'barrier_closure_unittest.cc', 378 'base64_unittest.cc', 379 'base64url_unittest.cc', 380 'big_endian_unittest.cc', 381 'bind_unittest.cc', 382 'bind_unittest.nc', 383 'bit_cast_unittest.cc', 384 'bits_unittest.cc', 385 'build_time_unittest.cc', 386 'callback_helpers_unittest.cc', 387 'callback_list_unittest.cc', 388 'callback_list_unittest.nc', 389 'callback_unittest.cc', 390 'callback_unittest.nc', 391 'cancelable_callback_unittest.cc', 392 'command_line_unittest.cc', 393 'containers/adapters_unittest.cc', 394 'containers/hash_tables_unittest.cc', 395 'containers/linked_list_unittest.cc', 396 'containers/mru_cache_unittest.cc', 397 'containers/scoped_ptr_hash_map_unittest.cc', 398 'containers/small_map_unittest.cc', 399 'containers/stack_container_unittest.cc', 400 'cpu_unittest.cc', 401 'debug/crash_logging_unittest.cc', 402 'debug/debugger_unittest.cc', 403 'debug/leak_tracker_unittest.cc', 404 'debug/proc_maps_linux_unittest.cc', 405 'debug/stack_trace_unittest.cc', 406 'debug/task_annotator_unittest.cc', 407 'deferred_sequenced_task_runner_unittest.cc', 408 'environment_unittest.cc', 409 'feature_list_unittest.cc', 410 'file_version_info_win_unittest.cc', 411 'files/dir_reader_posix_unittest.cc', 412 'files/file_locking_unittest.cc', 413 'files/file_path_unittest.cc', 414 'files/file_path_watcher_unittest.cc', 415 'files/file_proxy_unittest.cc', 416 'files/file_unittest.cc', 417 'files/file_util_proxy_unittest.cc', 418 'files/file_util_unittest.cc', 419 'files/important_file_writer_unittest.cc', 420 'files/memory_mapped_file_unittest.cc', 421 'files/scoped_temp_dir_unittest.cc', 422 'gmock_unittest.cc', 423 'guid_unittest.cc', 424 'hash_unittest.cc', 425 'i18n/break_iterator_unittest.cc', 426 'i18n/case_conversion_unittest.cc', 427 'i18n/char_iterator_unittest.cc', 428 'i18n/file_util_icu_unittest.cc', 429 'i18n/icu_string_conversions_unittest.cc', 430 'i18n/message_formatter_unittest.cc', 431 'i18n/number_formatting_unittest.cc', 432 'i18n/rtl_unittest.cc', 433 'i18n/streaming_utf8_validator_unittest.cc', 434 'i18n/string_search_unittest.cc', 435 'i18n/time_formatting_unittest.cc', 436 'i18n/timezone_unittest.cc', 437 'id_map_unittest.cc', 438 'ios/crb_protocol_observers_unittest.mm', 439 'ios/device_util_unittest.mm', 440 'ios/weak_nsobject_unittest.mm', 441 'json/json_parser_unittest.cc', 442 'json/json_reader_unittest.cc', 443 'json/json_value_converter_unittest.cc', 444 'json/json_value_serializer_unittest.cc', 445 'json/json_writer_unittest.cc', 446 'json/string_escape_unittest.cc', 447 'lazy_instance_unittest.cc', 448 'logging_unittest.cc', 449 'mac/bind_objc_block_unittest.mm', 450 'mac/call_with_eh_frame_unittest.mm', 451 'mac/dispatch_source_mach_unittest.cc', 452 'mac/foundation_util_unittest.mm', 453 'mac/mac_util_unittest.mm', 454 'mac/mach_port_broker_unittest.cc', 455 'mac/objc_property_releaser_unittest.mm', 456 'mac/scoped_nsobject_unittest.mm', 457 'mac/scoped_objc_class_swizzler_unittest.mm', 458 'mac/scoped_sending_event_unittest.mm', 459 'md5_unittest.cc', 460 'memory/aligned_memory_unittest.cc', 461 'memory/discardable_shared_memory_unittest.cc', 462 'memory/linked_ptr_unittest.cc', 463 'memory/memory_pressure_listener_unittest.cc', 464 'memory/memory_pressure_monitor_chromeos_unittest.cc', 465 'memory/memory_pressure_monitor_mac_unittest.cc', 466 'memory/memory_pressure_monitor_win_unittest.cc', 467 'memory/ptr_util_unittest.cc', 468 'memory/ref_counted_memory_unittest.cc', 469 'memory/ref_counted_unittest.cc', 470 'memory/scoped_vector_unittest.cc', 471 'memory/shared_memory_mac_unittest.cc', 472 'memory/shared_memory_unittest.cc', 473 'memory/shared_memory_win_unittest.cc', 474 'memory/singleton_unittest.cc', 475 'memory/weak_ptr_unittest.cc', 476 'memory/weak_ptr_unittest.nc', 477 'message_loop/message_loop_task_runner_unittest.cc', 478 'message_loop/message_loop_unittest.cc', 479 'message_loop/message_pump_glib_unittest.cc', 480 'message_loop/message_pump_io_ios_unittest.cc', 481 'message_loop/message_pump_libevent_unittest.cc', 482 'metrics/bucket_ranges_unittest.cc', 483 'metrics/field_trial_unittest.cc', 484 'metrics/histogram_base_unittest.cc', 485 'metrics/histogram_delta_serialization_unittest.cc', 486 'metrics/histogram_macros_unittest.cc', 487 'metrics/histogram_snapshot_manager_unittest.cc', 488 'metrics/histogram_unittest.cc', 489 'metrics/metrics_hashes_unittest.cc', 490 'metrics/persistent_histogram_allocator_unittest.cc', 491 'metrics/persistent_memory_allocator_unittest.cc', 492 'metrics/persistent_sample_map_unittest.cc', 493 'metrics/sample_map_unittest.cc', 494 'metrics/sample_vector_unittest.cc', 495 'metrics/sparse_histogram_unittest.cc', 496 'metrics/statistics_recorder_unittest.cc', 497 'native_library_unittest.cc', 498 'numerics/safe_numerics_unittest.cc', 499 'observer_list_unittest.cc', 500 'optional_unittest.cc', 501 'os_compat_android_unittest.cc', 502 'path_service_unittest.cc', 503 'pickle_unittest.cc', 504 'posix/file_descriptor_shuffle_unittest.cc', 505 'posix/unix_domain_socket_linux_unittest.cc', 506 'power_monitor/power_monitor_unittest.cc', 507 'process/memory_unittest.cc', 508 'process/memory_unittest_mac.h', 509 'process/memory_unittest_mac.mm', 510 'process/process_metrics_unittest.cc', 511 'process/process_metrics_unittest_ios.cc', 512 'process/process_unittest.cc', 513 'process/process_util_unittest.cc', 514 'profiler/stack_sampling_profiler_unittest.cc', 515 'profiler/tracked_time_unittest.cc', 516 'rand_util_unittest.cc', 517 'run_loop_unittest.cc', 518 'scoped_clear_errno_unittest.cc', 519 'scoped_generic_unittest.cc', 520 'scoped_native_library_unittest.cc', 521 'security_unittest.cc', 522 'sequence_checker_unittest.cc', 523 'sha1_unittest.cc', 524 'stl_util_unittest.cc', 525 'strings/nullable_string16_unittest.cc', 526 'strings/pattern_unittest.cc', 527 'strings/safe_sprintf_unittest.cc', 528 'strings/string16_unittest.cc', 529 'strings/string_number_conversions_unittest.cc', 530 'strings/string_piece_unittest.cc', 531 'strings/string_split_unittest.cc', 532 'strings/string_tokenizer_unittest.cc', 533 'strings/string_util_unittest.cc', 534 'strings/stringize_macros_unittest.cc', 535 'strings/stringprintf_unittest.cc', 536 'strings/sys_string_conversions_mac_unittest.mm', 537 'strings/sys_string_conversions_unittest.cc', 538 'strings/utf_offset_string_conversions_unittest.cc', 539 'strings/utf_string_conversions_unittest.cc', 540 'supports_user_data_unittest.cc', 541 'sync_socket_unittest.cc', 542 'synchronization/cancellation_flag_unittest.cc', 543 'synchronization/condition_variable_unittest.cc', 544 'synchronization/lock_unittest.cc', 545 'synchronization/read_write_lock_unittest.cc', 546 'synchronization/waitable_event_unittest.cc', 547 'synchronization/waitable_event_watcher_unittest.cc', 548 'sys_byteorder_unittest.cc', 549 'sys_info_unittest.cc', 550 'system_monitor/system_monitor_unittest.cc', 551 'task/cancelable_task_tracker_unittest.cc', 552 'task_runner_util_unittest.cc', 553 'task_scheduler/delayed_task_manager_unittest.cc', 554 'task_scheduler/priority_queue_unittest.cc', 555 'task_scheduler/scheduler_lock_unittest.cc', 556 'task_scheduler/scheduler_service_thread_unittest.cc', 557 'task_scheduler/scheduler_worker_unittest.cc', 558 'task_scheduler/scheduler_worker_pool_impl_unittest.cc', 559 'task_scheduler/scheduler_worker_stack_unittest.cc', 560 'task_scheduler/sequence_sort_key_unittest.cc', 561 'task_scheduler/sequence_unittest.cc', 562 'task_scheduler/task_scheduler_impl_unittest.cc', 563 'task_scheduler/task_tracker_unittest.cc', 564 'task_scheduler/test_task_factory.cc', 565 'task_scheduler/test_task_factory.h', 566 'task_scheduler/test_utils.h', 567 'template_util_unittest.cc', 568 'test/histogram_tester_unittest.cc', 569 'test/test_pending_task_unittest.cc', 570 'test/test_reg_util_win_unittest.cc', 571 'test/trace_event_analyzer_unittest.cc', 572 'test/user_action_tester_unittest.cc', 573 'threading/non_thread_safe_unittest.cc', 574 'threading/platform_thread_unittest.cc', 575 'threading/sequenced_worker_pool_unittest.cc', 576 'threading/sequenced_task_runner_handle_unittest.cc', 577 'threading/simple_thread_unittest.cc', 578 'threading/thread_checker_unittest.cc', 579 'threading/thread_collision_warner_unittest.cc', 580 'threading/thread_id_name_manager_unittest.cc', 581 'threading/thread_local_storage_unittest.cc', 582 'threading/thread_local_unittest.cc', 583 'threading/thread_unittest.cc', 584 'threading/watchdog_unittest.cc', 585 'threading/worker_pool_posix_unittest.cc', 586 'threading/worker_pool_unittest.cc', 587 'time/pr_time_unittest.cc', 588 'time/time_unittest.cc', 589 'time/time_win_unittest.cc', 590 'timer/hi_res_timer_manager_unittest.cc', 591 'timer/mock_timer_unittest.cc', 592 'timer/timer_unittest.cc', 593 'tools_sanity_unittest.cc', 594 'tracked_objects_unittest.cc', 595 'tuple_unittest.cc', 596 'values_unittest.cc', 597 'version_unittest.cc', 598 'vlog_unittest.cc', 599 'win/dllmain.cc', 600 'win/enum_variant_unittest.cc', 601 'win/event_trace_consumer_unittest.cc', 602 'win/event_trace_controller_unittest.cc', 603 'win/event_trace_provider_unittest.cc', 604 'win/i18n_unittest.cc', 605 'win/iunknown_impl_unittest.cc', 606 'win/message_window_unittest.cc', 607 'win/object_watcher_unittest.cc', 608 'win/pe_image_unittest.cc', 609 'win/registry_unittest.cc', 610 'win/scoped_bstr_unittest.cc', 611 'win/scoped_comptr_unittest.cc', 612 'win/scoped_handle_unittest.cc', 613 'win/scoped_process_information_unittest.cc', 614 'win/scoped_variant_unittest.cc', 615 'win/shortcut_unittest.cc', 616 'win/startup_information_unittest.cc', 617 'win/wait_chain_unittest.cc', 618 'win/win_util_unittest.cc', 619 'win/windows_version_unittest.cc', 620 'win/wrapped_window_proc_unittest.cc', 621 '<@(trace_event_test_sources)', 622 ], 623 'dependencies': [ 624 'base', 625 'base_i18n', 626 'base_message_loop_tests', 627 'base_static', 628 'run_all_unittests', 629 'test_support_base', 630 'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 631 '../testing/gmock.gyp:gmock', 632 '../testing/gtest.gyp:gtest', 633 '../third_party/icu/icu.gyp:icui18n', 634 '../third_party/icu/icu.gyp:icuuc', 635 ], 636 'includes': ['../build/nocompile.gypi'], 637 'variables': { 638 # TODO(ajwong): Is there a way to autodetect this? 639 'module_dir': 'base' 640 }, 641 'conditions': [ 642 ['cfi_vptr==1 and cfi_cast==1', { 643 'defines': [ 644 # TODO(krasin): remove CFI_CAST_CHECK, see https://crbug.com/626794. 645 'CFI_CAST_CHECK', 646 ], 647 }], 648 ['OS == "ios" or OS == "mac"', { 649 'dependencies': [ 650 'base_unittests_arc', 651 ], 652 }], 653 ['OS == "android"', { 654 'dependencies': [ 655 'android/jni_generator/jni_generator.gyp:jni_generator_tests', 656 '../testing/android/native_test.gyp:native_test_native_code', 657 ], 658 }], 659 ['OS == "ios" and _toolset != "host"', { 660 'sources/': [ 661 # This test needs multiple processes. 662 ['exclude', '^files/file_locking_unittest\\.cc$'], 663 # iOS does not support FilePathWatcher. 664 ['exclude', '^files/file_path_watcher_unittest\\.cc$'], 665 # Only test the iOS-meaningful portion of memory and process_utils. 666 ['exclude', '^memory/discardable_shared_memory_unittest\\.cc$'], 667 ['exclude', '^memory/shared_memory_unittest\\.cc$'], 668 ['exclude', '^process/memory_unittest'], 669 ['exclude', '^process/process_unittest\\.cc$'], 670 ['exclude', '^process/process_util_unittest\\.cc$'], 671 ['include', '^process/process_util_unittest_ios\\.cc$'], 672 # iOS does not use message_pump_libevent. 673 ['exclude', '^message_loop/message_pump_libevent_unittest\\.cc$'], 674 ], 675 'actions': [ 676 { 677 'action_name': 'copy_test_data', 678 'variables': { 679 'test_data_files': [ 680 'test/data', 681 ], 682 'test_data_prefix': 'base', 683 }, 684 'includes': [ '../build/copy_test_data_ios.gypi' ], 685 }, 686 ], 687 }], 688 ['desktop_linux == 1 or chromeos == 1', { 689 'defines': [ 690 'USE_SYMBOLIZE', 691 ], 692 'conditions': [ 693 [ 'desktop_linux==1', { 694 'sources': [ 695 'nix/xdg_util_unittest.cc', 696 ], 697 }], 698 ], 699 }], 700 ['use_glib == 1', { 701 'dependencies': [ 702 '../build/linux/system.gyp:glib', 703 ], 704 }, { # use_glib == 0 705 'sources!': [ 706 'message_loop/message_pump_glib_unittest.cc', 707 ] 708 }], 709 ['use_ozone == 1', { 710 'sources!': [ 711 'message_loop/message_pump_glib_unittest.cc', 712 ] 713 }], 714 ['OS == "linux"', { 715 'dependencies': [ 716 'malloc_wrapper', 717 ], 718 }], 719 [ 'OS == "win" and target_arch == "x64"', { 720 'sources': [ 721 'profiler/win32_stack_frame_unwinder_unittest.cc', 722 ], 723 'dependencies': [ 724 'base_profiler_test_support_library', 725 ], 726 }], 727 ['OS == "win"', { 728 'dependencies': [ 729 'scoped_handle_test_dll' 730 ], 731 'sources!': [ 732 'file_descriptor_shuffle_unittest.cc', 733 'files/dir_reader_posix_unittest.cc', 734 'message_loop/message_pump_libevent_unittest.cc', 735 'threading/worker_pool_posix_unittest.cc', 736 ], 737 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 738 'msvs_disabled_warnings': [ 739 4267, 740 ], 741 'conditions': [ 742 ['icu_use_data_file_flag==0', { 743 # This is needed to trigger the dll copy step on windows. 744 # TODO(mark): This should not be necessary. 745 'dependencies': [ 746 '../third_party/icu/icu.gyp:icudata', 747 ], 748 }], 749 ], 750 }, { # OS != "win" 751 'dependencies': [ 752 'third_party/libevent/libevent.gyp:libevent' 753 ], 754 }], 755 ['use_experimental_allocator_shim==1', { 756 'sources': [ 'allocator/allocator_shim_unittest.cc'] 757 }], 758 ], # conditions 759 'target_conditions': [ 760 ['OS == "ios" and _toolset != "host"', { 761 'sources/': [ 762 # Pull in specific Mac files for iOS (which have been filtered out 763 # by file name rules). 764 ['include', '^mac/bind_objc_block_unittest\\.mm$'], 765 ['include', '^mac/foundation_util_unittest\\.mm$',], 766 ['include', '^mac/objc_property_releaser_unittest\\.mm$'], 767 ['include', '^mac/scoped_nsobject_unittest\\.mm$'], 768 ['include', '^sys_string_conversions_mac_unittest\\.mm$'], 769 ], 770 }], 771 ['OS == "android"', { 772 'sources/': [ 773 ['include', '^debug/proc_maps_linux_unittest\\.cc$'], 774 ], 775 }], 776 # Enable more direct string conversions on platforms with native utf8 777 # strings 778 ['OS=="mac" or OS=="ios" or <(chromeos)==1 or <(chromecast)==1', { 779 'defines': ['SYSTEM_NATIVE_UTF8'], 780 }], 781 # SyncSocket isn't used on iOS 782 ['OS=="ios"', { 783 'sources!': [ 784 'sync_socket_unittest.cc', 785 ], 786 }], 787 ], # target_conditions 788 }, 789 { 790 # GN: //base:base_perftests 791 'target_name': 'base_perftests', 792 'type': '<(gtest_target_type)', 793 'dependencies': [ 794 'base', 795 'test_support_base', 796 '../testing/gtest.gyp:gtest', 797 ], 798 'sources': [ 799 'message_loop/message_pump_perftest.cc', 800 'test/run_all_unittests.cc', 801 'threading/thread_perftest.cc', 802 '../testing/perf/perf_test.cc' 803 ], 804 'conditions': [ 805 ['OS == "android"', { 806 'dependencies': [ 807 '../testing/android/native_test.gyp:native_test_native_code', 808 ], 809 }], 810 ], 811 }, 812 { 813 # GN: //base:base_i18n_perftests 814 'target_name': 'base_i18n_perftests', 815 'type': '<(gtest_target_type)', 816 'dependencies': [ 817 'test_support_base', 818 'test_support_perf', 819 '../testing/gtest.gyp:gtest', 820 'base_i18n', 821 'base', 822 ], 823 'sources': [ 824 'i18n/streaming_utf8_validator_perftest.cc', 825 ], 826 }, 827 { 828 # GN: //base/test:test_support 829 'target_name': 'test_support_base', 830 'type': 'static_library', 831 'dependencies': [ 832 'base', 833 'base_static', 834 'base_i18n', 835 '../testing/gmock.gyp:gmock', 836 '../testing/gtest.gyp:gtest', 837 '../third_party/icu/icu.gyp:icuuc', 838 '../third_party/libxml/libxml.gyp:libxml', 839 'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 840 ], 841 'export_dependent_settings': [ 842 'base', 843 ], 844 'conditions': [ 845 ['os_posix==0', { 846 'sources!': [ 847 'test/scoped_locale.cc', 848 'test/scoped_locale.h', 849 ], 850 }], 851 ['os_bsd==1', { 852 'sources!': [ 853 'test/test_file_util_linux.cc', 854 ], 855 }], 856 ['OS == "android"', { 857 'dependencies': [ 858 'base_unittests_jni_headers', 859 'base_java_unittest_support', 860 ], 861 }], 862 ['OS == "ios"', { 863 'toolsets': ['host', 'target'], 864 }], 865 ], 866 'sources': [ 867 'test/gtest_util.cc', 868 'test/gtest_util.h', 869 'test/gtest_xml_unittest_result_printer.cc', 870 'test/gtest_xml_unittest_result_printer.h', 871 'test/gtest_xml_util.cc', 872 'test/gtest_xml_util.h', 873 'test/histogram_tester.cc', 874 'test/histogram_tester.h', 875 'test/icu_test_util.cc', 876 'test/icu_test_util.h', 877 'test/ios/wait_util.h', 878 'test/ios/wait_util.mm', 879 'test/launcher/test_launcher.cc', 880 'test/launcher/test_launcher.h', 881 'test/launcher/test_launcher_tracer.cc', 882 'test/launcher/test_launcher_tracer.h', 883 'test/launcher/test_result.cc', 884 'test/launcher/test_result.h', 885 'test/launcher/test_results_tracker.cc', 886 'test/launcher/test_results_tracker.h', 887 'test/launcher/unit_test_launcher.cc', 888 'test/launcher/unit_test_launcher.h', 889 'test/launcher/unit_test_launcher_ios.cc', 890 'test/mock_chrome_application_mac.h', 891 'test/mock_chrome_application_mac.mm', 892 'test/mock_devices_changed_observer.cc', 893 'test/mock_devices_changed_observer.h', 894 'test/mock_entropy_provider.cc', 895 'test/mock_entropy_provider.h', 896 'test/mock_log.cc', 897 'test/mock_log.h', 898 'test/multiprocess_test.cc', 899 'test/multiprocess_test.h', 900 'test/multiprocess_test_android.cc', 901 'test/null_task_runner.cc', 902 'test/null_task_runner.h', 903 'test/opaque_ref_counted.cc', 904 'test/opaque_ref_counted.h', 905 'test/perf_log.cc', 906 'test/perf_log.h', 907 'test/perf_test_suite.cc', 908 'test/perf_test_suite.h', 909 'test/perf_time_logger.cc', 910 'test/perf_time_logger.h', 911 'test/power_monitor_test_base.cc', 912 'test/power_monitor_test_base.h', 913 'test/scoped_command_line.cc', 914 'test/scoped_command_line.h', 915 'test/scoped_locale.cc', 916 'test/scoped_locale.h', 917 'test/scoped_path_override.cc', 918 'test/scoped_path_override.h', 919 'test/sequenced_task_runner_test_template.cc', 920 'test/sequenced_task_runner_test_template.h', 921 'test/sequenced_worker_pool_owner.cc', 922 'test/sequenced_worker_pool_owner.h', 923 'test/simple_test_clock.cc', 924 'test/simple_test_clock.h', 925 'test/simple_test_tick_clock.cc', 926 'test/simple_test_tick_clock.h', 927 'test/task_runner_test_template.cc', 928 'test/task_runner_test_template.h', 929 'test/test_discardable_memory_allocator.cc', 930 'test/test_discardable_memory_allocator.h', 931 'test/test_file_util.cc', 932 'test/test_file_util.h', 933 'test/test_file_util_android.cc', 934 'test/test_file_util_linux.cc', 935 'test/test_file_util_mac.cc', 936 'test/test_file_util_posix.cc', 937 'test/test_file_util_win.cc', 938 'test/test_io_thread.cc', 939 'test/test_io_thread.h', 940 'test/test_listener_ios.h', 941 'test/test_listener_ios.mm', 942 'test/test_message_loop.cc', 943 'test/test_message_loop.h', 944 'test/test_mock_time_task_runner.cc', 945 'test/test_mock_time_task_runner.h', 946 'test/test_pending_task.cc', 947 'test/test_pending_task.h', 948 'test/test_reg_util_win.cc', 949 'test/test_reg_util_win.h', 950 'test/test_shortcut_win.cc', 951 'test/test_shortcut_win.h', 952 'test/test_simple_task_runner.cc', 953 'test/test_simple_task_runner.h', 954 'test/test_suite.cc', 955 'test/test_suite.h', 956 'test/test_support_android.cc', 957 'test/test_support_android.h', 958 'test/test_support_ios.h', 959 'test/test_support_ios.mm', 960 'test/test_switches.cc', 961 'test/test_switches.h', 962 'test/test_timeouts.cc', 963 'test/test_timeouts.h', 964 'test/test_ui_thread_android.cc', 965 'test/test_ui_thread_android.h', 966 'test/thread_test_helper.cc', 967 'test/thread_test_helper.h', 968 'test/trace_event_analyzer.cc', 969 'test/trace_event_analyzer.h', 970 'test/trace_to_file.cc', 971 'test/trace_to_file.h', 972 'test/user_action_tester.cc', 973 'test/user_action_tester.h', 974 'test/values_test_util.cc', 975 'test/values_test_util.h', 976 ], 977 'target_conditions': [ 978 ['OS == "ios"', { 979 'sources/': [ 980 # Pull in specific Mac files for iOS (which have been filtered out 981 # by file name rules). 982 ['include', '^test/test_file_util_mac\\.cc$'], 983 ], 984 }], 985 ['OS == "ios" and _toolset == "target"', { 986 'sources!': [ 987 # iOS uses its own unit test launcher. 988 'test/launcher/unit_test_launcher.cc', 989 ], 990 }], 991 ['OS == "ios" and _toolset == "host"', { 992 'sources!': [ 993 'test/launcher/unit_test_launcher_ios.cc', 994 'test/test_support_ios.h', 995 'test/test_support_ios.mm', 996 ], 997 }], 998 ], # target_conditions 999 }, 1000 { 1001 'target_name': 'test_support_perf', 1002 'type': 'static_library', 1003 'dependencies': [ 1004 'base', 1005 'test_support_base', 1006 '../testing/gtest.gyp:gtest', 1007 ], 1008 'sources': [ 1009 'test/run_all_perftests.cc', 1010 ], 1011 'direct_dependent_settings': { 1012 'defines': [ 1013 'PERF_TEST', 1014 ], 1015 }, 1016 }, 1017 { 1018 'target_name': 'test_launcher_nacl_nonsfi', 1019 'conditions': [ 1020 ['disable_nacl==0 and disable_nacl_untrusted==0 and enable_nacl_nonsfi_test==1', { 1021 'type': 'static_library', 1022 'sources': [ 1023 'test/launcher/test_launcher_nacl_nonsfi.cc', 1024 ], 1025 'dependencies': [ 1026 'test_support_base', 1027 ], 1028 }, { 1029 'type': 'none', 1030 }], 1031 ], 1032 }, 1033 { 1034 # GN version: //base/debug:debugging_flags 1035 # Since this generates a file, it must only be referenced in the target 1036 # toolchain or there will be multiple rules that generate the header. 1037 # When referenced from a target that might be compiled in the host 1038 # toolchain, always refer to 'base_debugging_flags#target'. 1039 'target_name': 'base_debugging_flags', 1040 'includes': [ '../build/buildflag_header.gypi' ], 1041 'variables': { 1042 'buildflag_header_path': 'base/debug/debugging_flags.h', 1043 'buildflag_flags': [ 1044 'ENABLE_PROFILING=<(profiling)', 1045 ], 1046 }, 1047 }, 1048 { 1049 # GN version: //base/win:base_win_features 1050 # Since this generates a file, it must only be referenced in the target 1051 # toolchain or there will be multiple rules that generate the header. 1052 # When referenced from a target that might be compiled in the host 1053 # toolchain, always refer to 'base_win_features#target'. 1054 'target_name': 'base_win_features', 1055 'conditions': [ 1056 ['OS=="win"', { 1057 'includes': [ '../build/buildflag_header.gypi' ], 1058 'variables': { 1059 'buildflag_header_path': 'base/win/base_features.h', 1060 'buildflag_flags': [ 1061 'SINGLE_MODULE_MODE_HANDLE_VERIFIER=<(single_module_mode_handle_verifier)', 1062 ], 1063 }, 1064 }, { 1065 'type': 'none', 1066 }], 1067 ], 1068 }, 1069 { 1070 'type': 'none', 1071 'target_name': 'base_build_date', 1072 'hard_dependency': 1, 1073 'actions': [{ 1074 'action_name': 'generate_build_date_headers', 1075 'inputs': [ 1076 '<(DEPTH)/build/write_build_date_header.py', 1077 '<(DEPTH)/build/util/LASTCHANGE' 1078 ], 1079 'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/base/generated_build_date.h' ], 1080 'action': [ 1081 'python', '<(DEPTH)/build/write_build_date_header.py', 1082 '<(SHARED_INTERMEDIATE_DIR)/base/generated_build_date.h', 1083 '<(build_type)' 1084 ] 1085 }], 1086 'conditions': [ 1087 [ 'buildtype == "Official"', { 1088 'variables': { 1089 'build_type': 'official' 1090 } 1091 }, { 1092 'variables': { 1093 'build_type': 'default' 1094 } 1095 }], 1096 ] 1097 }, 1098 ], 1099 'conditions': [ 1100 ['OS=="ios" and "<(GENERATOR)"=="ninja"', { 1101 'targets': [ 1102 { 1103 'target_name': 'test_launcher', 1104 'toolsets': ['host'], 1105 'type': 'executable', 1106 'dependencies': [ 1107 'test_support_base', 1108 ], 1109 'sources': [ 1110 'test/launcher/test_launcher_ios.cc', 1111 ], 1112 }, 1113 ], 1114 }], 1115 ['OS!="ios"', { 1116 'targets': [ 1117 { 1118 # GN: //base:check_example 1119 'target_name': 'check_example', 1120 'type': 'executable', 1121 'sources': [ 1122 'check_example.cc', 1123 ], 1124 'dependencies': [ 1125 'base', 1126 ], 1127 }, 1128 { 1129 'target_name': 'build_utf8_validator_tables', 1130 'type': 'executable', 1131 'toolsets': ['host'], 1132 'dependencies': [ 1133 'base', 1134 '../third_party/icu/icu.gyp:icuuc', 1135 ], 1136 'sources': [ 1137 'i18n/build_utf8_validator_tables.cc' 1138 ], 1139 }, 1140 ], 1141 }], 1142 ['OS == "win" and target_arch=="ia32"', { 1143 'targets': [ 1144 # The base_win64 target here allows us to use base for Win64 targets 1145 # (the normal build is 32 bits). 1146 { 1147 'target_name': 'base_win64', 1148 'type': '<(component)', 1149 'variables': { 1150 'base_target': 1, 1151 }, 1152 'dependencies': [ 1153 'base_build_date', 1154 'base_debugging_flags#target', 1155 'base_static_win64', 1156 '../third_party/modp_b64/modp_b64.gyp:modp_b64_win64', 1157 'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64', 1158 'trace_event/etw_manifest/etw_manifest.gyp:etw_manifest', 1159 ], 1160 # TODO(gregoryd): direct_dependent_settings should be shared with the 1161 # 32-bit target, but it doesn't work due to a bug in gyp 1162 'direct_dependent_settings': { 1163 'include_dirs': [ 1164 '..', 1165 ], 1166 }, 1167 'defines': [ 1168 'BASE_WIN64', 1169 '<@(nacl_win64_defines)', 1170 ], 1171 'configurations': { 1172 'Common_Base': { 1173 'msvs_target_platform': 'x64', 1174 }, 1175 }, 1176 'conditions': [ 1177 ['component == "shared_library"', { 1178 'sources!': [ 1179 'debug/debug_on_start_win.cc', 1180 ], 1181 }], 1182 ], 1183 # Specify delayload for base_win64.dll. 1184 'msvs_settings': { 1185 'VCLinkerTool': { 1186 'DelayLoadDLLs': [ 1187 'cfgmgr32.dll', 1188 'powrprof.dll', 1189 'setupapi.dll', 1190 ], 1191 'AdditionalDependencies': [ 1192 'cfgmgr32.lib', 1193 'powrprof.lib', 1194 'setupapi.lib', 1195 'userenv.lib', 1196 'winmm.lib', 1197 ], 1198 }, 1199 }, 1200 # Specify delayload for components that link with base_win64.lib. 1201 'all_dependent_settings': { 1202 'msvs_settings': { 1203 'VCLinkerTool': { 1204 'DelayLoadDLLs': [ 1205 'cfgmgr32.dll', 1206 'powrprof.dll', 1207 'setupapi.dll', 1208 ], 1209 'AdditionalDependencies': [ 1210 'cfgmgr32.lib', 1211 'powrprof.lib', 1212 'setupapi.lib', 1213 'userenv.lib', 1214 'winmm.lib', 1215 ], 1216 }, 1217 }, 1218 }, 1219 # TODO(rvargas): Bug 78117. Remove this. 1220 'msvs_disabled_warnings': [ 1221 4244, 1222 4996, 1223 4267, 1224 ], 1225 'sources': [ 1226 'auto_reset.h', 1227 'linux_util.cc', 1228 'linux_util.h', 1229 'md5.cc', 1230 'md5.h', 1231 'message_loop/message_pump_libevent.cc', 1232 'message_loop/message_pump_libevent.h', 1233 'metrics/field_trial.cc', 1234 'metrics/field_trial.h', 1235 'posix/file_descriptor_shuffle.cc', 1236 'posix/file_descriptor_shuffle.h', 1237 'sync_socket.h', 1238 'sync_socket_posix.cc', 1239 'sync_socket_win.cc', 1240 'third_party/xdg_user_dirs/xdg_user_dir_lookup.cc', 1241 'third_party/xdg_user_dirs/xdg_user_dir_lookup.h', 1242 ], 1243 }, 1244 { 1245 'target_name': 'base_i18n_nacl_win64', 1246 'type': '<(component)', 1247 # TODO(gregoryd): direct_dependent_settings should be shared with the 1248 # 32-bit target, but it doesn't work due to a bug in gyp 1249 'direct_dependent_settings': { 1250 'include_dirs': [ 1251 '..', 1252 ], 1253 }, 1254 'defines': [ 1255 '<@(nacl_win64_defines)', 1256 'BASE_I18N_IMPLEMENTATION', 1257 ], 1258 'include_dirs': [ 1259 '..', 1260 ], 1261 'sources': [ 1262 'i18n/icu_util_nacl_win64.cc', 1263 ], 1264 'configurations': { 1265 'Common_Base': { 1266 'msvs_target_platform': 'x64', 1267 }, 1268 }, 1269 }, 1270 { 1271 # TODO(rvargas): Remove this when gyp finally supports a clean model. 1272 # See bug 36232. 1273 'target_name': 'base_static_win64', 1274 'type': 'static_library', 1275 'sources': [ 1276 'base_switches.cc', 1277 'base_switches.h', 1278 'win/pe_image.cc', 1279 'win/pe_image.h', 1280 ], 1281 'sources!': [ 1282 # base64.cc depends on modp_b64. 1283 'base64.cc', 1284 ], 1285 'include_dirs': [ 1286 '..', 1287 ], 1288 'configurations': { 1289 'Common_Base': { 1290 'msvs_target_platform': 'x64', 1291 }, 1292 }, 1293 'defines': [ 1294 '<@(nacl_win64_defines)', 1295 ], 1296 # TODO(rvargas): Bug 78117. Remove this. 1297 'msvs_disabled_warnings': [ 1298 4244, 1299 ], 1300 }, 1301 ], 1302 }], 1303 ['OS == "win" and target_arch=="x64"', { 1304 'targets': [ 1305 { 1306 'target_name': 'base_profiler_test_support_library', 1307 # Must be a shared library so that it can be unloaded during testing. 1308 'type': 'shared_library', 1309 'include_dirs': [ 1310 '..', 1311 ], 1312 'sources': [ 1313 'profiler/test_support_library.cc', 1314 ], 1315 }, 1316 ] 1317 }], 1318 ['os_posix==1 and OS!="mac" and OS!="ios"', { 1319 'targets': [ 1320 { 1321 'target_name': 'symbolize', 1322 'type': 'static_library', 1323 'toolsets': ['host', 'target'], 1324 'variables': { 1325 'chromium_code': 0, 1326 }, 1327 'conditions': [ 1328 ['OS == "solaris"', { 1329 'include_dirs': [ 1330 '/usr/gnu/include', 1331 '/usr/gnu/include/libelf', 1332 ], 1333 },], 1334 ], 1335 'cflags': [ 1336 '-Wno-sign-compare', 1337 ], 1338 'cflags!': [ 1339 '-Wextra', 1340 ], 1341 'defines': [ 1342 'GLOG_BUILD_CONFIG_INCLUDE="build/build_config.h"', 1343 ], 1344 'sources': [ 1345 'third_party/symbolize/config.h', 1346 'third_party/symbolize/demangle.cc', 1347 'third_party/symbolize/demangle.h', 1348 'third_party/symbolize/glog/logging.h', 1349 'third_party/symbolize/glog/raw_logging.h', 1350 'third_party/symbolize/symbolize.cc', 1351 'third_party/symbolize/symbolize.h', 1352 'third_party/symbolize/utilities.h', 1353 ], 1354 'include_dirs': [ 1355 '..', 1356 ], 1357 'includes': [ 1358 '../build/android/increase_size_for_speed.gypi', 1359 ], 1360 }, 1361 { 1362 'target_name': 'xdg_mime', 1363 'type': 'static_library', 1364 'toolsets': ['host', 'target'], 1365 'variables': { 1366 'chromium_code': 0, 1367 }, 1368 'cflags!': [ 1369 '-Wextra', 1370 ], 1371 'sources': [ 1372 'third_party/xdg_mime/xdgmime.c', 1373 'third_party/xdg_mime/xdgmime.h', 1374 'third_party/xdg_mime/xdgmimealias.c', 1375 'third_party/xdg_mime/xdgmimealias.h', 1376 'third_party/xdg_mime/xdgmimecache.c', 1377 'third_party/xdg_mime/xdgmimecache.h', 1378 'third_party/xdg_mime/xdgmimeglob.c', 1379 'third_party/xdg_mime/xdgmimeglob.h', 1380 'third_party/xdg_mime/xdgmimeicon.c', 1381 'third_party/xdg_mime/xdgmimeicon.h', 1382 'third_party/xdg_mime/xdgmimeint.c', 1383 'third_party/xdg_mime/xdgmimeint.h', 1384 'third_party/xdg_mime/xdgmimemagic.c', 1385 'third_party/xdg_mime/xdgmimemagic.h', 1386 'third_party/xdg_mime/xdgmimeparent.c', 1387 'third_party/xdg_mime/xdgmimeparent.h', 1388 ], 1389 'includes': [ 1390 '../build/android/increase_size_for_speed.gypi', 1391 ], 1392 }, 1393 ], 1394 }], 1395 ['OS == "linux"', { 1396 'targets': [ 1397 { 1398 'target_name': 'malloc_wrapper', 1399 'type': 'shared_library', 1400 'dependencies': [ 1401 'base', 1402 ], 1403 'sources': [ 1404 'test/malloc_wrapper.cc', 1405 ], 1406 } 1407 ], 1408 }], 1409 ['OS == "android"', { 1410 'targets': [ 1411 { 1412 # GN: //base:base_jni_headers 1413 'target_name': 'base_jni_headers', 1414 'type': 'none', 1415 'sources': [ 1416 'android/java/src/org/chromium/base/ApkAssets.java', 1417 'android/java/src/org/chromium/base/ApplicationStatus.java', 1418 'android/java/src/org/chromium/base/AnimationFrameTimeHistogram.java', 1419 'android/java/src/org/chromium/base/BuildInfo.java', 1420 'android/java/src/org/chromium/base/Callback.java', 1421 'android/java/src/org/chromium/base/CommandLine.java', 1422 'android/java/src/org/chromium/base/ContentUriUtils.java', 1423 'android/java/src/org/chromium/base/ContextUtils.java', 1424 'android/java/src/org/chromium/base/CpuFeatures.java', 1425 'android/java/src/org/chromium/base/EventLog.java', 1426 'android/java/src/org/chromium/base/FieldTrialList.java', 1427 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 1428 'android/java/src/org/chromium/base/JNIUtils.java', 1429 'android/java/src/org/chromium/base/JavaHandlerThread.java', 1430 'android/java/src/org/chromium/base/LocaleUtils.java', 1431 'android/java/src/org/chromium/base/MemoryPressureListener.java', 1432 'android/java/src/org/chromium/base/PathService.java', 1433 'android/java/src/org/chromium/base/PathUtils.java', 1434 'android/java/src/org/chromium/base/PowerMonitor.java', 1435 'android/java/src/org/chromium/base/SysUtils.java', 1436 'android/java/src/org/chromium/base/SystemMessageHandler.java', 1437 'android/java/src/org/chromium/base/ThreadUtils.java', 1438 'android/java/src/org/chromium/base/TraceEvent.java', 1439 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 1440 'android/java/src/org/chromium/base/metrics/RecordHistogram.java', 1441 'android/java/src/org/chromium/base/metrics/RecordUserAction.java', 1442 ], 1443 'variables': { 1444 'jni_gen_package': 'base', 1445 }, 1446 'dependencies': [ 1447 'android_runtime_jni_headers', 1448 ], 1449 'includes': [ '../build/jni_generator.gypi' ], 1450 }, 1451 { 1452 # GN: //base:android_runtime_jni_headers 1453 'target_name': 'android_runtime_jni_headers', 1454 'type': 'none', 1455 'variables': { 1456 'jni_gen_package': 'base', 1457 'input_java_class': 'java/lang/Runtime.class', 1458 }, 1459 'includes': [ '../build/jar_file_jni_generator.gypi' ], 1460 }, 1461 { 1462 # GN: //base:base_unittests_jni_headers 1463 'target_name': 'base_unittests_jni_headers', 1464 'type': 'none', 1465 'sources': [ 1466 'test/android/java/src/org/chromium/base/ContentUriTestUtils.java', 1467 'test/android/java/src/org/chromium/base/TestUiThread.java', 1468 ], 1469 'variables': { 1470 'jni_gen_package': 'base', 1471 }, 1472 'includes': [ '../build/jni_generator.gypi' ], 1473 }, 1474 { 1475 # GN: //base:base_native_libraries_gen 1476 'target_name': 'base_native_libraries_gen', 1477 'type': 'none', 1478 'sources': [ 1479 'android/java/templates/NativeLibraries.template', 1480 ], 1481 'variables': { 1482 'package_name': 'org/chromium/base/library_loader', 1483 'template_deps': [], 1484 }, 1485 'includes': [ '../build/android/java_cpp_template.gypi' ], 1486 }, 1487 { 1488 # GN: //base:base_build_config_gen 1489 'target_name': 'base_build_config_gen', 1490 'type': 'none', 1491 'sources': [ 1492 'android/java/templates/BuildConfig.template', 1493 ], 1494 'variables': { 1495 'package_name': 'org/chromium/base', 1496 'template_deps': [], 1497 }, 1498 'includes': ['../build/android/java_cpp_template.gypi'], 1499 }, 1500 { 1501 # GN: //base:base_android_java_enums_srcjar 1502 'target_name': 'base_java_library_process_type', 1503 'type': 'none', 1504 'variables': { 1505 'source_file': 'android/library_loader/library_loader_hooks.h', 1506 }, 1507 'includes': [ '../build/android/java_cpp_enum.gypi' ], 1508 }, 1509 { 1510 # GN: //base:base_java 1511 'target_name': 'base_java', 1512 'type': 'none', 1513 'variables': { 1514 'java_in_dir': 'android/java', 1515 'jar_excluded_classes': [ 1516 '*/BuildConfig.class', 1517 '*/NativeLibraries.class', 1518 ], 1519 }, 1520 'dependencies': [ 1521 'base_java_application_state', 1522 'base_java_library_load_from_apk_status_codes', 1523 'base_java_library_process_type', 1524 'base_java_memory_pressure_level', 1525 'base_build_config_gen', 1526 'base_native_libraries_gen', 1527 '../third_party/android_tools/android_tools.gyp:android_support_multidex_javalib', 1528 '../third_party/jsr-305/jsr-305.gyp:jsr_305_javalib', 1529 ], 1530 'all_dependent_settings': { 1531 'variables': { 1532 'generate_build_config': 1, 1533 }, 1534 }, 1535 'includes': [ '../build/java.gypi' ], 1536 }, 1537 { 1538 # GN: //base:base_java_unittest_support 1539 'target_name': 'base_java_unittest_support', 1540 'type': 'none', 1541 'dependencies': [ 1542 'base_java', 1543 ], 1544 'variables': { 1545 'java_in_dir': '../base/test/android/java', 1546 }, 1547 'includes': [ '../build/java.gypi' ], 1548 }, 1549 { 1550 # GN: //base:base_android_java_enums_srcjar 1551 'target_name': 'base_java_application_state', 1552 'type': 'none', 1553 'variables': { 1554 'source_file': 'android/application_status_listener.h', 1555 }, 1556 'includes': [ '../build/android/java_cpp_enum.gypi' ], 1557 }, 1558 { 1559 # GN: //base:base_android_java_enums_srcjar 1560 'target_name': 'base_java_library_load_from_apk_status_codes', 1561 'type': 'none', 1562 'variables': { 1563 'source_file': 'android/library_loader/library_load_from_apk_status_codes.h' 1564 }, 1565 'includes': [ '../build/android/java_cpp_enum.gypi' ], 1566 }, 1567 { 1568 # GN: //base:base_android_java_enums_srcjar 1569 'target_name': 'base_java_memory_pressure_level', 1570 'type': 'none', 1571 'variables': { 1572 'source_file': 'memory/memory_pressure_listener.h', 1573 }, 1574 'includes': [ '../build/android/java_cpp_enum.gypi' ], 1575 }, 1576 { 1577 # GN: //base:base_java_test_support 1578 'target_name': 'base_java_test_support', 1579 'type': 'none', 1580 'dependencies': [ 1581 'base_java', 1582 '../testing/android/on_device_instrumentation.gyp:reporter_java', 1583 ], 1584 'variables': { 1585 'java_in_dir': '../base/test/android/javatests', 1586 }, 1587 'includes': [ '../build/java.gypi' ], 1588 }, 1589 { 1590 # TODO(jbudorick): Remove this once we roll to robolectric 3.0 and pull 1591 # in the multidex shadow library. crbug.com/522043 1592 # GN: //base:base_junit_test_support 1593 'target_name': 'base_junit_test_support', 1594 'type': 'none', 1595 'dependencies': [ 1596 'base_build_config_gen', 1597 '../testing/android/junit/junit_test.gyp:junit_test_support', 1598 '../third_party/android_tools/android_tools.gyp:android_support_multidex_javalib', 1599 ], 1600 'variables': { 1601 'src_paths': [ 1602 '../base/test/android/junit/src/org/chromium/base/test/shadows/ShadowMultiDex.java', 1603 ], 1604 }, 1605 'includes': [ '../build/host_jar.gypi' ] 1606 }, 1607 { 1608 # GN: //base:base_junit_tests 1609 'target_name': 'base_junit_tests', 1610 'type': 'none', 1611 'dependencies': [ 1612 'base_java', 1613 'base_java_test_support', 1614 'base_junit_test_support', 1615 '../testing/android/junit/junit_test.gyp:junit_test_support', 1616 ], 1617 'variables': { 1618 'main_class': 'org.chromium.testing.local.JunitTestMain', 1619 'src_paths': [ 1620 '../base/android/junit/', 1621 '../base/test/android/junit/src/org/chromium/base/test/util/DisableIfTest.java', 1622 '../base/test/android/junit/src/org/chromium/base/test/util/MinAndroidSdkLevelSkipCheckTest.java', 1623 '../base/test/android/junit/src/org/chromium/base/test/util/RestrictionSkipCheckTest.java', 1624 '../base/test/android/junit/src/org/chromium/base/test/util/SkipCheckTest.java', 1625 ], 1626 'test_type': 'junit', 1627 'wrapper_script_name': 'helper/<(_target_name)', 1628 }, 1629 'includes': [ 1630 '../build/android/test_runner.gypi', 1631 '../build/host_jar.gypi', 1632 ], 1633 }, 1634 { 1635 # GN: //base:base_javatests 1636 'target_name': 'base_javatests', 1637 'type': 'none', 1638 'dependencies': [ 1639 'base_java', 1640 'base_java_test_support', 1641 ], 1642 'variables': { 1643 'java_in_dir': '../base/android/javatests', 1644 }, 1645 'includes': [ '../build/java.gypi' ], 1646 }, 1647 { 1648 # GN: //base/android/linker:chromium_android_linker 1649 'target_name': 'chromium_android_linker', 1650 'type': 'shared_library', 1651 'sources': [ 1652 'android/linker/android_dlext.h', 1653 'android/linker/legacy_linker_jni.cc', 1654 'android/linker/legacy_linker_jni.h', 1655 'android/linker/linker_jni.cc', 1656 'android/linker/linker_jni.h', 1657 'android/linker/modern_linker_jni.cc', 1658 'android/linker/modern_linker_jni.h', 1659 ], 1660 # The crazy linker is never instrumented. 1661 'cflags!': [ 1662 '-finstrument-functions', 1663 ], 1664 'dependencies': [ 1665 # The NDK contains the crazy_linker here: 1666 # '<(android_ndk_root)/crazy_linker.gyp:crazy_linker' 1667 # However, we use our own fork. See bug 384700. 1668 '../third_party/android_crazy_linker/crazy_linker.gyp:crazy_linker', 1669 ], 1670 }, 1671 { 1672 # GN: //base:base_perftests_apk 1673 'target_name': 'base_perftests_apk', 1674 'type': 'none', 1675 'dependencies': [ 1676 'base_perftests', 1677 ], 1678 'variables': { 1679 'test_suite_name': 'base_perftests', 1680 }, 1681 'includes': [ '../build/apk_test.gypi' ], 1682 }, 1683 { 1684 # GN: //base:base_unittests_apk 1685 'target_name': 'base_unittests_apk', 1686 'type': 'none', 1687 'dependencies': [ 1688 'base_java', 1689 'base_unittests', 1690 ], 1691 'variables': { 1692 'test_suite_name': 'base_unittests', 1693 'isolate_file': 'base_unittests.isolate', 1694 }, 1695 'includes': [ '../build/apk_test.gypi' ], 1696 }, 1697 ], 1698 'conditions': [ 1699 ['test_isolation_mode != "noop"', 1700 { 1701 'targets': [ 1702 { 1703 'target_name': 'base_unittests_apk_run', 1704 'type': 'none', 1705 'dependencies': [ 1706 'base_unittests_apk', 1707 ], 1708 'includes': [ 1709 '../build/isolate.gypi', 1710 ], 1711 'sources': [ 1712 'base_unittests_apk.isolate', 1713 ], 1714 }, 1715 ] 1716 } 1717 ], 1718 ], 1719 }], 1720 ['OS == "win"', { 1721 'targets': [ 1722 { 1723 # Target to manually rebuild pe_image_test.dll which is checked into 1724 # base/test/data/pe_image. 1725 'target_name': 'pe_image_test', 1726 'type': 'shared_library', 1727 'sources': [ 1728 'win/pe_image_test.cc', 1729 ], 1730 'msvs_settings': { 1731 'VCLinkerTool': { 1732 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS 1733 'DelayLoadDLLs': [ 1734 'cfgmgr32.dll', 1735 'shell32.dll', 1736 ], 1737 'AdditionalDependencies': [ 1738 'cfgmgr32.lib', 1739 'shell32.lib', 1740 ], 1741 }, 1742 }, 1743 }, 1744 { 1745 'target_name': 'scoped_handle_test_dll', 1746 'type': 'loadable_module', 1747 'dependencies': [ 1748 'base', 1749 ], 1750 'sources': [ 1751 'win/scoped_handle_test_dll.cc', 1752 ], 1753 }, 1754 ], 1755 }], 1756 ['test_isolation_mode != "noop"', { 1757 'targets': [ 1758 { 1759 'target_name': 'base_unittests_run', 1760 'type': 'none', 1761 'dependencies': [ 1762 'base_unittests', 1763 ], 1764 'includes': [ 1765 '../build/isolate.gypi', 1766 ], 1767 'sources': [ 1768 'base_unittests.isolate', 1769 ], 1770 }, 1771 ], 1772 }], 1773 ['OS == "ios" or OS == "mac"', { 1774 'targets': [ 1775 { 1776 'target_name': 'base_unittests_arc', 1777 'type': 'static_library', 1778 'dependencies': [ 1779 'base', 1780 '../testing/gtest.gyp:gtest', 1781 ], 1782 'sources': [ 1783 'mac/bind_objc_block_unittest_arc.mm', 1784 'mac/scoped_nsobject_unittest_arc.mm' 1785 ], 1786 'xcode_settings': { 1787 'CLANG_ENABLE_OBJC_ARC': 'YES', 1788 }, 1789 'target_conditions': [ 1790 ['OS == "ios" and _toolset != "host"', { 1791 'sources/': [ 1792 ['include', 'mac/bind_objc_block_unittest_arc\\.mm$'], 1793 ['include', 'mac/scoped_nsobject_unittest_arc\\.mm$'], 1794 ], 1795 }] 1796 ], 1797 }, 1798 ], 1799 }], 1800 ], 1801 } 1802