chromium/components/reporting/proto/BUILD.gn

# Copyright 2021 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//third_party/libprotobuf-mutator/fuzzable_proto_library.gni")
import("//third_party/protobuf/proto_library.gni")

# Record constants for use with the reporting messaging library.
proto_library("record_constants") {
  proto_in_dir = "//"

  # Generate JS so it can be used by chrome extensions
  generate_javascript = true

  sources = [ "synced/record_constants.proto" ]
}

# Record definitions for reporting.
proto_library("record_proto") {
  proto_in_dir = "//"

  # Generate JS so it can be used by chrome extensions
  generate_javascript = true

  sources = [ "synced/record.proto" ]

  deps = [
    ":health_proto",
    ":record_constants",
  ]
}

proto_library("interface_proto") {
  proto_in_dir = "//"

  # Generate JS so it can be used by chrome extensions
  generate_javascript = true

  sources = [ "synced/interface.proto" ]

  proto_deps = [
    ":record_constants",
    ":record_proto",
    ":status_proto",
  ]
}

proto_library("health_proto") {
  proto_in_dir = "//"

  # Generate JS so it can be used by chrome extensions
  generate_javascript = true

  sources = [ "synced/health.proto" ]

  deps = [
    ":record_constants",
    ":status_proto",
  ]
}

proto_library("session_affiliated_user_proto") {
  proto_in_dir = "//"

  # Generate JS so it can be used by chrome extensions
  generate_javascript = true

  sources = [ "synced/session_affiliated_user.proto" ]
}

proto_library("test_proto") {
  proto_in_dir = "//"
  sources = [ "test.proto" ]
}

# Metrics records definitions.
proto_library("metric_data_proto") {
  proto_in_dir = "//"

  # Generate JS so it can be used by chrome extensions
  generate_javascript = true

  sources = [ "synced/metric_data.proto" ]

  link_deps = [ "//components/services/app_service/public/protos" ]

  deps = [ ":session_affiliated_user_proto" ]
}

proto_library("status_proto") {
  proto_in_dir = "//"

  # Generate JS so it can be used by chrome extensions
  generate_javascript = true

  sources = [ "synced/status.proto" ]
}

proto_library("upload_tracker_proto") {
  proto_in_dir = "//"

  sources = [ "synced/upload_tracker.proto" ]

  deps = [ ":status_proto" ]
}

proto_library("configuration_file_proto") {
  proto_in_dir = "//"

  sources = [ "synced/configuration_file.proto" ]

  deps = [ ":record_constants" ]
}