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

# Used by linux-gcc-rel to ensure gcc doesn't choke on clang-only flags.
executable("empty_main") {
  sources = [ "empty_main.cc" ]
}

# Targets needed for isolate script to execute.
group("test_scripts_shared") {
  data = [
    "//testing/test_env.py",
    "//testing/xvfb.py",
  ]
}

group("run_perf_test") {
  data = [
    "//testing/scripts/common.py",
    "//testing/scripts/run_performance_tests.py",
    "//tools/perf/generate_legacy_perf_dashboard_json.py",
    "//tools/perf/core/__init__.py",
    "//tools/perf/core/path_util.py",
    "//tools/perf/core/results_merger.py",
  ]

  data_deps = [
    ":test_scripts_shared",
    "//third_party/catapult/tracing:convert_chart_json",
  ]

  if (is_android) {
    # Required when running with bundles (to run "bundletool").
    data_deps += [ "//third_party/jdk:java_data" ]
  }
}
