# Copyright 2016 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/package.gni")

static_library("fsl") {
  output_name = "fsl"

  public_deps = [
    "//garnet/public/lib/fsl/handles",
    "//garnet/public/lib/fsl/io",
    "//garnet/public/lib/fsl/socket",
    "//garnet/public/lib/fsl/syslogger",
    "//garnet/public/lib/fsl/tasks",
    "//garnet/public/lib/fsl/types",
    "//garnet/public/lib/fsl/vmo",
  ]
}

executable("fsl_unittests") {
  testonly = true

  sources = [
    "handles/object_info_unittest.cc",
    "io/redirection_unittest.cc",
    "socket/blocking_drain_unittest.cc",
    "socket/files_unittest.cc",
    "socket/socket_drainer_unittest.cc",
    "socket/strings_unittest.cc",
    "syslogger/init_unittest.cc",
    "tasks/fd_waiter_unittest.cc",
    "types/type_converters_unittest.cc",
    "vmo/file_unittest.cc",
    "vmo/shared_vmo_unittest.cc",
    "vmo/strings_unittest.cc",
    "vmo/vector_unittest.cc",
  ]

  deps = [
    ":fsl",
    "//garnet/public/lib/fxl/test:gtest_main",
    "//garnet/public/lib/gtest",
    "//third_party/googletest:gtest",
  ]
}

package("package") {
  testonly = true

  package_name = "fsl"

  deps = [
    ":fsl_unittests",
  ]

  tests = [
    {
      name = "fsl_unittests"
    },
  ]
}
