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

driver("virtual_camera_device") {
  sources = [
    "virtual_camera_device.cc",
    "virtual_camera_stream.cc",
  ]

  deps = [
    "$zx/system/fidl/fuchsia-hardware-camera:c",
    "$zx/system/fidl/fuchsia-sysmem:c",
    "$zx/system/ulib/async:async-cpp",
    "$zx/system/ulib/async-loop:async-loop-cpp",
    "$zx/system/ulib/ddk",
    "$zx/system/ulib/ddktl",
    "$zx/system/ulib/fidl-utils",
    "$zx/system/ulib/fzl",
    "$zx/system/ulib/zx",
  ]

  # TODO(ZX-2863): This driver violates the allowed shlib deps policy.
  deprecated_inhibit_driver_shlib_allowlist = true
}

driver("virtual_camera_factory") {
  sources = [
    "virtual_camera_factory.cc",
  ]

  deps = [
    "$zx/system/fidl/fuchsia-camera-common:llcpp",
    "$zx/system/ulib/ddk",
    "$zx/system/ulib/ddktl",
    "$zx/system/ulib/fzl",
  ]
}

group("virtual_camera") {
  deps = [
    ":virtual_camera_device",
    ":virtual_camera_factory",
  ]
}
