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

group("camera") {
  testonly = true
  deps = [
    ":tools",
    "bin",
    "drivers",
    "lib",
    "testing",
  ]
}

group("tests") {
  testonly = true
  deps = [
    "bin:tests",
    "drivers:tests",
    "lib:tests",
  ]
}

group("drivers") {
  deps = [
    "drivers/bus/aml_mipicsi:aml_mipicsi_driver",
    "drivers/hw_accel/gdc:driver",
    "drivers/hw_accel/ge2d:ge2d-driver",
    "drivers/sensors/imx227:driver",
  ]
}

group("service") {
  public_deps = [
    "//src/camera/bin/device",
    "//src/camera/bin/device_watcher",
  ]
}

# Add targets here that are useful for general development.
group("tools") {
  testonly = true
  public_deps = [ "//src/camera/bin/benchmark" ]
}
