blob: 7878d60de7deb711809d9bc425d7f0b202965b94 [file] [log] [blame]
# Copyright 2019 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/fuzz.gni")
import("//build/images/filesystem_limits.gni")
import("//build/rust/rustc_binary.gni")
import("//build/rust/rustc_fuzzer.gni")
import("//build/rust/rustc_library.gni")
import("//src/diagnostics/archivist/build/archivist.gni")
import("//src/diagnostics/archivist/configs.gni")
import("//tools/fidl/measure-tape/measure_tape.gni")
measure_tape("logmessage_measure_tape") {
target_binding = "rust"
target_types = [ "fuchsia.logger/LogMessage" ]
fidls = [ "//sdk/fidl/fuchsia.logger" ]
}
rustc_library("lib") {
name = "archivist_lib"
with_unit_tests = true
edition = "2021"
visibility = [
"//src/diagnostics/archivist/*",
"//src/diagnostics/launcher/*",
]
deps = [
":archivist-config",
":logmessage_measure_tape",
"//sdk/fidl/fuchsia.boot:fuchsia.boot_rust",
"//sdk/fidl/fuchsia.component:fuchsia.component_rust",
"//sdk/fidl/fuchsia.diagnostics:fuchsia.diagnostics_rust",
"//sdk/fidl/fuchsia.diagnostics.host:fuchsia.diagnostics.host_rust",
"//sdk/fidl/fuchsia.inspect:fuchsia.inspect_rust",
"//sdk/fidl/fuchsia.inspect.deprecated:fuchsia.inspect.deprecated_rust",
"//sdk/fidl/fuchsia.io:fuchsia.io_rust",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_rust",
"//sdk/fidl/fuchsia.mem:fuchsia.mem_rust",
"//sdk/fidl/fuchsia.process.lifecycle:fuchsia.process.lifecycle_rust",
"//src/diagnostics/lib/inspect-fidl-load",
"//src/lib/diagnostics/data/rust",
"//src/lib/diagnostics/hierarchy/rust",
"//src/lib/diagnostics/inspect/contrib/rust",
"//src/lib/diagnostics/inspect/derive",
"//src/lib/diagnostics/inspect/format/rust",
# Archivist needs to use InspectSink from itself, so it does not
# include the normal inspect/client.shard.cml.
"//src/lib/diagnostics/inspect/runtime/rust:unchecked_includes",
"//src/lib/diagnostics/inspect/rust",
"//src/lib/diagnostics/log/encoding/rust",
"//src/lib/diagnostics/log/message/rust",
"//src/lib/diagnostics/selectors",
"//src/lib/fdio/rust:fdio",
"//src/lib/fidl/rust/fidl",
"//src/lib/fidl_table_validation",
"//src/lib/flyweights",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-component",
"//src/lib/fuchsia-fs",
"//src/lib/fuchsia-runtime",
"//src/lib/fuchsia-sync",
"//src/lib/trace/rust:trace",
"//src/lib/zircon/rust:fuchsia-zircon",
"//src/lib/zircon/rust:fuchsia-zircon-status",
"//src/sys/lib/moniker",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:derivative",
"//third_party/rust_crates:futures",
"//third_party/rust_crates:lazy_static",
"//third_party/rust_crates:pin-project",
"//third_party/rust_crates:serde",
"//third_party/rust_crates:serde_cbor",
"//third_party/rust_crates:serde_json",
"//third_party/rust_crates:thiserror",
"//third_party/rust_crates:tracing",
"//third_party/rust_crates:tracing-subscriber",
]
test_deps = [
"//src/diagnostics/lib/validating-log-listener",
"//src/lib/diagnostics/log/encoding/rust",
"//src/lib/diagnostics/testing/diagnostics-assertions/rust:diagnostics-assertions",
"//src/lib/fuchsia",
"//src/lib/syslog/rust:syslog-listener",
"//third_party/rust_crates:assert_matches",
"//third_party/rust_crates:libc",
"//third_party/rust_crates:tempfile",
"//third_party/rust_crates:test-case",
]
sources = [
"src/accessor.rs",
"src/archivist.rs",
"src/component_lifecycle.rs",
"src/configs.rs",
"src/constants.rs",
"src/diagnostics.rs",
"src/error.rs",
"src/events/error.rs",
"src/events/mod.rs",
"src/events/router.rs",
"src/events/sources/event_source.rs",
"src/events/sources/mod.rs",
"src/events/types.rs",
"src/formatter.rs",
"src/identity.rs",
"src/inspect/collector.rs",
"src/inspect/container.rs",
"src/inspect/mod.rs",
"src/inspect/repository.rs",
"src/inspect/servers/inspect_sink.rs",
"src/inspect/servers/mod.rs",
"src/lib.rs",
"src/logs/budget.rs",
"src/logs/buffer.rs",
"src/logs/buffer/arc_list.rs",
"src/logs/container.rs",
"src/logs/debuglog.rs",
"src/logs/error.rs",
"src/logs/listener.rs",
"src/logs/listener/filter.rs",
"src/logs/mod.rs",
"src/logs/multiplex.rs",
"src/logs/repository.rs",
"src/logs/serial.rs",
"src/logs/servers/log.rs",
"src/logs/servers/log_settings.rs",
"src/logs/servers/mod.rs",
"src/logs/socket.rs",
"src/logs/stats.rs",
"src/logs/stored_message.rs",
"src/logs/testing.rs",
"src/pipeline.rs",
"src/severity_filter.rs",
"src/testing.rs",
"src/utils.rs",
]
configs += [ "//build/config/rust/lints:clippy_warn_all" ]
}
archivist_optimized_binary("bin") {
name = "archivist"
with_unit_tests = true
edition = "2021"
deps = [
":archivist-config",
":lib",
"//src/lib/diagnostics/inspect/rust",
"//src/lib/diagnostics/log/rust",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-component",
"//src/lib/fuchsia-runtime",
"//src/lib/trace/rust:trace-provider",
"//src/lib/zircon/rust:fuchsia-zircon",
"//src/sys/lib/stdout-to-debuglog/rust",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:tracing",
"//third_party/rust_crates:tracing-subscriber",
]
test_deps = [
"//sdk/fidl/fuchsia.io:fuchsia.io_rust",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_rust",
"//src/lib/diagnostics/selectors",
"//third_party/rust_crates:futures",
"//third_party/rust_crates:thiserror",
]
sources = [ "src/main.rs" ]
configs = [ "//build/config/rust/lints:clippy_warn_all" ]
}
fuchsia_component_manifest("root-manifest") {
manifest = "meta/archivist.cml"
component_name = "archivist"
required_offers = []
}
fuchsia_component("component") {
cm_label = ":root-manifest"
deps = [ ":bin" ]
# console uses the boot log.
# The includes checker wants the syslog shard because console gets the
# injected dep on the legacy syslog backend.
check_includes = false
}
fuchsia_component_manifest("archivist-for-embedding-manifest") {
manifest = "meta/archivist-for-embedding.cml"
component_name = "archivist-for-embedding"
}
fuchsia_component("archivist-for-embedding-component") {
component_name = "archivist-for-embedding"
cm_label = ":archivist-for-embedding-manifest"
deps = [ ":bin" ]
}
fuchsia_structured_config_values("archivist-embedded-config") {
cm_label = ":archivist-for-embedding-manifest"
values = embedded_config
}
fuchsia_structured_config_values("archivist-default-config") {
cm_label = ":root-manifest"
values = default_config
}
fuchsia_structured_config_rust_lib("archivist-config") {
cm_label = ":root-manifest"
}
group("archivist-for-embedding-bundle") {
visibility = [
"//src/diagnostics/*",
"//src/lib/diagnostics/*",
"//src/sys/component_manager/tests/*",
"//src/sys/test_manager:*",
]
deps = [
":archivist-embedded-config",
":archivist-for-embedding-component",
]
}
fuchsia_package("package") {
package_name = "archivist"
deps = [
":archivist-default-config",
":component",
]
}
fuchsia_package("archivist-for-embedding") {
visibility = [
"//bundles/buildbot/*",
# TODO(crbug.com/1408597): Remove once the Chromium tests package the fakes.
"//src/chromium:chromium_test_base_deps",
]
deps = [ ":archivist-for-embedding-bundle" ]
}
rustc_fuzzer("convert_debuglog_to_log_message_fuzzer") {
edition = "2021"
deps = [
":lib",
"//src/lib/diagnostics/data/rust",
"//src/lib/fuzzing/rust:fuzz",
"//src/lib/zircon/rust:fuchsia-zircon",
"//third_party/rust_crates:arbitrary",
]
source_root = "src/fuzzer.rs"
sources = [ "src/fuzzer.rs" ]
}
fuchsia_fuzzer_component("convert-debuglog-to-log-message-fuzzer-component") {
manifest = "meta/convert_debuglog_to_log_message_fuzzer.cml"
deps = [ ":convert_debuglog_to_log_message_fuzzer" ]
}
fuchsia_fuzzer_package("archivist-fuzzers") {
rust_fuzzer_components =
[ ":convert-debuglog-to-log-message-fuzzer-component" ]
}
fuchsia_unittest_component("archivist-unittests") {
manifest = "meta/archivist-unittests.cml"
deps = [ ":lib_test" ]
}
fuchsia_test_package("archivist-tests") {
test_components = [ ":archivist-unittests" ]
}
group("archivist") {
testonly = true
deps = [
":package",
":tests",
]
}
group("tests") {
testonly = true
public_deps = [
":archivist-fuzzers",
":archivist-tests",
"build/scripts:tests",
"tests",
]
}
group("benchmarks") {
testonly = true
public_deps = [ "bench" ]
}