# 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/config/fuchsia/rules.gni")

group("testing") {
  public_deps = [
    ":wlanphy-testdev",
    "//garnet/drivers/wlan/testing/util",
  ]
}

driver_module("wlanphy-testdev") {
  sources = [
    "binding.c",
    "driver.cpp",
    "iface-device.cpp",
    "iface-device.h",
    "phy-device.cpp",
    "phy-device.h",
  ]

  deps = [
    "//garnet/drivers/wlan/lib",
    "//garnet/lib/wlan/common",
    "//garnet/lib/wlan/fidl",
    "//garnet/lib/wlan/protocol",
    "//zircon/public/banjo/ddk-protocol-sdio",
    "//zircon/public/lib/async-cpp",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/ddk",
    "//zircon/public/lib/driver",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zx",
  ]

  configs += [ "//build/config/fuchsia:enable_zircon_asserts" ]
  configs -= [ "//build/config/fuchsia:no_cpp_standard_library" ]
  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
}
