# Copyright 2021 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.

package(default_visibility = ["//visibility:public"])

cc_library(
  name = "sim_library",
  srcs = [
    "fake-ucode-capa-test.cc",
#    "inspect-host-cmd.cc",
#    "inspect-host-cmd.h",
#    "sim-mvm.cc",
#    "sim-nvm-data.inc",
#    "sim-nvm.cc",
#    "sim-trans.cc",
#    "single-ap-test.cc",
#    "tlv-fw-builder.cc",
#    "tlv-fw-builder.h",
#    "wlan-pkt-builder.cc",
  ],
  hdrs = [
    "fake-ucode-capa-test.h",
 #   "mock-trans.h",
 #  "sim-mvm.h",
 #  "sim-nvm.h",
 #  "sim-trans.h",
 #  "sim.h",
 #  "single-ap-test.h",
 #   "wlan-pkt-builder.h",
   ],
  deps = [
  #  "//sdk/banjo/fuchsia.hardware.wlan.mac:fuchsia.hardware.wlan.mac_banjo_cpp",
  #  "//sdk/banjo/fuchsia.hardware.wlanphyimpl:fuchsia.hardware.wlanphyimpl_banjo_cpp",
  #  "//sdk/fidl/fuchsia.wlan.common:fuchsia.wlan.common_banjo_cpp",
  #  "//third_party/iwlwifi:core",
  #  "//third_party/iwlwifi/fw:api",
  #  "//third_party/iwlwifi/mvm",
  #  "//third_party/iwlwifi/platform:fuchsia_device",
  # "//third_party/devices/testing/fake-bti",
  # "//zircon/system/ulib/async-loop:async-loop-cpp",
  # "//zircon/system/ulib/async-loop:async-loop-default",
  # "//zircon/system/ulib/fbl",

  #  "//third_party/connectivity/wlan/drivers/testing/lib/sim-device",
  #  "//third_party/connectivity/wlan/drivers/testing/lib/sim-env",
  #  "//third_party/connectivity/wlan/drivers/testing/lib/sim-fake-ap",
  # "//third_party/iwlwifi:core",
  # "//third_party/iwlwifi/platform",
  # "//third_party/devices/pci/testing:pci-protocol-fake",
  # "//third_party/devices/testing/mock-ddk",
  # "//zircon/system/public",
   "//zircon/system/ulib/zxtest",
  ],
)
