# Copyright 2015 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.

import("//build/config/compiler/compiler.gni")

group("telemetry_chrome_test") {
  testonly = true

  if (is_android) {
    data_deps = [
      "//chrome/android:chrome_public_apk",
    ]

    if (!defined(use_unpublished_apis) || !use_unpublished_apis) {
      data_deps += [
        "//android_webview:system_webview_apk",
        "//android_webview/tools/system_webview_shell:system_webview_shell_apk",
      ]
    }
  } else {
    data_deps = [
      "//third_party/catapult/telemetry:bitmaptools",
    ]

    data_deps += [ "//chrome" ]
  }

  data = [
    "//tools/perf/core/",  # chrome_telemetry_build/ depends on core/
    "//tools/perf/chrome_telemetry_build/",
    "//third_party/catapult/",
    "//components/crash/content/tools/generate_breakpad_symbols.py",
  ]

  if (is_win) {
    data_deps += [ "//chrome:reorder_imports" ]
  }

  if (is_linux) {
    data_deps += [ "//breakpad:dump_syms($host_toolchain)" ]
  }

  if (is_mac) {
    data_deps += [
      "//breakpad:dump_syms",
      "//chrome:chrome_framework",
      "//chrome:chrome_helper_app",
      "//third_party/crashpad/crashpad/tools:crashpad_database_util",
    ]
  }

  if (is_win && (symbol_level == 1 || symbol_level == 2)) {
    data_deps += [
      "//build/win:copy_cdb_to_output",
      "//third_party/crashpad/crashpad/tools:crashpad_database_util",
    ]

    # TODO(GYP): These should be provided automatically through data_deps.
    data += [ "$root_out_dir/chrome.exe.pdb" ]
    if (is_component_build) {
      data += [
        "$root_out_dir/base.dll.pdb",
        "$root_out_dir/blink_platform.dll.pdb",
        "$root_out_dir/blink_web.dll.pdb",
        "$root_out_dir/content.dll.pdb",
      ]
    } else {
      data += [ "$root_out_dir/chrome_child.dll.pdb" ]
    }
  }
}
