# Copyright 2014 The Chromium 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("//third_party/protobuf/proto_library.gni")

proto_library("metrics_proto") {
  sources = [
    "call_stack_profile.proto",
    "cast_logs.proto",
    "chrome_user_metrics_extension.proto",
    "execution_context.proto",
    "extension_install.proto",
    "histogram_event.proto",
    "memory_leak_report.proto",
    "omnibox_event.proto",
    "omnibox_input_type.proto",
    "perf_data.proto",
    "perf_stat.proto",
    "printer_event.proto",
    "reporting_info.proto",
    "sampled_profile.proto",
    "system_profile.proto",
    "translate_event.proto",
    "ukm/aggregate.proto",
    "ukm/entry.proto",
    "ukm/report.proto",
    "ukm/source.proto",
    "user_action_event.proto",
  ]
  proto_in_dir = "."

  if (use_cobalt_customizations) {
    # TODO(b/282037939): Remove this when python proto are supported or disabled
    # by default.
    generate_python = false

    sources += [ "cobalt_uma_event.proto" ]
    # Currently unused protos removed to save on binary size. See b/290819695.
    sources -= [
      "memory_leak_report.proto",
      "omnibox_event.proto",
      "omnibox_input_type.proto",
      "sampled_profile.proto",
    ]
  }
}
