# 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/bind/bind.gni")
import("//build/components.gni")
import("//build/drivers.gni")
import("//build/fidl/fidl.gni")
import("//build/test.gni")

fidl("fuchsia.hardware.sample") {
  sources = [ "sample.test.fidl" ]
}

driver_bind_rules("bind") {
  rules = "meta/sample_driver.bind"
  bind_output = "sample_driver.bindbc"
  deps = [ "//src/devices/bind/fuchsia.test" ]
}

fuchsia_cc_driver("driver") {
  legacy = true
  output_name = "sample_driver"
  sources = [ "sample_driver.cc" ]
  deps = [
    ":bind",
    ":fuchsia.hardware.sample_cpp",
    "//src/devices/lib/driver",
    "//src/lib/ddktl",
    "//zircon/system/ulib/fbl",
    "//zircon/system/ulib/inspect",
    "//zircon/system/ulib/zx",
  ]
}

fuchsia_driver_component("sample_driver") {
  component_name = "sample_driver"
  deps = [ ":driver" ]
  info = "meta/sample_driver_info.json"
  manifest = "meta/sample_driver.cml"
}
