# Copyright 2017 The Fuchsia 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/fuchsia/zircon_images.gni")
import("//build/package.gni")

group("benchmarks") {
  testonly = true
  deps = [
    ":fuchsia_benchmarks",
  ]
}

executable("fuchsia_benchmarks_bin") {
  output_name = "fuchsia_benchmarks"

  sources = [
    "benchmarks.cc",
    "gfx_benchmarks.cc",
    "gfx_benchmarks.h",
  ]

  deps = [
    "//garnet/testing/benchmarking:benchmarking",
    "//garnet/testing/benchmarking:is_vulkan_supported",
  ]
}

zircon_extras_manifest("zircon-test-manifest") {
  visibility = [ ":*" ]
  manifest = "tests"
  patterns = [ "test/sys/perf-test" ]
}

package("fuchsia_benchmarks") {
  testonly = true

  extra = get_target_outputs(":zircon-test-manifest")

  binaries = [
    {
      name = rebase_path("benchmarks.sh")
      dest = "benchmarks.sh"
    },
    {
      shell = true
      name = "fuchsia_benchmarks"
    },
    {
      name = rebase_path("benchmarks_perfcompare.sh")
      dest = "benchmarks_perfcompare.sh"
    },
  ]

  deps = [
    ":fuchsia_benchmarks_bin",
    ":zircon-test-manifest",
  ]
}
