# 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 = [
    "//src/lib/fsl",
    "//src/lib/fxl",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/async-loop-default",
    "//zircon/public/lib/trace",
    "//zircon/public/lib/trace-provider-with-fdio",
  ]
}

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"
    },
  ]
}
