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

##########################################
# Though under //zircon, this build file #
# is meant to be used in the Fuchsia GN  #
# build.                                 #
# See fxbug.dev/36548.                   #
##########################################

assert(!defined(zx) || zx != "/",
       "This file can only be used in the Fuchsia GN build.")

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" ]
  }
}
