# 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")
import("//build/host.gni")

# This tool can only be built on the host
if (is_host) {
  go_library("main") {
    name = "main"
    source_dir = "."
    deps = [ "lib" ]
  }

  go_binary("undercoat") {
    gopackage = "main"
    deps = [ ":main" ]
  }

  go_test("undercoat_tests") {
    gopackages = [ "fuchsia.googlesource.com/fuchsia/tools/fuzz/lib" ]
    args = [ "-test.short" ]  # exclude end-to-end
    deps = [ "lib" ]
  }

  group("tests") {
    testonly = true

    deps = [ ":undercoat_tests" ]
  }
}

install_host_tools("fuzz") {
  deps = [ ":undercoat" ]
  outputs = [ "undercoat" ]
}
