# 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/zircon/zx_library.gni")

zx_library("svc") {
  sdk = "source"
  sdk_headers = [
    "lib/svc/outgoing.h",
    "lib/svc/service.h",
  ]
  sources = [ "outgoing.cc" ]
  deps = [ "//sdk/lib/fdio" ]
  public_deps = [
    "//sdk/fidl/fuchsia.io:fuchsia.io_cpp",
    "//src/storage/lib/vfs/cpp",
    "//zircon/system/ulib/async",
    "//zircon/system/ulib/zx",
  ]

  #  ________  _________  ________  ________
  # |\   ____\|\___   ___\\   __  \|\   __  \
  # \ \  \___|\|___ \  \_\ \  \|\  \ \  \|\  \
  #  \ \_____  \   \ \  \ \ \  \\\  \ \   ____\
  #   \|____|\  \   \ \  \ \ \  \\\  \ \  \___|
  #     ____\_\  \   \ \__\ \ \_______\ \__\
  #    |\_________\   \|__|  \|_______|\|__|
  #    \|_________|
  #
  # This is an allowlist of targets that use the svc library. New code should use the
  # component::OutgoingDirectory class in //sdk/lib/sys/component/cpp instead.
  #
  # To remove items from the allowlist, please send a change to one of the OWNERS of
  # this file to remove an element from the visibility list below.
  #
  # Please allowlist entire directories rather than individual targets as it
  # requires less allowlist churn over time.
  #
  # To regenerate:
  #   scripts/gn/trim_visibility.py --target="//zircon/system/ulib/svc"
  visibility = [
    "//examples/fidl/cpp/services/server/*",
    "//sdk/lib/driver_test_realm/*",
    "//src/bringup/bin/console/*",
    "//src/bringup/bin/critical-services/*",
    "//src/bringup/bin/device-name-provider/*",
    "//src/bringup/bin/kernel_debug_broker/*",
    "//src/bringup/bin/paver/*",
    "//src/bringup/bin/sysinfo/*",
    "//src/bringup/bin/sysmem/*",
    "//src/connectivity/network/tun/network-tun/*",
    "//src/connectivity/openthread/ot-stack/*",
    "//src/connectivity/openthread/third_party/openthread/platform/*",
    "//src/connectivity/openthread/third_party/openthread/platform/tests/*",
    "//src/devices/bin/driver_manager/*",
    "//src/devices/block/drivers/sdmmc/*",
    "//src/devices/board/lib/acpi/*",
    "//src/devices/bus/drivers/pci/*",
    "//src/devices/i2c/drivers/i2c/*",
    "//src/devices/testing/mock-ddk/*",
    "//src/devices/tests/fidl-protocol/*",
    "//src/graphics/drivers/misc/goldfish/*",
    "//src/graphics/drivers/misc/goldfish_address_space/*",
    "//src/graphics/drivers/misc/goldfish_sync/*",
    "//src/media/audio/drivers/aml-dsp/*",
    "//src/storage/lib/paver/*",
    "//src/storage/lib/paver/test/*",
    "//src/sys/component_manager/tests/rights/*",
    "//src/sys/component_manager/tests/security_policy/capability_allowlist/*",
    "//src/virtualization/packages/*",
    "//zircon/system/ulib/kcounter/*",
    "//zircon/system/ulib/kernel-debug/*",
    "//zircon/system/ulib/ktrace/*",
    "//zircon/system/ulib/profile/*",
  ]
}
