# Copyright 2019 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/fidl/fidl.gni")

fidl("fuchsia.developer.remotecontrol") {
  sdk_category = "internal"
  sources = [
    "diagnostics-bridge.fidl",
    "host-identification.fidl",
    "remote-control.fidl",
    "service-discovery.fidl",
  ]
  public_deps = [
    "//sdk/fidl/fuchsia.buildinfo",
    "//sdk/fidl/fuchsia.device",
    "//sdk/fidl/fuchsia.diagnostics",
    "//sdk/fidl/fuchsia.hwinfo",
    "//sdk/fidl/fuchsia.io",
    "//sdk/fidl/fuchsia.logger",
    "//sdk/fidl/fuchsia.net",
    "//sdk/fidl/fuchsia.sys2",
    "//zircon/vdso/zx",
  ]
}
