# 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/sdk/sdk_host_tool.gni")

executable("fvm") {
  sources = [ "main.cc" ]

  deps = [
    "//sdk/lib/fit",
    "//src/storage/fvm",
    "//src/storage/fvm/host",
    "//src/storage/volume_image/adapter:commands",
    "//src/storage/volume_image/ftl:ftl-image",
    "//src/storage/volume_image/ftl:ftl-raw-nand-image-writer",
    "//src/storage/volume_image/ftl:raw-nand-image-utils",
    "//src/storage/volume_image/fvm:fvm-sparse-image",
    "//src/storage/volume_image/utils:fd-io",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/safemath",
  ]

  if (!is_fuchsia) {
    deps += [ "//zircon/system/ulib/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" ]
  }
}

sdk_host_tool("fvm_sdk") {
  category = "partner"
  output_name = "fvm"
  deps = [ ":fvm" ]
}
