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

  sources = [
    "main.cc",
    "tts_service_impl.cc",
    "tts_speaker.cc",
  ]

  deps = [
    "//sdk/fidl/fuchsia.media",
    "//sdk/fidl/fuchsia.tts",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fsl",
    "//third_party/flite",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/fzl",
    "//zircon/public/lib/zx",
  ]
}

package("tts_service") {
  deps = [
    ":bin",
  ]

  binary = "tts_service"

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