# Copyright (c) 2013 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # This is the root build file for GN. GN will start processing by loading this # file, and recursively load all dependencies until all dependencies are either # resolved or known not to exist (which will cause the build to fail). So if # you add a new build file, there must be some path of dependencies from this # file to your new one or GN won't know about it. import("//build/config/features.gni") import("//build/config/sanitizers/sanitizers.gni") import("//build/config/ui.gni") import("//build_overrides/v8.gni") import("//media/media_options.gni") import("//third_party/openh264/openh264_args.gni") if (is_android) { import("//build/config/android/config.gni") } declare_args() { # A list of extra dependencies to add to the root target. This allows a # checkout to add additional targets without explicitly changing any checked- # in files. root_extra_deps = [] } # This file defines the following five main targets: # # "both_gn_and_gyp" should list every root target (target that nothing else # depends on) built by GN that is also built in the GYP build. # # "gn_all" should (transitively) cause everything to be built; if you run # 'ninja gn_all' and then 'ninja all', the second build should do no work. # # "gn_only" should list every root target that is *not* intended to be built in # a GYP build. Because GN has different rules for deciding what an 'all' build # is, this may end up including targets that are actually defined in a GYP # build but not dependencies of GYP's "all" (and so not actually built). # # "gn_visibility": targets that are normally not visible to top-level targets, # but are built anyway by "all". Since we don't want any such targets, we have # this placeholder to make sure hidden targets that aren't otherwise depended # on yet are accounted for. # # "All" is an alias for "gn_all". It exists for bot compatibility w/ GYP for # the iOS bots and the official builders, but should not be generally used # during the GYP->GN migration. We cannot guarantee that GN's "All" builds the # same set of targets as GYP's "All" does, because GYP's "All" supports # wildcards. # # Lastly, none of these targets are guaranteed to be the same as what ninja # will build with "all". For more on how "all" works and the differences in how # GYP and GN determine "all", see crbug.com/503241. # # TODO(GYP): crbug.com/481694. Make sure that the above is true and there are # scripts run on the bots that enforce this. Once the GYP migration is over, we # can collapse all of these targets as desired. group("gn_all") { testonly = true deps = [ ":both_gn_and_gyp", ":gn_only", ":gn_visibility", ] } # TODO(GYP): This target exists for compatibility with GYP, specifically # for the iOS bots and the official builders. group("All") { testonly = true deps = [ ":gn_all", ] } # The "both_gn_and_gyp" target should reflect every target that is built # in both the GN and GYP builds, and ideally it should match the # "both_gn_and_gyp" target in build/gn_migration.gypi line-for-line. # # TODO(GYP): Add build steps that check and enforce this on the bots. group("both_gn_and_gyp") { testonly = true deps = [ "//base:base_unittests", "//chrome/installer", "//components:components_unittests", "//net:net_unittests", "//skia:skia_unittests", "//sql:sql_unittests", "//sync:sync_unit_tests", "//ui/base:ui_base_unittests", "//ui/gfx:gfx_unittests", "//url:url_unittests", ] if (!is_ios && !is_android && !is_chromecast) { deps += [ "//chrome", "//chrome/test:browser_tests", "//chrome/test:interactive_ui_tests", "//chrome/test:sync_integration_tests", "//chrome/test/chromedriver:chromedriver_unittests", "//crypto:crypto_unittests", "//extensions:extensions_browsertests", "//extensions:extensions_unittests", "//google_apis/gcm:gcm_unit_tests", "//gpu/gles2_conform_support:gles2_conform_test", "//jingle:jingle_unittests", "//net:hpack_example_generator", "//net:hpack_fuzz_mutator", "//net:hpack_fuzz_wrapper", "//ppapi:ppapi_unittests", "//ppapi/examples/2d", "//ppapi/examples/audio", "//ppapi/examples/audio_input", "//ppapi/examples/compositor", "//ppapi/examples/crxfs", "//ppapi/examples/enumerate_devices", "//ppapi/examples/file_chooser", "//ppapi/examples/flash_topmost", "//ppapi/examples/font", "//ppapi/examples/gamepad", "//ppapi/examples/gles2", "//ppapi/examples/gles2_spinning_cube", "//ppapi/examples/ime", "//ppapi/examples/input", "//ppapi/examples/media_stream_audio", "//ppapi/examples/media_stream_video", "//ppapi/examples/mouse_cursor", "//ppapi/examples/mouse_lock", "//ppapi/examples/printing", "//ppapi/examples/scaling", "//ppapi/examples/scripting", "//ppapi/examples/stub", "//ppapi/examples/threading", "//ppapi/examples/url_loader", "//ppapi/examples/video_capture", "//ppapi/examples/video_decode", "//ppapi/examples/video_effects", "//ppapi/examples/video_encode", "//printing:printing_unittests", "//third_party/cacheinvalidation:cacheinvalidation_unittests", "//third_party/codesighs", "//third_party/pdfium/samples:pdfium_test", "//tools/battor_agent", "//tools/battor_agent:battor_agent_unittests", "//tools/gn", "//tools/gn:gn_unittests", "//tools/perf/clear_system_cache", "//ui/accessibility:accessibility_unittests", "//ui/app_list:app_list_unittests", ] } if (!is_ios) { # TODO(GYP): Figure out which of these should actually build on iOS, # and whether there should be other targets that are iOS-only and missing. deps += [ "//cc:cc_unittests", "//chrome/test:unit_tests", "//components:components_browsertests", "//content/shell:content_shell", "//content/test:content_browsertests", "//content/test:content_perftests", "//content/test:content_unittests", "//device:device_unittests", "//gpu:gpu_unittests", "//ipc:ipc_tests", "//ipc/mojo:ipc_mojo_unittests", "//media:media_unittests", "//media/cast:cast_unittests", "//media/midi:midi_unittests", "//mojo", "//mojo/common:mojo_common_unittests", "//mojo/edk/system:mojo_system_unittests", "//mojo/edk/test:mojo_public_bindings_unittests", "//mojo/edk/test:mojo_public_environment_unittests", "//mojo/edk/test:mojo_public_system_unittests", "//mojo/edk/test:mojo_public_utility_unittests", "//mojo/shell/public/cpp", "//net:net_perftests", "//third_party/WebKit/Source/platform:blink_heap_unittests", "//third_party/WebKit/Source/platform:blink_platform_unittests", "//third_party/WebKit/Source/web:webkit_unit_tests", "//third_party/WebKit/Source/wtf:wtf_unittests", "//third_party/catapult/telemetry:bitmaptools($host_toolchain)", "//third_party/smhasher:pmurhash", "//tools/imagediff($host_toolchain)", "//ui/display:display_unittests", "//ui/events:events_unittests", "//ui/gl:gl_unittests", "//ui/touch_selection:ui_touch_selection_unittests", ] } else { deps += [ #"//ios/chrome:ios_chrome_unittests", TODO(GYP) #"//ios/chrome/app", TODO(GYP) #"//ios/chrome/browser", TODO(GYP) "//ios/chrome/common", "//ios/net:ios_net_unittests", "//ios/public/provider/chrome/browser", "//ios/public/provider/web", "//ios/testing:ocmock_support_unittest", "//ios/third_party/fishhook", "//ios/third_party/ochamcrest", "//ios/web:ios_web_unittests", "//ios/web/shell:ios_web_shell", ] } deps += root_extra_deps if (enable_extensions) { deps += [ "//extensions/shell:app_shell_unittests" ] } if (enable_media_router) { deps += [ "//chrome/browser/media/router" ] } if (enable_remoting) { deps += [ "//remoting:remoting_all" ] } if (toolkit_views) { deps += [ "//ui/views:views_unittests" ] } if (use_aura) { deps += [ "//ash:ash_shell_with_content", "//ash:ash_unittests", "//ui/aura:aura_unittests", "//ui/aura:bench", "//ui/aura:demo", "//ui/wm:wm_unittests", ] } if (use_ozone) { deps += [ "//ui/ozone" ] } if (use_x11) { deps += [ "//tools/xdisplaycheck" ] } if (enable_configuration_policy) { deps += [ "//components/policy:policy_templates" ] } if (v8_use_external_startup_data) { deps += [ "//gin:gin_v8_snapshot_fingerprint" ] } if (is_win) { deps += [ "//chrome/installer/gcapi", "//chrome/tools/build/win/syzygy:chrome_dll_syzygy", ] } if (is_android) { deps += [ "//base:base_junit_tests", "//base/android/linker:chromium_android_linker", "//build/android/gyp/test:hello_world", "//build/android/rezip", "//components/invalidation/impl:components_invalidation_impl_junit_tests", "//components/policy/android:components_policy_junit_tests", "//content/public/android:content_junit_tests", "//content/shell/android:content_shell_apk", "//content/test:video_decode_accelerator_unittest", "//net/android:net_junit_tests", "//testing/android/junit:junit_unittests", "//third_party/android_tools:uiautomator_java", "//third_party/errorprone:chromium_errorprone", "//third_party/smhasher:murmurhash3", "//tools/android:android_tools", "//tools/android:memconsumer", "//tools/android/heap_profiler:heap_profiler_unittests", "//tools/android/kerberos/SpnegoAuthenticator:spnego_authenticator_apk", "//tools/cygprofile:cygprofile_unittests", "//tools/imagediff($host_toolchain)", "//ui/android:ui_junit_tests", ] deps -= [ "//net:net_perftests", "//url:url_unittests", ] if (!is_component_build) { deps += [ "//components/cronet/android:cronet_package", "//components/cronet/android:cronet_sample_apk", "//components/cronet/android:cronet_sample_test_apk", "//components/cronet/android:cronet_test_apk", "//components/cronet/android:cronet_test_instrumentation_apk", "//components/cronet/android:cronet_unittests", ] } if (!is_chromecast) { deps += [ "//android_webview", "//android_webview/test", "//android_webview/tools", "//chrome/android:chrome_junit_tests", "//chrome/android:chrome_public_apk", "//chrome/android:chrome_public_test_apk", "//chrome/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk", "//content/shell/android:content_shell_test_apk", "//third_party/custom_tabs_client:custom_tabs_client_example_apk", ] } if (target_cpu != "x64") { deps += [ "//third_party/android_platform:android_relocation_packer_unittests($host_toolchain)" ] } if (has_chrome_android_internal) { deps += [ "//clank" ] # TODO(GYP) ?? } } if (is_linux || is_android) { # TODO(GYP): || is_bsd? deps += [ "//breakpad:breakpad_unittests", "//breakpad:core-2-minidump", "//breakpad:generate_test_dump", "//breakpad:minidump-2-core", ] } if (is_chromeos) { deps += [ "//chromeos:chromeos_unittests", "//ui/chromeos:ui_chromeos_unittests", ] } if (is_chromeos || is_mac || is_win) { deps += [ "//rlz:rlz_id", "//rlz:rlz_lib", "//rlz:rlz_unittests", ] } if (is_linux) { # The following are definitely linux-only. deps += [ "//chrome:manpage", "//chrome:xdg_mime", "//dbus:dbus_test_server", "//dbus:dbus_unittests", "//net:disk_cache_memory_test", "//net:flip_in_mem_edsm_server", "//net:flip_in_mem_edsm_server_unittests", "//net:quic_client", "//net:quic_server", "//sandbox/linux:chrome_sandbox", "//sandbox/linux:sandbox_linux_unittests", ] if (is_chromeos || use_ash) { deps += [ "//components/session_manager/core" ] } if (is_chrome_branded && is_official_build) { # TODO(dpranke): add the linux_dump_symbols flag? deps += [ "//chrome:linux_symbols" ] } } if (is_ios || is_win || (is_linux && !is_chromeos)) { deps += [ "//base:base_i18n_perftests", "//base:base_perftests", "//google_apis:google_apis_unittests", ] } if (is_android || is_win || (is_linux && !is_chromeos)) { deps += [ "//base:build_utf8_validator_tables", "//base:check_example", "//cc:cc_perftests", "//cc/blink:cc_blink_unittests", "//components:components_perftests", "//content/test:content_gl_benchmark", "//content/test:content_gl_tests", "//device:device_unittests", "//gin:gin_shell", "//gin:gin_unittests", "//google_apis/gcm:mcs_probe", "//gpu:gl_tests", "//gpu:gpu_perftests", "//ipc:ipc_perftests", "//media:media_perftests", "//net:dump_cache", "//sync:run_sync_testserver", "//third_party/codesighs:maptsvdifftool", "//third_party/libphonenumber:libphonenumber_unittests", "//ui/compositor:compositor_unittests", ] # TODO(GYP): Figure out which of these should (and can) build # for chromeos/mac/ios. if (!is_android) { deps += [ "//chrome/test:load_library_perf_tests", "//chrome/test:sync_performance_tests", "//chrome/test/chromedriver:chromedriver", "//chrome/test/chromedriver:chromedriver_tests", "//courgette:courgette", "//courgette:courgette_fuzz", "//courgette:courgette_minimal_tool", "//courgette:courgette_unittests", "//media/cast:generate_barcode_video", "//media/cast:generate_timecode_audio", "//net:crash_cache", "//net:crl_set_dump", "//net:dns_fuzz_stub", "//net:gdig", "//net:get_server_time", "//net:net_watcher", # TODO(GYP): This should be conditional on use_v8_in_net "//net:run_testserver", "//net:stress_cache", "//net:tld_cleanup", "//ppapi:pepper_hash_for_uma", "//ppapi:ppapi_perftests", "//third_party/angle/src/tests:angle_unittests", "//third_party/leveldatabase:env_chromium_unittests", "//third_party/libaddressinput:libaddressinput_unittests", ] } if (!is_android && !is_linux) { # TODO(dpranke): Re-enable this once # https://chromium-review.googlesource.com/#/c/312298/1 is rolled # into chromium. deps += [ "//third_party/angle/src/tests:angle_end2end_tests" ] } if (enable_extensions) { deps += [ "//extensions/shell:app_shell" ] } if (enable_nacl) { deps += [ "//components/nacl/loader:nacl_loader_unittests" ] if (is_linux) { # TODO(dpranke): Figure out what platforms should actually have this. deps += [ "//components/nacl/loader:helper_nonsfi", "//components/nacl/loader:nacl_helper", "//components/nacl/loader:nacl_helper_nonsfi_unittests", ] } } if (media_use_ffmpeg && !is_android) { deps += [ "//media:ffmpeg_regression_tests" ] } } if (is_android || (is_linux && !is_chromeos)) { deps += [ # TODO(GYP): Figure out which of these should (and can) build # under which other conditions. "//breakpad:dump_syms($host_toolchain)", "//breakpad:microdump_stackwalk($host_toolchain)", "//breakpad:minidump_dump($host_toolchain)", "//breakpad:minidump_stackwalk($host_toolchain)", "//components/network_hints/browser", "//content/public/app:browser", "//content/public/app:child", # TODO(GYP): Remove this when the gles2 tests work "//gpu/command_buffer/client:gles2_implementation_no_check", "//gpu/khronos_glcts_support:khronos_glcts_test", # TODO(GYP) crbug.com/471903 to make this complete. "//mojo/edk/test:mojo_public_system_perftests", "//mojo/shell/public/cpp", "//testing/gmock:gmock_main", "//third_party/codesighs:nm2tsv", ] if (!is_android) { deps += [ "//build/sanitizers:copy_llvm_symbolizer", "//chrome/test:chrome_app_unittests", "//media/cast:cast_benchmarks", "//media/cast:tap_proxy", "//skia:filter_fuzz_stub", "//skia:image_operations_bench", "//sync/tools:sync_client", "//sync/tools:sync_listen_notifications", "//third_party/sqlite:sqlite_shell", "//ui/keyboard:keyboard_unittests", "//ui/message_center:message_center_unittests", "//ui/snapshot:snapshot_unittests", "//ui/views/examples:views_examples_with_content_exe", ] if (!is_debug && !is_component_build) { deps += [ "//chrome/tools/service_discovery_sniffer" ] } } if (toolkit_views) { deps += [ "//ui/app_list:app_list_demo" ] } if (use_x11) { if (target_cpu != "arm") { deps += [ "//gpu/tools/compositor_model_bench" ] } } } if (is_mac) { deps += [ "//breakpad:crash_inspector", "//breakpad:dump_syms", "//third_party/apple_sample_code", "//third_party/molokocacao", ] deps -= [ # Mojo in GN contains some things which are never compiled in GYP on Mac, # so compilation fails on Mac. They need porting. "//mojo", ] } if (is_win) { deps += [ "//base:pe_image_test", "//chrome/installer/setup:setup_unittests", "//chrome_elf:chrome_elf_unittests", "//chrome_elf:dll_hash_main", "//components/wifi:wifi_test", "//net:quic_client", "//net:quic_server", "//sandbox/win:pocdll", "//sandbox/win:sandbox_poc", "//sandbox/win:sbox_integration_tests", "//sandbox/win:sbox_unittests", "//sandbox/win:sbox_validation_tests", "//testing/gtest:gtest_main", "//third_party/codesighs:msmap2tsv", "//third_party/pdfium/samples:pdfium_diff", "//ui/metro_viewer", ] deps -= [ "//crypto:crypto_unittests", # TODO(GYP) "//net:net_unittests", # TODO(GYP) ] } else if (!is_android && !is_ios) { deps += [ "//breakpad:symupload($host_toolchain)" ] } if (is_chromecast) { deps += [ "//chromecast:cast_shell" ] } if (is_mac) { # TODO(GYP) || is_ios deps += [ "//media/cast:cast_h264_vt_encoder_unittests" ] } if (use_openh264) { deps += [ "//third_party/openh264:common", "//third_party/openh264:encoder", "//third_party/openh264:processing", ] } } # This group contains all the targets needed to run mojo's apptest_runner. group("mojo_apptests") { testonly = true deps = [] if (is_win || is_linux) { deps += [ "//components/filesystem:apptests", "//components/leveldb:apptests", "//components/mus/ws:tests", "//components/resource_provider:apptests", "//components/resource_provider:resource_provider_unittests", "//mash/wm:tests", "//media/mojo/services:tests", "//mojo/services/network:apptests", "//mojo/shell/tests:apptests", "//ui/views/mus:tests", ] } } group("gn_only") { testonly = true deps = [] if (!is_ios) { deps += [ "//mojo/common:mojo_common_perftests" ] } if (!is_android && !is_ios && !is_chromeos) { deps += [ "//components/proximity_auth:proximity_auth_unittests" ] } if (is_win || is_linux) { deps += [ ":mojo_apptests", "//mash:all", "//mojo", ] } if (is_win && use_drfuzz) { # build libfuzzer fuzzers on Windows to run with Dr. Fuzz deps += [ "//testing/libfuzzer/fuzzers", "//testing/libfuzzer/tests:libfuzzer_tests", ] } if (is_linux && !is_chromeos && !is_chromecast) { # TODO(GYP): Figure out if any of these should be in gn_all # and figure out how cross-platform they are deps += [ ":gn_mojo_targets", "//chrome/browser/resources:extension_resource_demo", "//chrome/installer/util:strings", "//chrome/tools/convert_dict", "//components/constrained_window:unit_tests", "//components/metrics:serialization", "//components/password_manager/content/renderer:browser_tests", "//components/rappor:unit_tests", "//components/sessions:unit_tests", "//media/blink:media_blink_unittests", "//media/cast:udp_proxy", "//native_client/src/trusted/debug_stub:gdb_rsp_unittest", "//storage/browser:dump_file_system", "//testing/libfuzzer/fuzzers", "//testing/libfuzzer/tests:libfuzzer_tests", "//third_party/angle:libANGLE", "//third_party/angle:libEGL", "//third_party/angle:libGLESv2", "//third_party/cld_2:cld_2_dynamic_data_tool", "//third_party/leveldatabase:leveldb_arena_test", "//third_party/leveldatabase:leveldb_bloom_test", "//third_party/leveldatabase:leveldb_cache_test", "//third_party/leveldatabase:leveldb_corruption_test", "//third_party/leveldatabase:leveldb_crc32c_test", "//third_party/leveldatabase:leveldb_db_bench", "//third_party/leveldatabase:leveldb_db_test", "//third_party/leveldatabase:leveldb_dbformat_test", "//third_party/leveldatabase:leveldb_env_test", "//third_party/leveldatabase:leveldb_filename_test", "//third_party/leveldatabase:leveldb_filter_block_test", "//third_party/leveldatabase:leveldb_log_test", "//third_party/leveldatabase:leveldb_skiplist_test", "//third_party/leveldatabase:leveldb_table_test", "//third_party/leveldatabase:leveldb_version_edit_test", "//third_party/leveldatabase:leveldb_write_batch_test", "//third_party/libjpeg_turbo:simd", "//third_party/libsrtp:rdbx_driver", "//third_party/libsrtp:replay_driver", "//third_party/libsrtp:roc_driver", "//third_party/libsrtp:rtpw", "//third_party/libsrtp:srtp_driver", "//third_party/libsrtp:srtp_driver", "//third_party/libsrtp:srtp_test_aes_calc", "//third_party/libsrtp:srtp_test_cipher_driver", "//third_party/libsrtp:srtp_test_datatypes_driver", "//third_party/libsrtp:srtp_test_env", "//third_party/libsrtp:srtp_test_kernel_driver", "//third_party/libsrtp:srtp_test_rand_gen", "//third_party/libsrtp:srtp_test_sha1_driver", "//third_party/libsrtp:srtp_test_stat_driver", "//third_party/opus:opus_compare", "//third_party/opus:opus_demo", "//third_party/opus:test_opus_api", "//third_party/opus:test_opus_decode", "//third_party/opus:test_opus_encode", "//third_party/opus:test_opus_padding", "//third_party/pdfium/third_party:fx_freetype", "//third_party/webrtc/system_wrappers:field_trial_default", "//third_party/webrtc/system_wrappers:metrics_default", "//ui/display/types", "//ui/shell_dialogs:shell_dialogs_unittests", "//ui/views/examples:views_examples_exe", ] if (target_cpu == "x86" || target_cpu == "x64") { if (!is_android) { deps += [ "//chrome/test:load_library_perf_tests" ] } deps += [ "//native_client/src/trusted/platform_qualify:vcpuid", "//third_party/libjpeg_turbo:simd_asm", ] } if (use_ozone) { deps += [ "//ui/ozone/demo" ] } if (is_linux && current_toolchain == host_toolchain) { deps += [ "//v8:d8" ] } } if (enable_nacl) { deps += [ "//native_client_sdk/src:nacl_core_sdk" ] } if (is_android) { deps += [ "//build/android/gyp/test:hello_world", "//build/android/incremental_install:bootstrap_java", ] } if (is_linux && use_ozone) { deps += [ "//headless", "//headless:headless_tests", ] } if (!is_chromecast && (is_android || is_linux || is_chromeos)) { deps += [ "//blimp", "//blimp:blimp_tests", ] } } group("gn_mojo_targets") { testonly = true if (is_linux && !is_chromeos) { # TODO(GYP): Figure out if any of these should be in gn_all # and figure out how cross-platform they are deps = [ "//ipc/mojo:ipc_mojo_perftests", "//media/mojo:tests", "//media/mojo/services:cdm_service", "//mojo:tests", ] } } group("gn_visibility") { deps = [ "//build/config/sanitizers:options_sources", # "//third_party/pdfium:pdfium_embeddertests", # TODO(GYP): visibility? # "//third_party/pdfium:pdfium_unittests", # TODO(GYP): visibility? "//ui/resources:repack_ui_test_mac_locale_pack", ] if (!is_ios) { deps += [ "//v8:postmortem-metadata", "//v8:v8_snapshot", ] } } if (!is_ios) { # This group includes all of the targets needed to build and test Blink, # including running the layout tests (see below). group("blink_tests") { testonly = true deps = [ "//third_party/WebKit/public:all_blink", ] # NOTE: The following deps are needed to run the layout tests # (run-webkit-tests) but there is no GN target for the layout tests, # so we need to specify the dependencies here instead. if (is_android) { deps += [ "//breakpad:breakpad_unittests_deps", "//breakpad:dump_syms($host_toolchain)", "//breakpad:microdump_stackwalk($host_toolchain)", "//breakpad:minidump_dump($host_toolchain)", "//breakpad:minidump_stackwalk($host_toolchain)", "//breakpad:symupload($host_toolchain)", "//content/shell/android:content_shell_apk", "//tools/imagediff($host_toolchain)", ] } else { deps += [ "//content/shell:content_shell", "//tools/imagediff", ] } if (is_win) { deps += [ "//components/test_runner:layout_test_helper", "//content/shell:content_shell_crash_service", ] } if (!is_win && !is_android) { deps += [ "//breakpad:minidump_stackwalk($host_toolchain)" ] } if (is_mac) { deps += [ "//breakpad:dump_syms($host_toolchain)", "//components/test_runner:layout_test_helper", ] } if (is_linux) { deps += [ "//breakpad:dump_syms($host_toolchain)" ] } } } # Add a dummy target for compatibility w/ GYP group("chromium_swarm_tests") { } group("chromium_builder_perf") { testonly = true # TODO(GYP): Make this target work on the mac. if (!is_ios && !is_android && !is_chromecast && !is_mac) { deps = [ "//cc:cc_perftests", "//chrome", "//chrome/test:load_library_perf_tests", "//chrome/test:sync_performance_tests", "//gpu:gpu_perftests", "//media:media_perftests", "//media/midi:midi_unittests", "//third_party/catapult/telemetry:bitmaptools", ] if (!is_chromeos) { deps += [ "//chrome/test:performance_browser_tests" ] } if (is_linux && !is_chromeos) { if (is_official_build) { # In GN builds, this is controlled by the 'linux_dump_symbols' # flag, which defaults to 1 for official builds. For now, # we skip the separate flag and just key off of is_official_build. deps += [ "//chrome:linux_symbols" ] } if (!is_chromeos) { deps += [ "//tools/perf/clear_system_cache" ] } } if (is_win) { deps += [ "//chrome/tools/crash_service", # "//gpu:angle_perftests", TODO(GYP): crbug.com/537008 ] if (target_cpu == "x86") { deps += [ "//chrome/tools/crash_service:crash_service_win64" ] } } else { deps += [ "//breakpad:minidump_stackwalk($host_toolchain)" ] } } } # Because of the source assignment filter, many targets end up over-filtering # their sources if the output directory contains a platform name. Assert that # this doesn't happen. http://crbug.com/548283 template("assert_valid_out_dir") { # List copied from //build/config/BUILDCONFIG.gn. set_sources_assignment_filter([ "*\bandroid/*", "*\bchromeos/*", "*\bcocoa/*", "*\bios/*", "*\blinux/*", "*\bmac/*", "*\bposix/*", "*\bwin/*", ]) assert(target_name != "") # Mark as used. sources = invoker.actual_sources assert( sources == invoker.actual_sources, "Do not use a platform name in your output directory (found \"$root_build_dir\"). http://crbug.com/548283") } assert_valid_out_dir("_unused") { actual_sources = [ "$root_build_dir/foo" ] }