# Copyright 2021 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")

if (is_host) {
  go_library("main") {
    source_dir = "cmd"

    sources = [
      "main.go",
      "main_test.go",
    ]

    deps = [
      "//third_party/golibs:github.com/google/go-cmp",
      "//third_party/golibs:github.com/spf13/pflag",
      "//third_party/golibs:google.golang.org/protobuf",
      "//tools/integration/fint:fint_lib",
      "//tools/integration/fint:proto_lib",
      "//tools/lib/color",
      "//tools/lib/logger",
      "//tools/lib/osmisc",
      "//tools/lib/subprocess",
    ]
  }

  go_binary("fx-set") {
    library = ":main"
  }

  go_test("fx_set_tests") {
    library = ":main"
    output_name = "fx_set_tests"
  }
}

group("tests") {
  testonly = true
  deps = [ ":fx_set_tests($host_toolchain)" ]
}
