# 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/apidiff:gopkg",
      "//tools/fidl/lib/fidlgen",
      "//tools/fidl/lib/summarize:gopkg",
    ]
  }

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

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

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