# Copyright 2020 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/go/go_test.gni")

go_library("main") {
  source_dir = "cmd"
  deps = [ "//tools/sdk-tools/sdkcommon" ]
  sources = [
    "fpublish_test.go",
    "main.go",
  ]
}

go_binary("fpublish") {
  gopackage = "go.fuchsia.dev/fuchsia/tools/sdk-tools/fpublish/cmd"
  deps = [ ":main" ]
}

go_test("fpublish-test") {
  gopackages = [ "go.fuchsia.dev/fuchsia/tools/sdk-tools/fpublish/cmd" ]
  deps = [ ":main" ]
}

install_host_tools("fpublish-host") {
  deps = [
    ":fpublish",
    "//tools/sdk-tools/sdkcommon:host-tool-deps",
  ]
  outputs = [ "fpublish" ]
}

sdk_host_tool("fpublish_sdk") {
  category = "partner"
  output_name = "fpublish"
  deps = [ ":fpublish" ]
}
