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