blob: 5915a64712a37aa546a9ddab820be040d0b3351b [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")
assert(is_host, "gn_desc is only supported on the host")
group("bin") {
testonly = true
deps = [ ":gn_desc" ]
}
# This is the binary tool itself
rustc_binary("gn_desc") {
edition = "2021"
testonly = true
with_unit_tests = true
# This is compiled with optimizations enabled so that operations are as
# performant as possible. The JSON parsing itself is optimized in the
# `gn_json` rlib, but this ensures that follow-on operations like graph
# traversals are also optimized.
configs += [ "//build/config:optimize_speed" ]
deps = [
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:argh",
"//third_party/rust_crates:humansize",
"//third_party/rust_crates:regex",
"//third_party/rust_crates:serde_json",
"//tools/gn_desc/gn_graph",
"//tools/gn_desc/gn_json",
]
test_deps = [ "//third_party/rust_crates:pretty_assertions" ]
sources = [
"src/args.rs",
"src/commands.rs",
"src/commands/all_deps.rs",
"src/commands/list.rs",
"src/commands/selectors.rs",
"src/commands/summarize.rs",
"src/display.rs",
"src/display/list.rs",
"src/display/optional_line.rs",
"src/main.rs",
]
}
group("tests") {
testonly = true
deps = [ ":gn_desc_test" ]
}