# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

component("wifi") {
  sources = [
    "network_properties.cc",
    "network_properties.h",
    "wifi_export.h",
    "wifi_service.cc",
    "wifi_service.h",
    "wifi_service_mac.mm",
    "wifi_service_win.cc",
  ]

  defines = [
    "WIFI_IMPLEMENTATION",
  ]

  deps = [
    "//base",
    "//components/onc",
    "//third_party/libxml",
  ]

  if (is_win) {
    libs = [
      "iphlpapi.lib",
    ]
  }

  if (is_mac) {
    libs = [
      "CoreWLAN.framework",
      "SystemConfiguration.framework",
    ]
  }
}

source_set("test_support") {
  sources = [
    "fake_wifi_service.cc",
    "fake_wifi_service.h",
  ]

  deps = [
    ":wifi",
    "//base",
    "//components/onc",
  ]
}

executable("wifi_test") {
  sources = [
    "wifi_test.cc",
  ]

  deps = [
    ":wifi",
    "//base",
    "//components/onc",
  ]
}
