blob: c6c16d00b9c1f7f0c1bde4c5e373b42d3a831f66 [file] [log] [blame]
# Copyright 2019 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# TODO(crbug.com/932128): Fix the visibility on the shared lib.
# gnlint: disable=GnLintVisibilityFlags
import("//common-mk/pkg_config.gni")
import("//common-mk/proto_library.gni")
group("all") {
deps = [
":chromeos-pgmem",
":libmetrics",
":libmetrics_daemon",
":libupload_service",
":metrics_client",
]
if (use.passive_metrics) {
deps += [ ":metrics_daemon" ]
}
if (use.test) {
deps += [
":cumulative_metrics_test",
":metrics_library_test",
":persistent_integer_test",
":process_meter_test",
":timer_test",
":upload_service_test",
]
}
if (use.passive_metrics && use.test) {
deps += [ ":metrics_daemon_test" ]
}
if (use.fuzzer) {
deps += [
":metrics_library_consent_id_fuzzer",
":metrics_serialization_utils_fuzzer",
]
}
}
shared_library("libmetrics") {
pkg_deps = [
"libbrillo",
"libchrome-${libbase_ver}",
"libsession_manager-client",
]
configs += [ "//common-mk:visibility_default" ]
cflags_cc = [ "-fno-exceptions" ]
libs = [ "policy" ]
sources = [
"c_metrics_library.cc",
"cumulative_metrics.cc",
"metrics_library.cc",
"persistent_integer.cc",
"serialization/metric_sample.cc",
"serialization/serialization_utils.cc",
"timer.cc",
]
include_dirs = [ "." ]
if (use.metrics_uploader) {
defines = [ "USE_METRICS_UPLOADER=1" ]
}
}
pkg_config("target_defaults_pkg_deps") {
pkg_deps = [
"dbus-1",
"libbrillo",
"libchrome-${libbase_ver}",
"libpcrecpp",
]
}
config("target_defaults") {
cflags_cc = [ "-fno-exceptions" ]
configs = [ ":target_defaults_pkg_deps" ]
}
static_library("libmetrics_daemon") {
configs += [ ":target_defaults" ]
deps = [
":libmetrics",
":libupload_service",
":metrics_proto",
]
libs = [
"rootdev",
"system_api-power_manager-protos",
]
sources = [
"metrics_daemon.cc",
"metrics_daemon_main.cc",
"process_meter.cc",
"vmlog_writer.cc",
]
include_dirs = [ "." ]
}
executable("metrics_client") {
configs += [ ":target_defaults" ]
deps = [ ":libmetrics" ]
sources = [ "metrics_client.cc" ]
}
executable("chromeos-pgmem") {
configs += [ ":target_defaults" ]
deps = []
sources = [
"pgmem.cc",
"process_meter.cc",
]
}
static_library("libupload_service") {
configs += [ ":target_defaults" ]
deps = [
":libmetrics",
":metrics_proto",
]
all_dependent_pkg_deps = [ "vboot_host" ]
if (use.fuzzer) {
all_dependent_pkg_deps += [ "protobuf" ]
} else {
all_dependent_pkg_deps += [ "protobuf-lite" ]
}
sources = [
"uploader/metrics_hashes.cc",
"uploader/metrics_log.cc",
"uploader/metrics_log_base.cc",
"uploader/sender_http.cc",
"uploader/system_profile_cache.cc",
"uploader/upload_service.cc",
]
include_dirs = [ "." ]
}
proto_library("metrics_proto") {
proto_in_dir = "uploader/proto"
proto_out_dir = "include/metrics/uploader/proto"
sources = [
"${proto_in_dir}/chrome_user_metrics_extension.proto",
"${proto_in_dir}/histogram_event.proto",
"${proto_in_dir}/system_profile.proto",
"${proto_in_dir}/user_action_event.proto",
]
}
if (use.passive_metrics) {
executable("metrics_daemon") {
configs += [ ":target_defaults" ]
deps = [ ":libmetrics_daemon" ]
}
}
if (use.test) {
executable("persistent_integer_test") {
configs += [
"//common-mk:test",
":target_defaults",
]
deps = [ "//common-mk/testrunner:testrunner" ]
sources = [
"persistent_integer.cc",
"persistent_integer_test.cc",
]
}
executable("cumulative_metrics_test") {
configs += [
"//common-mk:test",
":target_defaults",
]
deps = [ "../common-mk/testrunner:testrunner" ]
sources = [
"cumulative_metrics.cc",
"cumulative_metrics_test.cc",
"persistent_integer.cc",
]
}
executable("metrics_library_test") {
deps = [
":libmetrics",
"../common-mk/testrunner:testrunner",
]
configs += [
"//common-mk:test",
":target_defaults",
]
sources = [
"metrics_library_test.cc",
"serialization/serialization_utils_test.cc",
]
libs = [ "policy" ]
}
executable("process_meter_test") {
configs += [
"//common-mk:test",
":target_defaults",
]
deps = [ "//common-mk/testrunner:testrunner" ]
sources = [
"process_meter.cc",
"process_meter_test.cc",
]
}
executable("timer_test") {
configs += [
"//common-mk:test",
":target_defaults",
]
deps = [ "../common-mk/testrunner:testrunner" ]
sources = [
"timer.cc",
"timer_test.cc",
]
}
executable("upload_service_test") {
configs += [
"//common-mk:test",
":target_defaults",
]
sources = [
"persistent_integer.cc",
"uploader/metrics_hashes_test.cc",
"uploader/metrics_log_base_test.cc",
"uploader/mock/sender_mock.cc",
"uploader/upload_service_test.cc",
]
deps = [
":libupload_service",
"../common-mk/testrunner:testrunner",
]
include_dirs = [ "." ]
}
}
if (use.passive_metrics && use.test) {
executable("metrics_daemon_test") {
deps = [ ":libmetrics_daemon" ]
configs += [
"//common-mk:test",
":target_defaults",
]
sources = [
"metrics_daemon_test.cc",
"vmlog_writer_test.cc",
]
include_dirs = [ "." ]
}
}
if (use.fuzzer) {
executable("metrics_library_consent_id_fuzzer") {
deps = [ ":libmetrics" ]
configs += [
"//common-mk/common_fuzzer:common_fuzzer",
":target_defaults",
]
sources = [ "metrics_library_consent_id_fuzzer.cc" ]
}
executable("metrics_serialization_utils_fuzzer") {
configs += [
"//common-mk/common_fuzzer:common_fuzzer",
":target_defaults",
]
deps = [ ":libmetrics" ]
sources = [ "serialization/metrics_serialization_utils_fuzzer.cc" ]
}
}