# 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.
#
# WARNING: This file was machine-generated from previous json files and
# will eventually be deleted.

group("framework") {
  testonly = true
  public_deps = [
    "//garnet/packages/config:mdns",
    "//garnet/packages/config:netconnector",
    "//garnet/packages/prod:cobalt_client",
    "//garnet/packages/prod:mdns",
    "//garnet/packages/prod:mdns-util",
    "//garnet/packages/prod:netconnector",
    "//peridot/packages/prod:basemgr_launcher",
    "//peridot/packages/prod:clipboard_agent",
    "//peridot/packages/prod:cloud_provider_firestore",
    "//peridot/packages/prod:ledger",
    "//peridot/packages/prod:maxwell",
    "//peridot/packages/prod:modular",
    "//peridot/packages/prod:module_resolver",
    "//peridot/packages/prod:sessionctl",
  ]
}

group("test_modular") {
  testonly = true
  public_deps = [
    "//garnet/packages:garnet",
    "//peridot/packages:all",
  ]
}

group("framework_minimal") {
  testonly = true
  public_deps = [
    "//src/modular/bundles:framework",
  ]
}
