# Copyright 2017 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/config/fuchsia/rules.gni")
import("//build/package.gni")

driver_module("usb_video_driver") {
  output_name = "usb_video"

  sources = [
    "binding.c",
    "camera_control_impl.cpp",
    "camera_control_impl.h",
    "usb-video-stream.cpp",
    "usb-video-stream.h",
    "usb-video.cpp",
    "usb-video.h",
    "uvc_format.cpp",
    "uvc_format.h",
    "video-util.c",
    "video-util.h",
  ]

  deps = [
    "//garnet/public/fidl/fuchsia.camera.driver",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fidl/cpp",
    "//zircon/public/lib/async-default",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/ddk",
    "//zircon/public/lib/ddktl",
    "//zircon/public/lib/dispatcher-pool",
    "//zircon/public/lib/driver",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/sync",
    "//zircon/public/lib/usb",
    "//zircon/public/lib/zx",
    "//zircon/public/lib/fzl",
    "//zircon/public/lib/zxcpp",
  ]

  configs -= [ "//build/config/fuchsia:no_cpp_standard_library" ]
  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
}

package("usb_video") {
  deprecated_system_image = true

  deps = [
    ":usb_video_driver",
  ]

  drivers = [
    {
      name = "usb_video.so"
    },
  ]
}
