# 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/dist/component_manifest_resources.gni")
import("//build/fuzzing/fuzzer.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 = "2018"

  visibility = [
    "//src/diagnostics/archivist/*",
    "//src/diagnostics/launcher/*",
  ]

  deps = [
    ":archivist-config",
    ":logmessage_measure_tape",
    "fidl:controller-rustc",
    "//garnet/lib/rust/files_async",
    "//garnet/lib/rust/io_util",
    "//sdk/fidl/fuchsia.boot:fuchsia.boot-rustc",
    "//sdk/fidl/fuchsia.component:fuchsia.component-rustc",
    "//sdk/fidl/fuchsia.diagnostics:fuchsia.diagnostics-rustc",
    "//sdk/fidl/fuchsia.diagnostics.stream:fuchsia.diagnostics.stream-rustc",
    "//sdk/fidl/fuchsia.inspect:fuchsia.inspect-rustc",
    "//sdk/fidl/fuchsia.inspect.deprecated:fuchsia.inspect.deprecated-rustc",
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//sdk/fidl/fuchsia.logger:fuchsia.logger-rustc",
    "//sdk/fidl/fuchsia.mem:fuchsia.mem-rustc",
    "//sdk/fidl/fuchsia.process.lifecycle:fuchsia.process.lifecycle-rustc",
    "//sdk/fidl/fuchsia.sys.internal:fuchsia.sys.internal-rustc",
    "//sdk/fidl/fuchsia.sys2:fuchsia.sys2-rustc",
    "//src/diagnostics/lib/inspect-fidl-load",
    "//src/diagnostics/lib/validating-log-listener",
    "//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",
    "//src/lib/diagnostics/inspect/runtime/rust",
    "//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/fuchsia",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-runtime",
    "//src/lib/storage/fuchsia-watch",
    "//src/lib/storage/vfs/rust:vfs",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/syslog/rust:syslog-listener",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//src/lib/zircon/rust:fuchsia-zircon-status",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:async-trait",
    "//third_party/rust_crates:byteorder",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:itertools",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:libc",
    "//third_party/rust_crates:parking_lot",
    "//third_party/rust_crates:paste",
    "//third_party/rust_crates:pin-project",
    "//third_party/rust_crates:pin-utils",
    "//third_party/rust_crates:pretty_assertions",
    "//third_party/rust_crates:proptest",
    "//third_party/rust_crates:regex",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:tempfile",
    "//third_party/rust_crates:thiserror",
    "//third_party/rust_crates:tracing",
  ]

  test_deps = [ "//third_party/rust_crates:assert_matches" ]

  sources = [
    "src/accessor.rs",
    "src/archivist.rs",
    "src/component_lifecycle.rs",
    "src/configs.rs",
    "src/constants.rs",
    "src/container.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/legacy.rs",
    "src/events/sources/log_connector.rs",
    "src/events/sources/mod.rs",
    "src/events/sources/unattributed_log_sink.rs",
    "src/events/types.rs",
    "src/formatter.rs",
    "src/identity.rs",
    "src/inspect/collector.rs",
    "src/inspect/container.rs",
    "src/inspect/mod.rs",
    "src/lib.rs",
    "src/lifecycle/container.rs",
    "src/lifecycle/mod.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/redact.rs",
    "src/logs/redact/serialize.rs",
    "src/logs/socket.rs",
    "src/logs/stats.rs",
    "src/logs/stored_message.rs",
    "src/logs/testing.rs",
    "src/moniker_rewriter.rs",
    "src/pipeline.rs",
    "src/repository.rs",
    "src/testing.rs",
    "src/utils.rs",
  ]
}

archivist_optimized_binary("bin") {
  name = "archivist"
  with_unit_tests = true
  edition = "2018"

  deps = [
    ":archivist-config",
    ":lib",
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//sdk/fidl/fuchsia.logger:fuchsia.logger-rustc",
    "//sdk/fidl/fuchsia.sys.internal:fuchsia.sys.internal-rustc",
    "//sdk/fidl/fuchsia.sys2:fuchsia.sys2-rustc",
    "//src/lib/diagnostics/inspect/rust",
    "//src/lib/diagnostics/selectors",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-runtime",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//src/sys/lib/stdout-to-debuglog/rust",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:argh",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:log",
    "//third_party/rust_crates:thiserror",
    "//third_party/rust_crates:tracing",
  ]

  sources = [ "src/main.rs" ]
}

fuchsia_component_manifest("root-manifest") {
  manifest = "meta/archivist.cml"
  component_name = "archivist"
  restricted_features = [ "structured_config" ]
}

fuchsia_component_manifest("archivist-for-embedding-v2-manifest") {
  manifest = "meta/archivist-for-embedding.cml"
  component_name = "archivist-for-embedding"
  restricted_features = [ "structured_config" ]
}

# fxbug.dev/83213 Retain this component while out of tree tests depend on it
fuchsia_component("archivist-with-klog") {
  manifest = "meta/archivist-with-klog.cmx"
  deps = [ ":bin" ]
}

fuchsia_component("archivist-for-embedding-v1") {
  component_name = "archivist-for-embedding"
  manifest = "meta/archivist-for-embedding.cmx"
  deps = [ ":bin" ]
}

fuchsia_component("archivist-for-embedding-v2-component") {
  cm_label = ":archivist-for-embedding-v2-manifest"
  deps = [ ":bin" ]
}

fuchsia_structured_config_values("default-service-config") {
  cm_label = ":root-manifest"
  values = default_config
}

fuchsia_structured_config_values("archivist-embedded-config") {
  cm_label = ":archivist-for-embedding-v2-manifest"
  values = embedded_config
}

fuchsia_structured_config_rust_lib("archivist-config") {
  cm_label = ":root-manifest"
}

fuchsia_structured_config_values("no-detect-service-config") {
  cm_label = ":root-manifest"
  values = no_detect_config
}

fuchsia_structured_config_values("no-service-config") {
  cm_label = ":root-manifest"
  values = no_service_config
}

group("bootfs") {
  deps = [
    ":bin",
    ":root-manifest",
  ]
}

group("archivist-for-embedding-v2") {
  deps = [
    ":archivist-embedded-config",
    ":archivist-for-embedding-v2-component",
  ]
}

fuchsia_package("archivist-for-embedding") {
  deps = [
    ":archivist-for-embedding-v1",
    ":archivist-for-embedding-v2",
    ":archivist-with-klog",
  ]
}

rustc_fuzzer("convert_debuglog_to_log_message_fuzzer") {
  deps = [
    ":lib",
    "//src/lib/diagnostics/data/rust",
    "//src/lib/fuzzing/rust:fuzz",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//zircon/system/ulib/syslog",
  ]

  non_rust_deps = []

  source_root = "src/fuzzer.rs"

  sources = [ "src/fuzzer.rs" ]
}

fuzzers_package("archivist-fuzzers") {
  rust_fuzzers = [ ":convert_debuglog_to_log_message_fuzzer" ]
}

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 = [
    ":archivist-for-embedding",
    ":bootfs",
    ":tests",
  ]
}

group("tests") {
  testonly = true
  public_deps = [
    ":archivist-fuzzers",
    ":archivist-tests",
    "tests",
  ]
}

group("benchmarks") {
  testonly = true
  public_deps = [ "bench" ]
}
