# Copyright 2017 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/go/go_binary.gni")
import("//build/go/go_library.gni")
import("//build/host.gni")

go_library("make-fuchsia-vol_lib") {
  name = "make-fuchsia-vol"
  deps = [
    "//garnet/go/src/thinfs:thinfs_lib",
  ]
}

go_binary("make-fuchsia-vol") {
  gopackage = "make-fuchsia-vol"

  deps = [
    ":make-fuchsia-vol_lib",
  ]
}

install_host_tools("host") {
  deps = [
    ":make-fuchsia-vol",
  ]
  outputs = [
    "make-fuchsia-vol",
  ]
}
