# 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_library.gni")
import("//third_party/protobuf/proto_library.gni")

_protos = [
  "sink",
  "test_result"
]

proto_library("resultsink_proto") {
  sources = []
  foreach(name, _protos) {
    sources += [ "${name}.proto" ]
  }
  proto_in_dir = "//third_party/luci-go"
  import_dirs = [
    "//third_party/protobuf/src",
  ]
  generate_python = false
  generate_cc = false
  generate_go = true
}

go_library("resultsink_proto_go") {
  name = "go.chromium.org/luci/resultdb/sink/proto/v1"
  source_dir = "$root_gen_dir/go-proto-gen/src/third_party/luci-go/resultdb/sink/proto/v1"
  non_go_deps = [ ":resultsink_proto" ]
  sources = []

  foreach(name, _protos) {
    sources += [ "${name}.pb.go" ]
  }
  deps = [
    "//third_party/golibs:github.com/golang/protobuf",
    "//third_party/luci-go/resultdb/proto/v1:resultdb_proto_go"
  ]
}
