# 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 = "2021"

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

  deps = [
    ":archivist-config",
    ":logmessage_measure_tape",
    "fidl:controller-rustc",
    "//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-fs",
    "//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/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 = "2021"

  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"
}

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

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",
  ]
}

rustc_fuzzer("convert_debuglog_to_log_message_fuzzer") {
  edition = "2021"
  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" ]
}
