# Copyright 2018 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/components.gni")
import("//build/cpp/sdk_shared_library.gni")
import("//build/test.gni")

sdk_shared_library("svc") {
  category = "partner"

  sources = [
    "dir.cc",
    "dir.h",
  ]

  public_deps = [ "//zircon/public/lib/async" ]

  deps = [
    "//sdk/lib/sys/cpp",
    "//sdk/lib/vfs/cpp",
  ]

  include_base = "//sdk"

  libcxx_linkage = "static"

  public_configs = [ "//sdk/config" ]

  runtime_deps = [
    "//sdk/lib/fdio:fdio_sdk",
    "//zircon/system/ulib/async-default:async-default_sdk",
  ]
}

test("svc_unittests") {
  sources = [ "dir_unittest.cc" ]

  deps = [
    ":svc",
    "//garnet/public/lib/gtest",
    "//sdk/lib/fdio",
    "//src/lib/fxl/test:gtest_main",
    "//zircon/public/lib/zx",
  ]
}

fuchsia_unittest_package("svc_tests") {
  deps = [ ":svc_unittests" ]
  manifest = "meta/svc_unittests.cmx"
}
