# 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.

##########################################
# Though under //zircon, this build file #
# is meant to be used in the Fuchsia GN  #
# build.                                 #
# See fxb/36548.                         #
##########################################

assert(!defined(zx) || zx != "/",
       "This file can only be used in the Fuchsia GN build.")

import("//build/unification/zx_library.gni")

zx_library("service-llcpp") {
  sdk = "source"
  sdk_headers = [
    "lib/service/llcpp/constants.h",
    "lib/service/llcpp/service.h",
    "lib/service/llcpp/service_handler.h",
    "lib/service/llcpp/outgoing_directory.h",
  ]
  sources = [
    "llcpp/outgoing_directory.cc",
    "llcpp/service.cc",
  ]
  public_deps = [
    "//zircon/public/lib/zx",
    "//zircon/system/fidl/fuchsia-io:llcpp",
  ]
  deps = [
    "//zircon/public/lib/async",
    "//zircon/public/lib/fidl-llcpp",
    "//zircon/public/lib/fs",
    "//zircon/system/fidl/fuchsia-io:llcpp",
  ]
}
