blob: 7b7d07ed3e3de6c03658c8ecc1297a9839dab333 [file] [log] [blame]
# Copyright 2024 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")
# **WARNING**: The purpose of this library is to provide a stable API to the in-tree C++ VFS, and
# is not intended for general use. The only clients of this target should be storage-owned libraries
# that provide safe constructs for pseudo filesystem functionality.
#
# Targets that require pseudo filesystem functionality *must* use the C++ SDK library in
# //sdk/lib/vfs/cpp or the in-tree C+ VFS in //src/storage/lib/vfs/cpp.
#
# Test coverage for this library is satisfied by the unit tests in //sdk/lib/vfs/cpp and the
# fuchsia.io conformance test suite in //src/storage/conformance.
sdk_shared_library("vfs_internal") {
# This library must be published as a partner SDK in order for it to be used by the partner
# libraries we currently ship, similar to how //sdk/lib/svc is used by //sdk/lib/component.
# All symbol names are prefixed with `vfs_internal_` which should discourage general usage.
#
# The intention is to allow changes to this library to be made in a transparent manner as it
# should only be a transitive dependency of clients. This allows for easier iteration to this
# library while still complying with Fuchsia API guidelines and versioning requirements.
category = "partner"
symbols_api = "vfs_internal.ifs"
include_base = "//sdk"
libcxx_linkage = "static"
sources = [
"libvfs.cc",
"libvfs_private.h",
]
sdk_headers_for_internal_use = [ "libvfs_private.h" ]
public_deps = [ "//zircon/system/ulib/async" ]
deps = [
"//sdk/fidl/fuchsia.io:fuchsia.io_cpp",
"//src/storage/lib/vfs/cpp",
"//zircon/system/ulib/fbl",
]
public_configs = [ "//sdk/config" ]
# ________ _________ ________ ________
# |\ ____\|\___ ___\\ __ \|\ __ \
# \ \ \___|\|___ \ \_\ \ \|\ \ \ \|\ \
# \ \_____ \ \ \ \ \ \ \\\ \ \ ____\
# \|____|\ \ \ \ \ \ \ \\\ \ \ \___|
# ____\_\ \ \ \__\ \ \_______\ \__\
# |\_________\ \|__| \|_______|\|__|
# \|_________|
#
# This target should *only* be used within //sdk/lib/vfs. Do not modify this visibility list.
visibility = [
":*",
"//build/sdk:deprecated_sdk_shared_libraries_to_build_at_all_supported_api_levels",
"//sdk:core_cc_prebuilt_libraries",
"//sdk/lib/vfs/cpp:*",
]
}