# 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/board.gni")

group("drivers") {
  deps = [
    "bus",
    "controller/sherlock",
    "hw_accel",
    "sensors",
    "test_utils",
  ]
}

group("tests") {
  testonly = true
  deps = [
    "bus:tests",
    "controller:tests",
    "hw_accel:tests",
    "sensors:tests",
    "test_utils:tests",
  ]
}

# Use this target to include actual drivers and tests,
# but not supporting libraries.
group("all") {
  testonly = true
  deps = [
    ":tests",
    "bus",
    "controller/sherlock",
    "hw_accel",
    "sensors",
  ]
}

group("sherlock") {
  deps = [
    "bus",
    "controller/sherlock",
    "hw_accel",
    "sensors",
  ]
}
