# 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.

visibility = [ "$cobalt_root/*" ]

import("//third_party/protobuf/proto_library.gni")

proto_library("pb") {
  sources = [
    "clearcut_extensions.proto",
    "common.proto",
    "encrypted_message.proto",
    "envelope.proto",
    "event.proto",
    "key.proto",
    "observation.proto",
    "observation_batch.proto",
  ]
  import_dirs = [
    "//third_party/protobuf/src",
    "$cobalt_root",
  ]
  proto_in_dir = "$cobalt_root"
  generate_python = false
  cc_generator_options = "lite"
  deps = [
    "$cobalt_root/src/lib/clearcut:clearcut_proto",
    "$cobalt_root/src/registry:cobalt_registry_proto",
    "//third_party/boringssl",
  ]
  extra_configs = [ "$cobalt_root:cobalt_config" ]
}

proto_library("system_data_history") {
  proto_in_dir = "$cobalt_root"
  cc_generator_options = "lite"
  sources = [ "system_data_history.proto" ]
  extra_configs = [ "$cobalt_root:cobalt_config" ]
  deps = [ ":pb" ]
}

source_set("metadata_builder") {
  sources = [
    "metadata_builder.cc",
    "metadata_builder.h",
  ]
  public_deps = [ ":pb" ]

  deps = [
    ":system_data_history",
    "$cobalt_root/src/lib/util:clock",
    "$cobalt_root/src/lib/util:consistent_proto_store",
    "$cobalt_root/src/lib/util:datetime_util",
    "$cobalt_root/src/lib/util:file_system",
    "$cobalt_root/src/lib/util:protected_fields",
    "$cobalt_root/src/logger:project_context",
    "$cobalt_root/src/system_data",
  ]
}

source_set("tests") {
  testonly = true
  sources = [ "metadata_builder_test.cc" ]
  deps = [
    ":metadata_builder",
    ":pb",
    "$cobalt_root/src:logging",
    "$cobalt_root/src/lib/util:clock",
    "$cobalt_root/src/lib/util:datetime_util",
    "$cobalt_root/src/lib/util:posix_file_system",
    "$cobalt_root/src/lib/util/testing:test_with_files",
    "$cobalt_root/src/logger:project_context",
    "$cobalt_root/src/system_data:fake_system_data",
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/googletest:gtest",
  ]
}
