# 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 fxb/36139.                         #
##########################################

import("//build/cpp/sdk_executable.gni")

sdk_executable("fvm") {
  category = "partner"
  sources = [ "main.cc" ]
  deps = [
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/fit",
    "//zircon/public/lib/safemath",
    "//zircon/system/ulib/fvm",
    "//zircon/system/ulib/fvm-host",
  ]

  if (!is_fuchsia) {
    deps += [ "//zircon/public/lib/zx-panic-libc" ]
  }

  if (current_os == "linux") {
    sources += [ "mtd.cc" ]
    deps += [
      "//zircon/system/ulib/ftl-mtd",
      "//zircon/system/ulib/mtd",
    ]
  } else {
    sources += [ "mtd-stub.cc" ]
  }
}
