# 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")
import("//build/rust/rustc_binary.gni")

rustc_binary("bin") {
  name = "telephony"
  edition = "2018"

  deps = [
    "//garnet/public/lib/fidl/rust/fidl",
    "//garnet/public/rust/fdio",
    "//garnet/public/rust/fuchsia-async",
    "//garnet/public/rust/fuchsia-component",
    "//garnet/public/rust/fuchsia-syslog",
    "//garnet/public/rust/fuchsia-vfs/fuchsia-vfs-watcher",
    "//garnet/public/rust/fuchsia-zircon",
    "//sdk/fidl/fuchsia.telephony.manager:fuchsia.telephony.manager-rustc",
    "//sdk/fidl/fuchsia.telephony.ril:fuchsia.telephony.ril-rustc",
    "//src/connectivity/telephony/lib/qmi",
    "//third_party/rust_crates:failure",
    "//third_party/rust_crates:futures-preview",
    "//third_party/rust_crates:log",
    "//third_party/rust_crates:parking_lot",
  ]
}

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

  binary = "telephony"

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