# 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/rust/rustc_library.gni")
import("//src/sys/build/components.gni")

rustc_library("wlan-common") {
  name = "wlan_common"
  version = "0.1.0"
  with_unit_tests = true
  edition = "2018"

  deps = [
    "//sdk/banjo/ddk.hw.wlan.ieee80211:ddk.hw.wlan.ieee80211-rustc",
    "//sdk/banjo/fuchsia.hardware.wlan.info:fuchsia.hardware.wlan.info-rustc",
    "//sdk/fidl/fuchsia.wlan.common:fuchsia.wlan.common-rustc",
    "//sdk/fidl/fuchsia.wlan.ieee80211:fuchsia.wlan.ieee80211-rustc",
    "//sdk/fidl/fuchsia.wlan.internal:fuchsia.wlan.internal-rustc",
    "//sdk/fidl/fuchsia.wlan.mlme:fuchsia.wlan.mlme-rustc",
    "//sdk/fidl/fuchsia.wlan.sme:fuchsia.wlan.sme-rustc",
    "//src/connectivity/wlan/lib/bitfield:wlan-bitfield",
    "//src/lib/fuchsia-async",
    "//src/lib/mundane",
    "//src/lib/zerocopy",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/boringssl/rust/boringssl-sys",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:byteorder",
    "//third_party/rust_crates:bytes",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:hex",
    "//third_party/rust_crates:nom",
    "//third_party/rust_crates:num",
    "//third_party/rust_crates:num-derive",
    "//third_party/rust_crates:num-traits",
    "//third_party/rust_crates:paste",
    "//third_party/rust_crates:static_assertions",
    "//third_party/rust_crates:thiserror",
  ]

  sources = [
    "src/appendable.rs",
    "src/big_endian.rs",
    "src/bss.rs",
    "src/buffer_reader.rs",
    "src/buffer_writer.rs",
    "src/channel.rs",
    "src/data_writer.rs",
    "src/energy.rs",
    "src/error.rs",
    "src/format.rs",
    "src/hasher.rs",
    "src/ie/constants.rs",
    "src/ie/fake_ies.rs",
    "src/ie/fields.rs",
    "src/ie/id.rs",
    "src/ie/intersect.rs",
    "src/ie/merger.rs",
    "src/ie/mod.rs",
    "src/ie/parse.rs",
    "src/ie/rates_writer.rs",
    "src/ie/reader.rs",
    "src/ie/rsn/akm.rs",
    "src/ie/rsn/cipher.rs",
    "src/ie/rsn/fake_rsnes.rs",
    "src/ie/rsn/mod.rs",
    "src/ie/rsn/pmkid.rs",
    "src/ie/rsn/rsne.rs",
    "src/ie/rsn/suite_filter.rs",
    "src/ie/rsn/suite_selector.rs",
    "src/ie/wpa/fake_wpa_ies.rs",
    "src/ie/wpa/mod.rs",
    "src/ie/write.rs",
    "src/ie/wsc/constants.rs",
    "src/ie/wsc/fields.rs",
    "src/ie/wsc/id.rs",
    "src/ie/wsc/mod.rs",
    "src/ie/wsc/parse.rs",
    "src/ie/wsc/reader.rs",
    "src/lib.rs",
    "src/mac/ctrl/fields.rs",
    "src/mac/ctrl/mod.rs",
    "src/mac/data/amsdu.rs",
    "src/mac/data/fields.rs",
    "src/mac/data/mod.rs",
    "src/mac/data/msdu.rs",
    "src/mac/eth.rs",
    "src/mac/fields.rs",
    "src/mac/frame_class.rs",
    "src/mac/mgmt/fields.rs",
    "src/mac/mgmt/mod.rs",
    "src/mac/mgmt/reason.rs",
    "src/mac/mgmt/status.rs",
    "src/mac/mod.rs",
    "src/mgmt_writer.rs",
    "src/organization.rs",
    "src/sequence.rs",
    "src/stats/mod.rs",
    "src/stats/signal.rs",
    "src/test_utils/fake_frames.rs",
    "src/test_utils/fake_stas.rs",
    "src/test_utils/mod.rs",
    "src/tim.rs",
    "src/time.rs",
    "src/unaligned_view.rs",
    "src/wmm.rs",
  ]
}

fuchsia_unittest_package("wlan-common-tests") {
  deps = [ ":wlan-common_test" ]
  manifest = "meta/wlan_common_lib_test.cmx"
}
