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

source_set("net") {
  sources = [
    "connectivity_checker.cc",
    "connectivity_checker.h",
    "connectivity_checker_impl.cc",
    "connectivity_checker_impl.h",
    "fake_connectivity_checker.cc",
    "fake_connectivity_checker.h",
    "net_switches.cc",
    "net_switches.h",
    "net_util_cast.cc",
    "net_util_cast.h",
  ]

  if (!is_android) {
    sources += [
      "network_change_notifier_factory_cast.cc",
      "network_change_notifier_factory_cast.h",
    ]
  }

  deps = [
    "//base",
    "//chromecast/base:cast_sys_info",
    "//chromecast/public",
    "//net",
  ]
}
