# Copyright 2019 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/go_test.gni")

go_library("serial") {
  sources = [
    "serial.go",
    "serial_darwin.go",
    "serial_linux.go",
    "server.go",
    "server_test.go",
  ]
  deps = [
    "//third_party/golibs:golang.org/x/sys",
    "//tools/lib/logger",
  ]
}

go_test("tests") {
  output_name = "serial_tests"
  gopackages = [ "go.fuchsia.dev/fuchsia/tools/serial" ]
  deps = [ ":serial" ]
}
