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

if (is_host) {
  go_library("gopkg") {
    name = "main"
    sources = [ "main.go" ]
    deps = [
      "//tools/fidl/lib/fidlgen",
      "//tools/fidl/lib/summarize:gopkg",
    ]
  }

  go_binary("fidl_api_summarize") {
    gopackage = "main"
    deps = [ ":gopkg" ]
  }
}  # is_host

install_host_tools("host") {
  deps = [ ":fidl_api_summarize" ]
  outputs = [ "fidl_api_summarize" ]
}

group("tests") {
  testonly = true
  deps = [ "//tools/fidl/lib/summarize:tests" ]
}
