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

golden_go_proto("proto") {
  sources = [ "proto/emulator_controller.proto" ]
  import_protobuf_full = true
}

go_library("proto_lib") {
  source_dir = "proto"
  sources = [ "emulator_controller.pb.go" ]
  deps = [
    "//third_party/golibs:google.golang.org/grpc",
    "//third_party/golibs:google.golang.org/protobuf",
  ]
}

go_library("femu-grpc_lib") {
  sources = [ "femu-grpc.go" ]
  deps = [ ":proto_lib" ]
}

group("tests") {
  testonly = true

  # TODO(https://fxbug.dev/72810): proto_library doesn't support grpc-go.
  if (false) {
    deps = [ ":proto_goldens" ]
  }
}
