| # 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" |
| sdk_name = "vfs_internal" |
| 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 = [ "//sdk/lib/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:partner_idk_versioned_shared_libraries", |
| "//sdk:core_cc_prebuilt_libraries", |
| "//sdk/lib/vfs/cpp:*", |
| ] |
| } |