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

import("//build/images/bootfs_manifest.gni")
import("//build/package.gni")

group("devices") {
  deps = [
    "bin",
    "bind",
    "lib",
    "tools",
  ]
}

group("tests") {
  testonly = true
  deps = [
    "bin:tests",
    "bind/debugger:tests",
    "block:tests",
    "clock:tests",
    "gpio:tests",
    "i2c:tests",
    "lib:tests",
    "light-sensor:tests",
    "nand:tests",
    "power:tests",
    "pwm:tests",
    "pwm:tests",
    "ram:tests",
    "serial:tests",
    "shareddma:tests",
    "tests",
    "tests:tests",
    "thermal:tests",
    "tools:tests",
    "usb:tests",
    "usb/tests",
  ]
}

bootfs_manifest("devices.manifest") {
  deps = [
    "bin",
    "lib/driver",
    "//src/bringup/virtcon:virtual-console",
    "//src/ui/input/drivers/hid-input-report",
  ]

  # TODO(bwb): match the file in the image to the respective build name
  binaries = [
    {
      name = "driver_host"
    },

    # Inject Virtcon into the ZBI
    # TODO(41410): Remove when unified build exists.
    {
      name = "virtual-console"
    },
  ]

  drivers = [
    # Drivers for ZBI injection
    {
      name = "hid-input-report.so"
    },
  ]
}
