# 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/unification/zx_library.gni")

# This library requires an environment with mtd/mtd-user.h and MTD support.

zx_library("mtd") {
  sdk = "source"
  sdk_headers = [
    "lib/mtd/mtd-interface.h",
    "lib/mtd/nand-interface.h",
  ]
  host = true

  sources = []
  if (current_os == "linux") {
    sources += [ "mtd-interface.cc" ]
  }

  public_deps = [ "//zircon/public/lib/fbl" ]

  deps = [
    "//zircon/public/lib/fbl",
    "//zircon/system/ulib/log",
  ]

  defines = []

  if (current_cpu == "arm64") {
    defines += [ "SPARE_SIZE=8" ]
  } else {
    defines += [ "MEMWRITE_NOT_SUPPORTED" ]
  }
}
