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

group("perf") {
  testonly = true
  deps = [
    "//tools/perf/chrome_telemetry_build:telemetry_chrome_test",
  ]

  data = [
    "//tools/perf/",

    # Field trial config
    "//tools/variations/",
    "//testing/variations/",

    # Field trial dependencies
    "//tools/json_comment_eater/",
    "//tools/json_to_struct/",

    # For blink_perf benchmarks.
    "//third_party/blink/perf_tests/",

    # For smoothness.tough_canvas_cases
    "//chrome/test/data/perf/",

    # For image_decoding.measurement
    "//chrome/test/data/image_decoding/",

    # For ad tagging ruleset
    "$root_gen_dir/components/subresource_filter/tools/",

    # For Pylib used by VR tests
    "//build/android/pylib/",
  ]

  # Runs a script which generates the ad tagging ruleset.
  if (!is_ios) {
    data_deps = [
      "//components/subresource_filter/tools:index_ruleset",
    ]
  }
}

if (is_android) {
  import("//build/config/android/rules.gni")

  wrapper_script("run_benchmark_wrapper") {
    target = "run_benchmark"
    flag_name = "--chromium-output-directory"
  }
}

# Group for running benchmarks without building Chrome
group("perf_without_chrome") {
  testonly = true
  deps = [
    "//tools/perf/chrome_telemetry_build:telemetry_chrome_test_without_chrome",
  ]

  data = [
    "//tools/perf/",

    # Field trial config
    "//tools/variations/",
    "//testing/variations/",

    # Field trial dependencies
    "//tools/json_comment_eater/",
    "//tools/json_to_struct/",

    # For blink_perf benchmarks.
    "//third_party/blink/perf_tests/",

    # For smoothness.tough_canvas_cases
    "//chrome/test/data/perf/",

    # For image_decoding.measurement
    "//chrome/test/data/image_decoding/",

    # For ad tagging ruleset
    "$root_gen_dir/components/subresource_filter/tools/",

    # For Pylib used by VR tests
    "//build/android/pylib/",
  ]

  # Runs a script which generates the ad tagging ruleset.
  if (!is_ios) {
    data_deps = [
      "//components/subresource_filter/tools:index_ruleset",
    ]
  }
}
