blob: 382523a21dba640d84e85df4ffba97b37bc2cd80 [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("ffx_plugin.gni")
# Defines FFX
#
template("ffx") {
assert(is_host, "ffx presently only builds in host toolchains")
ffx_deps = []
if (defined(invoker.plugin_deps)) {
foreach(d, invoker.plugin_deps) {
dep = d + "_suite"
ffx_deps += [ dep ]
}
}
ffx_name = target_name
if (defined(invoker.name)) {
ffx_name = invoker.name
}
suite_name = ffx_name + "_lib"
ffx_plugin(suite_name) {
forward_variables_from(invoker, "*", [ "test_deps" ])
args_deps = [ "core:lib" ]
config_data = [ "data/config.json" ]
}
rustc_binary(ffx_name + "_bin") {
output_name = ffx_name
deps = ffx_deps + [
":" + suite_name + "_args",
":" + suite_name + "_sub_command",
":" + suite_name + "_suite",
"//src/developer/ffx/lib/async-once:lib",
"//src/developer/ffx/config:lib",
"//src/developer/ffx/core:lib",
"//src/developer/ffx/daemon:lib",
"//src/developer/ffx/plugins/daemon:ffx_daemon_plugin_args",
"//src/developer/ffx/plugins/daemon:ffx_daemon_plugin_sub_command",
"//src/developer/ffx/plugins/daemon/start:ffx_daemon_start_args",
"//sdk/fidl/fuchsia.developer.bridge:fuchsia.developer.bridge-rustc",
"//sdk/fidl/fuchsia.developer.remotecontrol:fuchsia.developer.remotecontrol-rustc",
"//sdk/fidl/fuchsia.overnet.protocol:fuchsia.overnet.protocol-rustc",
"//src/connectivity/overnet/lib/hoist",
"//src/lib/analytics/rust:lib",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia-async",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:argh",
"//third_party/rust_crates:async-net",
"//third_party/rust_crates:async-trait",
"//third_party/rust_crates:futures",
"//third_party/rust_crates:hex",
"//third_party/rust_crates:lazy_static",
"//third_party/rust_crates:log",
"//third_party/rust_crates:ring",
]
non_rust_deps = [
"//src/lib/chunked-compression",
"//third_party/boringssl",
]
forward_variables_from(invoker,
"*",
[
"deps",
"name",
"non_rust_deps",
])
configs += [ "//build/config/rust:panic_abort" ]
}
group(ffx_name + "_tests") {
testonly = true
deps = [
":" + ffx_name + "_bin_test",
":" + suite_name + "_tests",
"config:tests",
"core:tests",
"daemon:tests",
]
}
}