blob: d6a88860d0f627cee84d2b2024f30d6afc9e94dc [file] [log] [blame]
# 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/unification/zx_library.gni")
# libmemfs-cpp.a: The C++ client library.
#
# Used to implement the C++ components of Memfs, which
# can be plugged into ulib/fs.
zx_library("memfs-cpp") {
sdk = "source"
sdk_headers = [ "lib/memfs/cpp/vnode.h" ]
sources = [
"directory.cc",
"dnode.cc",
"file.cc",
"include/lib/memfs/memfs.h",
"memfs.cc",
"vmo.cc",
]
public_deps = [
# <lib/memfs/cpp/vnode.h> has #include <lib/fdio/io.h>
"//sdk/lib/fdio",
# <lib/memfs/cpp/vnode.h> has #include <fbl/ref_ptr.h>
"//zircon/public/lib/fbl",
# <lib/memfs/cpp/vnode.h> has #include <lib/zx/vmo.h>
"//zircon/public/lib/zx",
# <lib/memfs/cpp/vnode.h> has #include <fs/vfs.h> and many other <fs/*.h>
"//zircon/system/ulib/fs",
]
deps = [
"//sdk/fidl/fuchsia.io:fuchsia.io_llcpp",
"//sdk/lib/syslog/cpp",
"//zircon/public/lib/async",
"//zircon/public/lib/async-cpp",
"//zircon/public/lib/sync",
]
# TODO(fxbug.dev/58162): delete the below and fix compiler warnings
configs += [ "//build/config:Wno-conversion" ]
}
# libmemfs.so: The C ABI client library.
#
# Used to create local temporary filesystems.
zx_library("memfs") {
sdk = "shared"
sdk_publishable = true
sdk_headers = [ "lib/memfs/memfs.h" ]
shared = true
sources = [ "memfs-local.cc" ]
public_deps = [
# <lib/memfs/memfs.h> has #include <lib/async/dispatcher.h>.
"//zircon/public/lib/async",
"//zircon/public/lib/fit",
# <lib/memfs/memfs.h> has #include <lib/sync/completion.h>.
"//zircon/public/lib/sync",
]
deps = [
":memfs-cpp",
"//sdk/lib/fdio",
"//zircon/public/lib/fbl",
"//zircon/system/ulib/fs",
]
runtime_deps = [
"//sdk/lib/fdio:fdio_sdk",
"//zircon/system/ulib/trace-engine:trace-engine_sdk",
]
}
group("tests") {
testonly = true
deps = [ "test:tests" ]
}