blob: d768662c25983ec569042fb66256606384a3f4a2 [file] [log] [blame] [edit]
# Copyright 2022 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/components.gni")
import("//build/config.gni")
import("//build/json/validate_json.gni")
import("//build/rust/rustc_binary.gni")
import("//src/sys/core/build/core_shard.gni")
template("metrics_logger_config") {
config_data("${target_name}_config_data") {
for_pkg = "metrics-logger"
sources = [ "${invoker.source}" ]
outputs = [ "config.json" ]
}
validate_json("${target_name}_validate_json") {
data = "${invoker.source}"
schema = "config/config.schema.json"
}
group(target_name) {
deps = [
":${target_name}_config_data",
":${target_name}_validate_json",
]
}
}
metrics_logger_config("astro_config") {
source = "config/astro_config.json"
}
metrics_logger_config("sherlock_config") {
source = "config/sherlock_config.json"
}
metrics_logger_config("nelson_config") {
source = "config/nelson_config.json"
}
rustc_binary("bin") {
name = "metrics_logger"
edition = "2021"
with_unit_tests = true
deps = [
"fuchsia.metricslogger.test:fuchsia.metricslogger.test_rust",
"//sdk/fidl/fuchsia.boot:fuchsia.boot_rust",
"//sdk/fidl/fuchsia.device:fuchsia.device_rust",
"//sdk/fidl/fuchsia.gpu.magma:fuchsia.gpu.magma_rust",
"//sdk/fidl/fuchsia.hardware.network:fuchsia.hardware.network_rust",
"//sdk/fidl/fuchsia.hardware.power.sensor:fuchsia.hardware.power.sensor_rust",
"//sdk/fidl/fuchsia.hardware.temperature:fuchsia.hardware.temperature_rust",
"//sdk/fidl/fuchsia.kernel:fuchsia.kernel_rust",
"//src/lib/diagnostics/inspect/runtime/rust",
"//src/lib/diagnostics/inspect/rust",
"//src/lib/fdio/rust:fdio",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-component",
"//src/lib/fuchsia-fs",
"//src/lib/trace/rust:trace",
"//src/lib/trace/rust:trace-provider",
"//src/lib/zircon/rust:fuchsia-zircon",
"//src/starnix/lib/magma",
"//src/sys/lib/fuchsia-zbi/abi",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:async-trait",
"//third_party/rust_crates:futures",
"//third_party/rust_crates:num-traits",
"//third_party/rust_crates:serde",
"//third_party/rust_crates:serde_derive",
"//third_party/rust_crates:serde_json",
"//third_party/rust_crates:tracing",
"//third_party/rust_crates:zerocopy",
]
test_deps = [ "//third_party/rust_crates:assert_matches" ]
sources = [
"src/cpu_load_logger.rs",
"src/driver_utils.rs",
"src/gpu_usage_logger.rs",
"src/main.rs",
"src/network_activity_logger.rs",
"src/sensor_logger.rs",
]
}
core_shard("metrics-logger-shard") {
shard_file = "meta/metrics-logger.core_shard.cml"
}
fuchsia_package_with_single_component("metrics-logger") {
manifest = "meta/metrics-logger.cml"
deps = [ ":bin" ]
}
fuchsia_unittest_package("metrics-logger-tests") {
manifest = "meta/metrics-logger-tests.cml"
deps = [ ":bin_test" ]
}
group("tests") {
testonly = true
deps = [ ":metrics-logger-tests" ]
}