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

import("//build/sdk/sdk_host_tool.gni")

executable("minfs") {
  sources = [ "main.cc" ]
  deps = [
    "//src/lib/storage/vfs/cpp/journal",
    "//src/storage/minfs",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zxc",
    "//zircon/system/ulib/bitmap",
    "//zircon/system/ulib/fs-host",
  ]

  if (!is_fuchsia) {
    deps += [ "//zircon/system/ulib/zx-panic-libc" ]
  }
  configs += [
    # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
    "//build/config:Wno-conversion",
  ]
}

sdk_host_tool("minfs_sdk") {
  category = "partner"
  output_name = "minfs"
  deps = [ ":minfs" ]
}
