# 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/package.gni")

executable("benchmark_example") {
  sources = [
    "main.cc",
  ]

  public_deps = [
    "//garnet/public/lib/fsl",
    "//src/lib/fxl",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/trace",
    "//zircon/public/lib/trace-provider",
  ]
}

package("benchmark") {
  deps = [
    ":benchmark_example",
  ]

  binaries = [
    {
      name = "benchmark_example"
    },
  ]

  resources = [
    {
      path = rebase_path("benchmark_example.tspec")
      dest = "benchmark_example.tspec"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/benchmark.cmx")
      dest = "benchmark.cmx"
    },
  ]
}
