blob: 2899781c9f7dfaa4e1015ba58332ed6b28197be5 [file] [log] [blame]
# Copyright 2021 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/rust/rustc_binary.gni")
import("//build/rust/rustc_library.gni")
import("//src/sys/build/components.gni")
fxfs_deps = [
"//src/lib/fuchsia-async",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:async-trait",
"//third_party/rust_crates:bincode",
"//third_party/rust_crates:byteorder",
"//third_party/rust_crates:futures",
"//third_party/rust_crates:log",
"//third_party/rust_crates:num",
"//third_party/rust_crates:rand",
"//third_party/rust_crates:serde",
"//third_party/rust_crates:thiserror",
]
fxfs_test_deps = [ "//third_party/rust_crates:matches" ]
fxfs_sources = [
"src/device.rs",
"src/device/buffer.rs",
"src/device/buffer_allocator.rs",
"src/device/file_backed_device.rs",
"src/errors.rs",
"src/lib.rs",
"src/lsm_tree.rs",
"src/lsm_tree/merge.rs",
"src/lsm_tree/simple_persistent_layer.rs",
"src/lsm_tree/single_item_layer.rs",
"src/lsm_tree/skip_list_layer.rs",
"src/lsm_tree/tests.rs",
"src/lsm_tree/types.rs",
"src/mkfs.rs",
"src/mount.rs",
"src/object_handle.rs",
"src/object_store.rs",
"src/object_store/allocator.rs",
"src/object_store/allocator/merge.rs",
"src/object_store/constants.rs",
"src/object_store/directory.rs",
"src/object_store/filesystem.rs",
"src/object_store/journal.rs",
"src/object_store/journal/reader.rs",
"src/object_store/journal/super_block.rs",
"src/object_store/journal/writer.rs",
"src/object_store/merge.rs",
"src/object_store/record.rs",
"src/object_store/testing.rs",
"src/object_store/testing/fake_allocator.rs",
"src/object_store/testing/fake_filesystem.rs",
"src/object_store/tests.rs",
"src/object_store/transaction.rs",
"src/testing.rs",
"src/testing/fake_device.rs",
"src/testing/fake_object.rs",
"src/volume.rs",
]
if (is_fuchsia) {
fxfs_deps += [
"//sdk/fidl/fuchsia.fs:fuchsia.fs-rustc",
"//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
"//sdk/fidl/fuchsia.mem:fuchsia.mem-rustc",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia-component",
"//src/lib/fuchsia-runtime",
"//src/lib/storage/block_client/rust:remote-block-device",
"//src/lib/storage/vfs/rust:vfs",
"//src/lib/zircon/rust:fuchsia-zircon",
]
fxfs_test_deps += [ "//garnet/lib/rust/io_util" ]
fxfs_sources += [
"src/device/block_device.rs",
"src/server.rs",
"src/server/directory.rs",
"src/server/errors.rs",
"src/server/file.rs",
"src/server/node.rs",
"src/server/testing.rs",
"src/server/volume.rs",
]
}
rustc_library("lib") {
edition = "2018"
with_unit_tests = true
name = "fxfs"
deps = fxfs_deps
sources = fxfs_sources
test_deps = fxfs_test_deps
}
fuchsia_component("fxfs-test") {
testonly = true
deps = [ ":lib_test" ]
manifest = "meta/fxfs_lib_test.cml"
}
fuchsia_test_package("fxfs-tests") {
test_components = [ ":fxfs-test" ]
}
group("tests") {
testonly = true
deps = [
":fxfs-tests",
":lib_test($host_toolchain)",
]
}
rustc_binary("fxfs") {
edition = "2018"
deps = [
":lib",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-runtime",
"//src/lib/storage/block_client/rust:remote-block-device",
"//src/lib/syslog/rust:syslog",
"//src/lib/zircon/rust:fuchsia-zircon",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:argh",
]
sources = [ "src/main.rs" ]
}