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

config("wlan_mlme_config") {
  include_dirs = [ "include" ]
}

source_set("mlme") {
  public = [
    "include/wlan/mlme/ap/ap_mlme.h",
    "include/wlan/mlme/ap/beacon_sender.h",
    "include/wlan/mlme/ap/infra_bss.h",
    "include/wlan/mlme/ap/remote_client.h",
    "include/wlan/mlme/ap/remote_client_interface.h",
    "include/wlan/mlme/ap/tim.h",
    "include/wlan/mlme/assoc_context.h",
    "include/wlan/mlme/client/bss.h",
    "include/wlan/mlme/client/channel_scheduler.h",
    "include/wlan/mlme/client/client_mlme.h",
    "include/wlan/mlme/client/join_context.h",
    "include/wlan/mlme/client/scanner.h",
    "include/wlan/mlme/client/station.h",
    "include/wlan/mlme/convert.h",
    "include/wlan/mlme/debug.h",
    "include/wlan/mlme/device_interface.h",
    "include/wlan/mlme/dispatcher.h",
    "include/wlan/mlme/eapol.h",
    "include/wlan/mlme/frame_validation.h",
    "include/wlan/mlme/mac_frame.h",
    "include/wlan/mlme/macaddr_map.h",
    "include/wlan/mlme/mcs.h",
    "include/wlan/mlme/mesh/mesh_mlme.h",
    "include/wlan/mlme/mlme.h",
    "include/wlan/mlme/packet.h",
    "include/wlan/mlme/sequence.h",
    "include/wlan/mlme/service.h",
    "include/wlan/mlme/timer.h",
    "include/wlan/mlme/timer_manager.h",
    "include/wlan/mlme/wlan.h",
  ]

  sources = [
    "ap/ap_mlme.cpp",
    "ap/beacon_sender.cpp",
    "ap/infra_bss.cpp",
    "ap/remote_client.cpp",
    "ap/tim.cpp",
    "assoc_context.cpp",
    "beacon.cpp",
    "client/bss.cpp",
    "client/channel_scheduler.cpp",
    "client/client_mlme.cpp",
    "client/join_context.cpp",
    "client/scanner.cpp",
    "client/station.cpp",
    "convert.cpp",
    "debug.cpp",
    "device_caps.cpp",
    "device_interface.cpp",
    "dispatcher.cpp",
    "ht.cpp",
    "key.cpp",
    "mac_frame.cpp",
    "mac_header_writer.cpp",
    "mcs.cpp",
    "mesh/mesh_mlme.cpp",
    "mesh/parse_mp_action.cpp",
    "mesh/path_table.cpp",
    "mesh/write_mp_action.cpp",
    "packet.cpp",
    "parse_beacon.cpp",
    "rates_elements.cpp",
    "service.cpp",
    "timer.cpp",
    "timer_manager.cpp",
    "validate_frame.cpp",
  ]

  public_deps = [
    "//garnet/lib/rust/wlan-mlme",
    "//garnet/lib/wlan/common",
    "//garnet/lib/wlan/protocol",
    "//garnet/public/fidl/fuchsia.wlan.mlme",
    "//garnet/public/fidl/fuchsia.wlan.stats",
    "//garnet/public/lib/svc/cpp",
    "//garnet/public/lib/timekeeper",
    "//garnet/public/lib/timekeeper:system",
    "//zircon/public/lib/bitmap",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zx",
  ]

  public_configs = [ ":wlan_mlme_config" ]
  configs += [ "//build/config/fuchsia:enable_zircon_asserts" ]
}
