chromium/components/metrics/structured/lib/BUILD.gn

# Copyright 2023 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/protobuf/proto_library.gni")

# Core structured metrics library to be shared with other repos. This
# library can only have dependencies that are part of libchrome.
# See README.md for more details.
source_set("lib") {
  sources = [
    "arena_persistent_proto.h",
    "event_buffer.h",
    "event_storage.h",
    "histogram_util.cc",
    "histogram_util.h",
    "key_data.cc",
    "key_data.h",
    "key_data_file_delegate.cc",
    "key_data_file_delegate.h",
    "key_data_provider.cc",
    "key_data_provider.h",
    "key_util.cc",
    "key_util.h",
    "persistent_proto.h",
    "persistent_proto_internal.cc",
    "persistent_proto_internal.h",
    "resource_info.cc",
    "resource_info.h",
  ]

  public_deps = [ ":proto" ]

  deps = [
    "//base",
    "//crypto",
    "//third_party/protobuf:protobuf_lite",
  ]
}

proto_library("proto") {
  visibility = [ "//components/metrics/structured/*" ]
  proto_in_dir = "//"
  generate_python = false
  sources = [ "proto/key.proto" ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "key_data_file_delegate_unittest.cc",
    "persistent_proto_unittest.cc",
  ]
  deps = [
    ":lib",
    ":proto",
    "//base",
    "//base/test:test_support",
    "//testing/gtest",
  ]
}