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

fidl("fidl") {
  name = "fuchsia.wlan.device"

  sources = [
    "phy.fidl",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.wlan.common",
    "//sdk/fidl/fuchsia.wlan.mlme",
  ]
}

fidl("sme") {
  name = "fuchsia.wlan.sme"

  sources = [
    "sme.fidl",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.wlan.common",
    "//sdk/fidl/fuchsia.wlan.mesh",
  ]
}

fidl("service") {
  name = "fuchsia.wlan.device.service"

  sources = [
    "service.fidl",
  ]

  public_deps = [
    ":fidl",
    ":sme",
    "//sdk/fidl/fuchsia.wlan.common",
    "//sdk/fidl/fuchsia.wlan.minstrel",
    "//sdk/fidl/fuchsia.wlan.stats",
  ]
}

fidl("wlantap") {
  name = "fuchsia.wlan.tap"

  sources = [
    "wlantap.fidl",
  ]

  public_deps = [
    ":fidl",
    "//sdk/fidl/fuchsia.wlan.common",
    "//sdk/fidl/fuchsia.wlan.mlme",
  ]
}
