# 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_binary.gni")
import("//build/go/go_library.gni")
import("//build/host.gni")
import("//third_party/protobuf/proto_library.gni")

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

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