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

package("signal_generator") {
  # For now, need this so the binary can be conveniently run from system/bin.
  deprecated_system_image = true

  deps = [
    ":bin",
  ]

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

executable("bin") {
  output_name = "signal_generator"

  sources = [
    "main.cc",
    "signal_generator.cc",
    "signal_generator.h",
  ]

  deps = [
    "//garnet/lib/media/wav_writer",
    "//garnet/public/fidl/fuchsia.media",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/fzl",
  ]
}
