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

import("//build/bind/bind.gni")
import("//build/config/fuchsia/rules.gni")

bind_rules("machina_board_bind") {
  rules = "machina_board.bind"
  output = "machina_board_bind.h"
  tests = "bind_tests.json"
  deps = [
    "//src/devices/bind/fuchsia.google.platform",
    "//src/devices/bind/fuchsia.platform",
  ]
}

group("tests") {
  testonly = true
  deps = [ ":machina_board_bind_test" ]
}

driver_module("machina") {
  configs += [
    "//build/config:all_source",
    "//build/config/fuchsia:enable_zircon_asserts",
  ]
  if (is_fuchsia) {
    configs += [ "//build/unification/config:zircon-migrated" ]
  }
  sources = [
    "machina-sysmem.c",
    "machina.c",
  ]
  deps = [
    ":machina_board_bind",
    "//sdk/banjo/fuchsia.hardware.platform.bus",
    "//sdk/banjo/fuchsia.hardware.platform.device",
    "//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_c",
    "//src/devices/lib/driver",
    "//src/lib/ddk",
  ]
}
