910e62b5创建于 1月15日历史提交
# Copyright 2020 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/perfetto/gn/proto_library.gni")
import("//third_party/perfetto/gn/protozero_descriptor_diff.gni")
import("//third_party/protobuf/proto_library.gni")
import("//tools/grit/grit_rule.gni")
import("sources.gni")

# Generates only a proto descriptor. This must only have a single entry in
# `sources`, because `generate_descriptor` adds a `--dependency_out` argument to
# protoc. With multiple sources protoc fails with the error: "Can only process
# one input file when using --dependency_out=FILE."
proto_library("chrome_track_event") {
  proto_in_dir = "//"
  proto_out_dir = "base/tracing/protos"
  sources = [
    # Wrapper file importing all files in `chrome_track_event_sources`.
    chrome_track_event_descriptor_source,
  ]
  import_dirs = [ "//third_party/perfetto/" ]
  generate_cc = false
  generate_python = false
  generate_descriptor = "chrome_track_event.descriptor"
  deps = [
    # To track build dependencies, this must depend on a proto library target
    # listing  `chrome_track_event_descriptor_source`'s imports as sources.
    # Conveniently `chrome_track_event_zero` is just such a library.
    ":chrome_track_event_zero",
    "//third_party/perfetto/protos/perfetto/trace/track_event:source_set",
  ]
}

protozero_library("chrome_track_event_zero") {
  proto_in_dir = "//"
  perfetto_root_path = "//third_party/perfetto/"
  sources = chrome_track_event_sources
  import_dirs = [ "//third_party/perfetto/" ]
  generator_plugin_options = "wrapper_namespace=pbzero"
  omit_protozero_dep = true
  proto_deps =
      [ "//third_party/perfetto/protos/perfetto/trace/track_event:source_set" ]
}

protozero_descriptor_diff("chrome_track_event_extension") {
  minuend_descriptor_target = ":chrome_track_event_gen"
  minuend_descriptor_name = "chrome_track_event.descriptor"

  subtrahend_descriptor_target =
      "//third_party/perfetto/protos/perfetto/trace:descriptor"
  subtrahend_descriptor_name = "trace.descriptor"

  generate_descriptor = "chrome_track_event_extension.descriptor"
}

grit("chrome_track_event_resources") {
  source = "resources.grd"
  outputs = [
    "grit/tracing_proto_resources.h",
    "tracing_proto_resources.pak",
  ]
  deps = [ ":chrome_track_event_extension_gen" ]
}