# 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")
import("//build/unification/images/migrated_manifest.gni")

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

driver_module("nand-broker") {
  defines = [ "_ALL_SOURCE" ]
  configs += [ "//build/config/fuchsia:enable_zircon_asserts" ]
  configs -= [ "//build/config/fuchsia:no_cpp_standard_library" ]
  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
  if (is_fuchsia) {
    configs += [ "//build/unification/config:zircon-migrated" ]
  }
  sources = [ "broker.cc" ]
  deps = [
    "//sdk/banjo/ddk.protocol.nand",
    "//sdk/fidl/fuchsia.nand:fuchsia.nand_c",
    "//src/devices/lib/driver",
    "//zircon/public/lib/ddk",
    "//zircon/public/lib/ddktl",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/sync",
    "//zircon/public/lib/zx",
    "//zircon/system/fidl/fuchsia-hardware-nand:c",
  ]
}

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