# Copyright 2018 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("bin") {
  output_name = "trace_stress"

  sources = [
    "main.cc",
  ]

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

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

  deps = [
    ":bin",
  ]

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