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

declare_args() {
  netcfg_autostart = true
}

group("management") {
  testonly = true
  deps = [
    ":tests",
    "network-manager",
    "network-manager-cli",
    "reachability",
  ]
}

# TODO(fxbug.dev/49379): Remove when updating the network_config_* rules
# below.
group("netcfg") {
  deps = [ "//src/connectivity/network/netcfg" ]

  if (netcfg_autostart) {
    deps += [ "//src/connectivity/network/netcfg/sysmgr:config" ]
  }
}

group("network_config_default") {
  # TODO(fxbug.dev/49379): Switch to the equivalent Network Manager config
  # once we've migrated off of netcfg and onto Network Manager.
  deps = [
    ":netcfg",
    "//src/connectivity/network/netcfg:config-default",
  ]
}

group("network_config_no_ssh_over_wlan") {
  # TODO(fxbug.dev/49379): Switch to the equivalent Network Manager config
  # once we've migrated off of netcfg and onto Network Manager.
  deps = [
    ":netcfg",
    "//src/connectivity/network/netcfg:config-no-ssh-over-wlan",
  ]
}

group("tests") {
  testonly = true
  deps = [
    "network-manager:tests",
    "network-manager-cli:tests",
    "reachability:tests",
    "tests",
  ]
}
