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

package("audio_player") {
  deps = [
    ":audio_player_bin",
  ]

  binaries = [
    {
      name = "audio_player"
      shell = true
    },
  ]

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

executable("audio_player_bin") {
  output_name = "audio_player"

  sources = [
    "audio_player.cc",
    "audio_player.h",
    "audio_player_params.cc",
    "audio_player_params.h",
    "main.cc",
  ]

  deps = [
    "//garnet/public/lib/fsl",
    "//sdk/fidl/fuchsia.media",
    "//sdk/fidl/fuchsia.media.playback",
    "//sdk/lib/media/cpp",
    "//sdk/lib/sys/cpp",
    "//src/lib/url",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/fit",
  ]
}
