blob: 123dae56e2deafd34412af33f874b2a8691324a3 [file] [log] [blame]
# Copyright 2020 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 = [
"//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia-async",
"//src/lib/storage/block_client/rust:remote-block-device",
"//src/lib/storage/vfs/rust:vfs",
"//src/lib/zircon/rust:fuchsia-zircon",
"//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:rand",
"//third_party/rust_crates:serde",
]
fxfs_sources = [
"src/device.rs",
"src/directory.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/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/allocator/tests.rs",
"src/object_store/constants.rs",
"src/object_store/directory.rs",
"src/object_store/filesystem.rs",
"src/object_store/log.rs",
"src/object_store/merge.rs",
"src/object_store/record.rs",
"src/object_store/tests.rs",
"src/testing/mod.rs",
"src/testing/fake_device.rs",
]
rustc_library("lib") {
edition = "2018"
with_unit_tests = true
name = "fxfs"
deps = fxfs_deps
sources = fxfs_sources
}
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" ]
}
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/zircon/rust:fuchsia-zircon",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:argh",
]
sources = [ "src/main.rs" ]
}