# 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/crypto.gni")
import("//build/config/features.gni")
import("//build/config/ui.gni")
import("//build/module_args/v8.gni")
import("//media/media_options.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 four 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.
#
# 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",
  ]
}

# 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) {
    # 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",
      "//chrome/test:browser_tests",
      "//chrome/test:interactive_ui_tests",
      "//chrome/test:sync_integration_tests",
      "//chrome/test:unit_tests",
      "//chrome/test/chromedriver:chromedriver_unittests",
      "//components:components_browsertests",
      "//content/shell:content_shell",
      "//content/test:content_browsertests",
      "//content/test:content_perftests",
      "//content/test:content_unittests",
      "//crypto:crypto_unittests",
      "//device:device_unittests",
      "//extensions:extensions_browsertests",
      "//extensions:extensions_unittests",
      "//google_apis/gcm:gcm_unit_tests",
      "//gpu:gpu_unittests",
      "//gpu/gles2_conform_support:gles2_conform_test",
      "//ipc:ipc_tests",
      "//ipc/mojo:ipc_mojo_unittests",
      "//jingle:jingle_unittests",
      "//media:media_unittests",
      "//media/cast:cast_unittests",
      "//media/midi:midi_unittests",
      "//mojo",
      "//mojo/application/public/cpp",
      "//mojo/common:mojo_common_unittests",
      "//net:hpack_example_generator",
      "//net:hpack_fuzz_mutator",
      "//net:hpack_fuzz_wrapper",
      "//net:net_perftests",
      "//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/WebKit/Source/platform:heap_unittests",
      "//third_party/WebKit/Source/platform:platform_unittests",
      "//third_party/WebKit/Source/web:webkit_unit_tests",
      "//third_party/WebKit/Source/wtf:wtf_unittests",
      "//third_party/cacheinvalidation:cacheinvalidation_unittests",
      "//third_party/codesighs",
      "//third_party/mojo/src/mojo/edk/system:mojo_system_unittests",
      "//third_party/mojo/src/mojo/edk/test:mojo_public_bindings_unittests",
      "//third_party/mojo/src/mojo/edk/test:mojo_public_environment_unittests",
      "//third_party/mojo/src/mojo/edk/test:mojo_public_system_unittests",
      "//third_party/mojo/src/mojo/edk/test:mojo_public_utility_unittests",
      "//third_party/pdfium/samples:pdfium_test",
      "//third_party/smhasher:pmurhash",
      "//tools/imagediff($host_toolchain)",
      "//tools/gn",
      "//tools/gn:gn_unittests",
      "//tools/gn:generate_test_gn_data",
      "//tools/telemetry:bitmaptools($host_toolchain)",
      "//ui/accessibility:accessibility_unittests",
      "//ui/app_list:app_list_unittests",
      "//ui/display:display_unittests",
      "//ui/events:events_unittests",
      "//ui/gl:gl_unittests",
      "//ui/touch_selection:ui_touch_selection_unittests",
    ]
  }

  deps += root_extra_deps

  if (enable_extensions && !is_mac) {
    # TODO(GYP): Get this working on the mac?
    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 += [ "//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/tools/build/win/syzygy:chrome_dll_syzygy" ]
  }

  if (is_android) {
    deps += [
      "//base/android/linker:chromium_android_linker",
      "//build/android/gyp/test:hello_world",
      "//build/android/rezip",
      "//chrome/android:chrome_public_apk",
      "//chrome/android:chrome_public_test_apk",
      "//chrome/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk",
      "//third_party/errorprone:chromium_errorprone",
      "//tools/imagediff($host_toolchain)",

      # TODO(GYP): Remove these when the components_unittests work.
      "//components/history/core/test:test",
      "//components/policy:policy_component_test_support",
      "//components/policy:test_support",
      "//components/rappor:test_support",
      "//components/signin/core/browser:test_support",
      "//components/sync_driver:test_support",
      "//components/user_manager",
      "//components/wallpaper",
      "//content/shell/android:content_shell_apk",

      # TODO(GYP): Are these needed, or will they be pulled in automatically?
      "//third_party/android_tools:android_gcm_java",
      "//third_party/android_tools:uiautomator_java",
      "//third_party/android_tools:android_support_v13_java",
      "//third_party/android_tools:android_support_v7_appcompat_java",
      "//third_party/android_tools:android_support_v7_mediarouter_java",
      "//third_party/mesa",
      "//third_party/mockito:mockito_java",
      "//third_party/openmax_dl/dl",
      "//ui/android:ui_java",

      # TODO(GYP): Are these needed?
      "//chrome/test:test_support_unit",
      "//third_party/smhasher:murmurhash3",
      "//ui/message_center:test_support",
    ]
    deps -= [
      "//chrome",  # TODO(GYP) ??
      "//chrome/test:browser_tests",  # TODO(GYP) ??
      "//chrome/test:interactive_ui_tests",  # TODO(GYP) ??
      "//chrome/test:sync_integration_tests",  # TODO(GYP) ??
      "//chrome/test:unit_tests",  # TODO(GYP)

      # Chromedriver shouldn't be compiled on Android.
      "//chrome/test/chromedriver:chromedriver_unittests",
      "//extensions:extensions_browsertests",
      "//extensions:extensions_unittests",
      "//google_apis/gcm:gcm_unit_tests",
      "//ipc:ipc_tests",  # TODO(GYP) ??
      "//jingle:jingle_unittests",  # TODO(GYP) ??
      "//net:hpack_example_generator",
      "//net:hpack_fuzz_mutator",
      "//net:hpack_fuzz_wrapper",
      "//net:net_perftests",
      "//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",
      "//third_party/pdfium/samples:pdfium_test",
      "//tools/gn",
      "//tools/gn:generate_test_gn_data",
      "//tools/gn:gn_unittests",
      "//ui/app_list:app_list_unittests",
      "//url:url_unittests",
    ]

    if (has_chrome_android_internal) {
      deps += [ "//clank" ]  # TODO(GYP) ??
    }
  }

  if (is_linux) {  # TODO(GYP): || is_android || is_bsd?
    deps += [
      "//breakpad:core-2-minidump",
      "//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 += [
      "//breakpad:breakpad_unittests",
      "//breakpad:generate_test_dump",
      "//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",
      "//sandbox/linux:sandbox_linux_jni_unittests",
    ]

    if (is_chromeos || use_ash) {
      deps += [ "//components/session_manager/core" ]
    }
  }

  if (is_ios || is_win || (is_linux && !is_chromeos)) {
    deps += [
      "//base:base_i18n_perftests",
      "//base:base_perftests",
      "//google_apis:google_apis_unittests",
    ]
  }

  if (is_win || (is_linux && !is_chromeos)) {
    # TODO(GYP): Figure out which of these should (and can) build
    # for android/chromeos/mac/ios.
    deps += [
      "//base:check_example",
      "//base:build_utf8_validator_tables",
      "//cc:cc_perftests",
      "//cc/blink:cc_blink_unittests",
      "//chrome/test:load_library_perf_tests",
      "//chrome/test:performance_browser_tests",
      "//chrome/test:sync_performance_tests",
      "//chrome/test/chromedriver:chromedriver",
      "//chrome/test/chromedriver:chromedriver_tests",
      "//chrome/tools/profile_reset:jtl_compiler",
      "//components:components_perftests",
      "//content/test:content_gl_tests",
      "//content/test:content_gl_benchmark",
      "//courgette:courgette",
      "//courgette:courgette_fuzz",
      "//courgette:courgette_minimal_tool",
      "//courgette:courgette_unittests",
      "//device:device_unittests",
      "//gin:gin_shell",
      "//gin:gin_unittests",
      "//google_apis/gcm:mcs_probe",
      "//gpu:gpu_perftests",
      "//gpu:gl_tests",
      "//ipc:ipc_perftests",
      "//media:media_perftests",
      "//media/cast:generate_barcode_video",
      "//media/cast:generate_timecode_audio",
      "//net:crash_cache",
      "//net:crl_set_dump",
      "//net:dns_fuzz_stub",
      "//net:dump_cache",
      "//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",
      "//sync:run_sync_testserver",
      "//third_party/angle/src/tests:angle_end2end_tests",
      "//third_party/angle/src/tests:angle_unittests",
      "//third_party/codesighs:maptsvdifftool",
      "//third_party/leveldatabase:env_chromium_unittests",
      "//third_party/libaddressinput:libaddressinput_unittests",
      "//third_party/libphonenumber:libphonenumber_unittests",
      "//ui/compositor:compositor_unittests",
    ]

    if (enable_extensions) {
      deps += [ "//extensions/shell:app_shell" ]
    }

    if (enable_nacl) {
      deps += [ "//components/nacl:nacl_loader_unittests" ]
    }

    if (media_use_ffmpeg) {
      deps += [ "//media:ffmpeg_regression_tests" ]
    }

    if (use_ash) {
      deps += [
        "//ash:ash_shell",
        "//ash:ash_unittests",
      ]
    }

    if (use_aura) {
      deps += [
        "//ui/aura:aura_unittests",
        "//ui/aura:bench",
        "//ui/aura:demo",
      ]
    }
  }

  if (is_linux && !is_chromeos) {
    deps += [
      # TODO(GYP): Figure out which of these should (and can) build
      # under which other conditions.
      "//build/sanitizers:copy_llvm_symbolizer",
      "//chrome/test:chrome_app_unittests",
      "//cloud_print:cloud_print_unittests",
      "//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.
      "//media/cast:cast_benchmarks",
      "//media/cast:tap_proxy",
      "//mojo/application/public/cpp",
      "//skia:filter_fuzz_stub",
      "//skia:image_operations_bench",
      "//sync/tools:sync_client",
      "//sync/tools:sync_listen_notifications",
      "//testing/gmock:gmock_main",
      "//third_party/mojo/src/mojo/edk/test:mojo_public_system_perftests",
      "//tools/perf/clear_system_cache",
      "//ui/keyboard:keyboard_unittests",
      "//ui/message_center:message_center_unittests",
      "//ui/snapshot:snapshot_unittests",
      "//ui/views/examples:views_examples_with_content_exe",

      "//third_party/codesighs:nm2tsv",
      "//third_party/sqlite:sqlite_shell",
    ]

    if (current_toolchain == host_toolchain) {
      # Do not build the breakpad utilities in cross-compiles.
      deps += [
        "//breakpad:dump_syms",
        "//breakpad:microdump_stackwalk",
        "//breakpad:minidump_dump",
        "//breakpad:minidump_stackwalk",
      ]
    }

    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",
    ]

    # TODO(GYP): Remove these when the targets below work and these
    # are pulled in automatically.
    deps += [
      "//cc/blink",
      "//components/ui/zoom",
      "//content",
      "//content/test:test_support",
      "//device/battery",
      "//device/bluetooth",
      "//device/nfc",
      "//device/usb",
      "//device/vibration",
      "//media/blink",
      "//pdf",
      "//storage/browser",
      "//third_party/brotli",
      "//third_party/flac",
      "//third_party/hunspell",
      "//third_party/iccjpeg",
      "//third_party/libphonenumber",
      "//third_party/ots",
      "//third_party/qcms",
      "//third_party/smhasher:murmurhash3",
      "//third_party/webrtc/system_wrappers",
      "//ui/app_list:app_list_unittests",
      "//ui/gfx:gfx_unittests",
      "//ui/native_theme",
      "//ui/snapshot",
      "//ui/surface",
    ]

    # TODO(dpranke): These are as-yet untriaged but need at least the above.
    deps -= [
      "//chrome",  # TODO(GYP)
      "//chrome/test:browser_tests",  # TODO(GYP)
      "//chrome/test:interactive_ui_tests",  # TODO(GYP)
      "//chrome/test:sync_integration_tests",  # TODO(GYP)
      "//chrome/test:unit_tests",  # TODO(GYP)
      "//components:components_browsertests",  # TODO(GYP)
      "//components:components_unittests",  # TODO(GYP)
      "//content/test:content_browsertests",  # TODO(GYP)
      "//content/test:content_perftests",  # TODO(GYP)
      "//device:device_unittests",  # TODO(GYP)
      "//extensions:extensions_browsertests",  # TODO(GYP)
      "//extensions:extensions_unittests",  # TODO(GYP)
      "//mojo",  # TODO(GYP)
      "//mojo/application/public/cpp",  # TODO(GYP)

      # TODO(GYP): Re-enable this as soon as we can link Blink binaries on mac.
      "//third_party/WebKit/Source/platform:heap_unittests",
      "//third_party/WebKit/Source/platform:platform_unittests",
      "//third_party/WebKit/Source/web:webkit_unit_tests",
    ]
  }

  if (is_win) {
    deps += [
      "//base:pe_image_test",
      "//chrome/installer/setup:setup_unittests",
      "//chrome_elf:chrome_elf_unittests",
      "//chrome_elf:dll_hash_main",
      "//components/crash/content/tools:crash_service",
      "//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" ]
  }

  if (!is_ios) {
    deps += [ "//gpu/skia_runner:skia_runner" ]
  }
}

group("gn_only") {
  testonly = true

  deps = []

  if (!is_ios) {
    deps += [ "//mandoline:all" ]
  }

  if (!is_android && !is_ios) {
    deps += [ "//components/proximity_auth:proximity_auth_unittests" ]
  }

  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 += [
      ":gn_mojo_targets",
      "//blimp",
      "//chrome/browser/resources:extension_resource_demo",
      "//chrome/installer/util:strings",
      "//chrome:main_dll",
      "//chrome/test:load_library_perf_tests",
      "//chrome/tools/convert_dict",
      "//components/constrained_window:unit_tests",
      "//components/enhanced_bookmarks:test_support",
      "//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",
      "//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_db_test",
      "//third_party/leveldatabase:leveldb_crc32c_test",
      "//third_party/leveldatabase:leveldb_cache_test",
      "//third_party/leveldatabase:leveldb_env_test",
      "//third_party/leveldatabase:leveldb_write_batch_test",
      "//third_party/leveldatabase:leveldb_filter_block_test",
      "//third_party/leveldatabase:leveldb_version_edit_test",
      "//third_party/leveldatabase:leveldb_db_bench",
      "//third_party/leveldatabase:leveldb_log_test",
      "//third_party/leveldatabase:leveldb_corruption_test",
      "//third_party/leveldatabase:leveldb_table_test",
      "//third_party/leveldatabase:leveldb_skiplist_test",
      "//third_party/leveldatabase:leveldb_filename_test",
      "//third_party/leveldatabase:leveldb_dbformat_test",
      "//third_party/pdfium/third_party:fx_freetype",
      "//third_party/libjpeg_turbo:simd",
      "//third_party/libsrtp:replay_driver",
      "//third_party/libsrtp:roc_driver",
      "//third_party/libsrtp:rtpw",
      "//third_party/libsrtp:rdbx_driver",
      "//third_party/libsrtp:srtp_driver",
      "//third_party/libsrtp:srtp_driver",
      "//third_party/libsrtp:srtp_test_kernel_driver",
      "//third_party/libsrtp:srtp_test_cipher_driver",
      "//third_party/libsrtp:srtp_test_datatypes_driver",
      "//third_party/libsrtp:srtp_test_aes_calc",
      "//third_party/libsrtp:srtp_test_env",
      "//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_decode",
      "//third_party/opus:test_opus_encode",
      "//third_party/opus:test_opus_api",
      "//third_party/opus:test_opus_padding",
      "//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") {
      deps += [
        "//third_party/libjpeg_turbo:simd_asm",
        "//native_client/src/trusted/platform_qualify:vcpuid",
      ]
    }
    if (enable_nacl) {
      deps += [ "//native_client/src/trusted/service_runtime:sel_ldr" ]
    }
    if (use_ozone) {
      deps += [ "//ui/ozone/demo" ]
    }
    if (is_android) {
      deps += [ "//build/android/gyp/test:hello_world" ]
    }

    if (is_linux && current_toolchain == host_toolchain) {
      deps += [ "//v8:d8" ]
    }
  }

  if (is_android) {
    deps += [ "//blimp" ]
  }

  if (is_mac) {
    deps -= [ "//mandoline:all" ]  # TODO(GYP)
  }
}

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/services:cdm_service",
      "//media/mojo:tests",
      "//mojo:tests",
      "//third_party/mojo/src/mojo/edk/js/test:js_integration_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:v8_snapshot",
      "//v8:postmortem-metadata",
    ]
  }
}

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:dump_syms($host_toolchain)",
        "//breakpad:minidump_stackwalk($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: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") {
}

if (is_linux) {
  # This group corresponds to the list of tests run on the waterfall for
  # desktop Linux GYP builds from testing/buildbot/chromium.linux.json. It's
  # here to help track GYP -> GN conversion progress.
  group("linux_default_tests") {
    testonly = true
    deps = [
      "//base:base_unittests",  # PASSES (*) 2/25/2015
      "//cc:cc_unittests",  # PASSES 2/25/2015
      "//chrome/test:browser_tests",
      "//chrome/test:interactive_ui_tests",
      "//chrome/test:sync_integration_tests",  # Crashes for brettw in GN and GYP.
      "//chrome/test:unit_tests",  # PASSES 2/25/2015
      "//chrome/test/chromedriver:chromedriver_unittests",  # PASSES 2/25/2015
      "//components:components_browsertests",  # PASSES 4/17/2015
      "//components:components_unittests",  # PASSES 2/27/2015
      "//content/test:content_browsertests",
      "//content/test:content_unittests",  # PASSES 2/25/2015
      "//crypto:crypto_unittests",  # PASSES 2/25/2015
      "//dbus:dbus_unittests",  # PASSES 2/25/2015
      "//device:device_unittests",  # PASSES 3/07/2015
      "//extensions:extensions_browsertests",  # PASSES 2/25/2015
      "//extensions:extensions_unittests",  # PASSES 2/25/2015
      "//extensions/shell:app_shell_unittests",  # PASSES 2/25/2015
      "//google_apis/gcm:gcm_unit_tests",  # PASSES 2/25/2015
      "//google_apis:google_apis_unittests",  # PASSES 2/25/2015
      "//gpu:gpu_unittests",  # PASSES 2/25/2015
      "//ipc:ipc_tests",  # PASSES 2/25/2015
      "//ipc/mojo:ipc_mojo_unittests",  # PASSES 2/25/2015
      "//jingle:jingle_unittests",  # PASSES 2/25/2015
      "//media:media_unittests",  # PASSES 3/3/2015
      "//media/cast:cast_unittests",  # PASSES 2/25/2015
      "//media/midi:midi_unittests",  # PASSES 4/10/2015
      "//mojo/common:mojo_common_unittests",  # PASSES 2/25/2015
      "//net:net_unittests",  # PASSES 2/25/2015
      "//ppapi:ppapi_unittests",  # PASSES 2/26/2015
      "//printing:printing_unittests",  # PASSES 2/25/2015
      "//remoting:remoting_unittests",  # PASSES 4/17/2015
      "//sandbox/linux:sandbox_linux_unittests",  # PASSES 2/25/2015
      "//skia:skia_unittests",  # PASSES 2/25/2015
      "//sql:sql_unittests",  # PASSES 2/25/2015
      "//sync:sync_unit_tests",  # PASSES 2/25/2015
      "//third_party/cacheinvalidation:cacheinvalidation_unittests",  # PASSES 2/25/2015
      "//third_party/mojo/src/mojo/edk/system:mojo_system_unittests",  # PASSES 2/25/2015
      "//third_party/mojo/src/mojo/edk/test:mojo_public_bindings_unittests",  # PASSES 2/25/2015
      "//third_party/mojo/src/mojo/edk/test:mojo_public_environment_unittests",  # PASSES 2/25/2015
      "//third_party/mojo/src/mojo/edk/test:mojo_public_system_unittests",  # PASSES 2/25/2015
      "//third_party/mojo/src/mojo/edk/test:mojo_public_utility_unittests",
      "//ui/accessibility:accessibility_unittests",  # PASSES 2/25/2015
      "//ui/app_list:app_list_unittests",  # PASSES 2/25/2015
      "//ui/aura:aura_unittests",  # PASSES 2/25/2015
      "//ui/base:ui_base_unittests",  # PASSES 4/17/2015
      "//ui/compositor:compositor_unittests",  # PASSES 2/25/2015
      "//ui/display:display_unittests",  # PASSES 2/25/2015
      "//ui/events:events_unittests",  # PASSES 2/25/2015
      "//ui/gfx:gfx_unittests",  # PASSES 2/25/2015
      "//ui/gl:gl_unittests",
      "//ui/touch_selection:ui_touch_selection_unittests",  # PASSES 2/25/2015
      "//ui/views:views_unittests",  # PASSES (*) 2/25/2015
      "//ui/wm:wm_unittests",  # PASSES 2/25/2015
      "//url:url_unittests",  # PASSES 2/25/2015

      # Note:
      # (*) Fails but failures match GYP build at time of testing.
    ]

    if (enable_nacl) {
      deps += [ "//components/nacl:nacl_loader_unittests" ]  # PASSES 3/28/2015
    }
  }
} else if (is_win) {
  group("windows_default_tests") {
    testonly = true
    deps = [
      "//ash:ash_unittests",  # FAILS 4/20/2015
      "//base:base_unittests",  # PASSES 4/20/2015
      "//cc:cc_unittests",  # PASSES 4/17/2015
      "//chrome_elf:chrome_elf_unittests",  # FAILS 4/20/2015
      "//chrome/installer/util:installer_util_unittests",
      "//chrome/installer/setup:setup_unittests",
      "//chrome/test:browser_tests",
      "//chrome/test:interactive_ui_tests",
      "//chrome/test:sync_integration_tests",  # Note: need to turn off incremental linking for debug.
      "//chrome/test:unit_tests",
      "//chrome/test/chromedriver:chromedriver_unittests",  # PASSES 4/20/2015
      "//components:components_browsertests",  # PASSES 4/24/2015
      "//components:components_unittests",  # PASSES 4/17/2015
      "//courgette:courgette_unittests",  # PASSES 4/20/2015
      "//content/test:content_browsertests",
      "//content/test:content_unittests",  # PASSES 4/17/2015
      "//crypto:crypto_unittests",  # PASSES 4/17/2015
      "//device:device_unittests",  # PASSES 4/17/2015
      "//extensions:extensions_browsertests",  # PASSES 4/17/2015
      "//extensions:extensions_unittests",  # PASSES 4/17/2015
      "//extensions/shell:app_shell_unittests",  # Doesn't compile in 64-bit
      "//google_apis/gcm:gcm_unit_tests",  # PASSES 4/17/2015
      "//google_apis:google_apis_unittests",  # PASSES 4/17/2015
      "//gpu:gpu_unittests",  # PASSES 4/17/2015
      "//ipc:ipc_tests",  # PASSES 4/17/2015
      "//ipc/mojo:ipc_mojo_unittests",  # PASSES 4/17/2015
      "//jingle:jingle_unittests",  # PASSES 4/17/2015
      "//media/cast:cast_unittests",  # PASSES 4/17/2015
      "//media:media_unittests",  # PASSES 4/17/2015
      "//mojo/common:mojo_common_unittests",  # PASSES 4/17/2015
      "//net:net_unittests",  # PASSES 4/17/2015
      "//ppapi:ppapi_unittests",  # PASSES 4/17/2015
      "//printing:printing_unittests",  # PASSES 4/17/2015
      "//remoting:remoting_unittests",  # PASSES 4/17/2015
      "//sandbox/win:sbox_integration_tests",  # PASSES 4/20/2015
      "//sandbox/win:sbox_unittests",  # PASSES 4/20/2015
      "//sandbox/win:sbox_validation_tests",  # PASSES 4/20/2015
      "//skia:skia_unittests",  # PASSES 4/17/2015
      "//sql:sql_unittests",  # PASSES 4/17/2015
      "//sync:sync_unit_tests",  # PASSES 4/20/2015
      "//third_party/cacheinvalidation:cacheinvalidation_unittests",  # PASSES 4/20/2015
      "//third_party/mojo/src/mojo/edk/system:mojo_system_unittests",  # Seems to hang?
      "//third_party/mojo/src/mojo/edk/test:mojo_public_bindings_unittests",  # FAILS
      "//third_party/mojo/src/mojo/edk/test:mojo_public_environment_unittests",  # PASSES 4/20/2015
      "//third_party/mojo/src/mojo/edk/test:mojo_public_system_unittests",  # PASSES 4/20/2015
      "//third_party/mojo/src/mojo/edk/test:mojo_public_utility_unittests",  # PASSES 4/20/2015
      "//ui/accessibility:accessibility_unittests",  # PASSES 4/20/2015
      "//ui/app_list:app_list_unittests",  # PASSES 4/20/2015
      "//ui/aura:aura_unittests",  # PASSES 4/17/2015
      "//ui/base:ui_base_unittests",  # PASSES 4/20/2015
      "//ui/compositor:compositor_unittests",  # PASSES 4/20/2015
      "//ui/display:display_unittests",  # PASSES 4/20/2015
      "//ui/events:events_unittests",  # PASSES 4/20/2015
      "//ui/gfx:gfx_unittests",  # PASSES (with assertion failure?) 4/20/2015
      "//ui/gl:gl_unittests",
      "//ui/message_center:message_center_unittests",  # PASSES 4/20/2015
      "//ui/touch_selection:ui_touch_selection_unittests",  # PASSES 4/20/2015
      "//ui/views:views_unittests",  # TooltipControllerTest failures
      "//ui/wm:wm_unittests",  # PASSES 4/21/2015
      "//url:url_unittests",  # PASSES 4/17/2015

      # TODO(GYP) nacl_integration
      # TODO(GYP) telemetry_perf_unittests
      # TODO(GYP) telemetry_unittests
    ]
  }
}
