# Copyright 2021 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/components.gni")
import("//build/drivers.gni")

group("packaged") {
  deps = [ ":package" ]
}

fuchsia_driver("lib") {
  output_name = "packaged_driver"
  sources = [ "packaged_driver.cc" ]
  deps = [
    "//sdk/lib/driver2:inspect",
    "//sdk/lib/driver2:llcpp",
    "//sdk/lib/sys/component/cpp",
    "//src/devices/lib/driver:driver_runtime",
  ]
}

fuchsia_driver_component("component") {
  component_name = "packaged_driver"
  manifest = "meta/packaged_driver.cml"
  deps = [ ":lib" ]
  info = "component-info.json"
}

fuchsia_package("package") {
  package_name = "packaged_driver"
  deps = [ ":component" ]
}
