# 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/config/fuchsia/rules.gni")

group("broker") {
  deps = [ ":nand-broker" ]
}

driver_module("nand-broker") {
  configs += [
    "//build/config:all_source",
    "//build/config/fuchsia:enable_zircon_asserts",
  ]
  if (is_fuchsia) {
    configs += [ "//build/unification/config:zircon-migrated" ]
  }
  sources = [ "broker.cc" ]
  deps = [
    "//sdk/banjo/ddk.protocol.nand",
    "//sdk/fidl/fuchsia.hardware.nand:fuchsia.hardware.nand_c",
    "//sdk/fidl/fuchsia.nand:fuchsia.nand_c",
    "//src/devices/lib/driver",
    "//src/lib/ddk",

    # TODO(fxb/38132): Migrate to the new bind rules and delete the below
    "//src/lib/ddk:ddk-deprecated-binding-headers",
    "//src/lib/ddktl",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/sync",
    "//zircon/public/lib/zx",
  ]
}

group("tests") {
  testonly = true
  deps = [ "test:nandpart-broker-test" ]
}
