# 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" ]

  deps = []

  public_deps = [
    "//src/lib/fsl",
    "//src/lib/fxl",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
    "//zircon/system/ulib/trace",
    "//zircon/system/ulib/trace-provider:trace-provider-with-fdio",
  ]
}

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

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

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