blob: fd54706ab31930452bf74635db4957e071ed54f9 [file] [log] [blame]
# Copyright 2018 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.
import("//common-mk/pkg_config.gni")
group("all") {
deps = [
":anomaly_detector",
":crash_reporter",
":crash_sender",
":libcrash",
":libcrash_reporter",
]
if (use.cheets) {
deps += [ ":core_collector" ]
}
if (use.test) {
deps += [
":anomaly_detector_test",
":crash_reporter_test",
]
}
}
pkg_config("libcrash_config") {
pkg_deps = [
"libchrome-${libbase_ver}",
"libsession_manager-client",
"vboot_host",
]
}
static_library("libcrash") {
all_dependent_configs = [ ":libcrash_config" ]
sources = [
"paths.cc",
"util.cc",
]
}
pkg_config("libcrash_reporter_config") {
pkg_deps = [
"libbrillo-${libbase_ver}",
"libchrome-${libbase_ver}",
"libdebugd-client",
"libpcrecpp",
"libsession_manager-client",
"zlib",
]
}
static_library("libcrash_reporter") {
all_dependent_configs = [ ":libcrash_reporter_config" ]
sources = [
"arc_service_failure_collector.cc",
"bert_collector.cc",
"chrome_collector.cc",
"crash_collector.cc",
"early_crash_meta_collector.cc",
"ec_collector.cc",
"kernel_collector.cc",
"kernel_warning_collector.cc",
"selinux_violation_collector.cc",
"service_failure_collector.cc",
"udev_collector.cc",
"unclean_shutdown_collector.cc",
"user_collector.cc",
"user_collector_base.cc",
]
defines = [ "USE_DIRENCRYPTION=${use.direncryption}" ]
if (use.cheets) {
sources += [ "arc_collector.cc" ]
}
if (use.direncryption) {
libs = [ "keyutils" ]
}
}
pkg_config("crash_reporter_config") {
pkg_deps = [
"dbus-1",
"libmetrics-${libbase_ver}",
"libminijail",
]
}
executable("crash_reporter") {
configs += [ ":crash_reporter_config" ]
sources = [
"crash_reporter.cc",
]
defines = [ "USE_CHEETS=${use.cheets}" ]
deps = [
":libcrash",
":libcrash_reporter",
]
}
pkg_config("libcrash_sender_config") {
pkg_deps = [
"libbrillo-${libbase_ver}",
"libchrome-${libbase_ver}",
"libmetrics-${libbase_ver}",
"libminijail",
"libsession_manager-client",
"libshill-client",
"zlib",
]
}
static_library("libcrash_sender") {
all_dependent_configs = [ ":libcrash_sender_config" ]
sources = [
"crash_sender_util.cc",
]
defines = [ "USE_CHROMELESS_TTY=${use.chromeless_tty}" ]
}
executable("crash_sender") {
sources = [
"crash_sender.cc",
]
deps = [
":libcrash",
":libcrash_sender",
]
}
pkg_config("anomaly_detector_config") {
# Laikitu uses systemd, while the rest of Chrome OS uses only the journald
# part of it, which has a different pkg-config name, but the same library.
libs = [ "systemd" ]
pkg_deps = [
"libbrillo-${libbase_ver}",
"libchrome-${libbase_ver}",
"libmetrics-${libbase_ver}",
"re2",
# system_api depends on protobuf (or protobuf-lite). It must appear
# before protobuf here or the linker flags won't be in the right
# order.
"system_api",
"protobuf-lite",
]
}
executable("anomaly_detector") {
configs += [ ":anomaly_detector_config" ]
sources = [
"anomaly_detector.cc",
"anomaly_detector_main.cc",
]
libs = [
"fl",
"system_api-metrics_event-protos",
]
}
if (use.cheets) {
pkg_config("core_collector_config") {
pkg_deps = [ "breakpad-client" ]
}
executable("core_collector") {
configs += [ ":core_collector_config" ]
sources = [
"core-collector/core_collector.cc",
"core-collector/coredump_writer.cc",
"core-collector/coredump_writer.h",
]
# This condition matches the "use_i686" helper in the "cros-i686"
# eclass. The "amd64" check allows the "cros_i686" USE flag to be
# enabled for an overlay inherited by non-x86 boards.
if (use.cros_i686 && use.amd64) {
configs -= [ "//common-mk:pie" ]
}
}
}
if (use.test) {
pkg_config("crash_reporter_test_config") {
pkg_deps = [
"libchrome-test-${libbase_ver}",
"libmetrics-${libbase_ver}",
"libsession_manager-client-test",
"libshill-client-test",
"libdebugd-client-test",
]
}
pkg_config("test_helper_config") {
pkg_deps = [
"libbrillo-${libbase_ver}",
"libchrome-${libbase_ver}",
"libchrome-test-${libbase_ver}",
]
}
executable("lock_file_tester") {
configs += [
"//common-mk:test",
":test_helper_config",
]
sources = [
"lock_file_tester.cc",
]
}
executable("hold_lock_file") {
configs += [
"//common-mk:test",
":test_helper_config",
]
sources = [
"hold_lock_file.cc",
]
}
executable("crash_reporter_test") {
configs += [
"//common-mk:test",
":crash_reporter_test_config",
]
sources = [
"arc_service_failure_collector_test.cc",
"bert_collector_test.cc",
"chrome_collector_test.cc",
"crash_collector_test.cc",
"crash_collector_test.h",
"crash_reporter_logs_test.cc",
"crash_sender_util_test.cc",
"early_crash_meta_collector_test.cc",
"ec_collector_test.cc",
"kernel_collector_test.cc",
"kernel_collector_test.h",
"kernel_warning_collector_test.cc",
"paths_test.cc",
"selinux_violation_collector_test.cc",
"service_failure_collector_test.cc",
"test_util.cc",
"testrunner.cc",
"udev_collector_test.cc",
"unclean_shutdown_collector_test.cc",
"user_collector_test.cc",
"util_test.cc",
]
defines = [ "USE_CHROMELESS_TTY=${use.chromeless_tty}" ]
deps = [
":hold_lock_file",
":libcrash",
":libcrash_reporter",
":libcrash_sender",
":lock_file_tester",
]
if (use.cheets) {
sources += [ "arc_collector_test.cc" ]
}
}
executable("anomaly_detector_test") {
configs += [
"//common-mk:test",
":anomaly_detector_config",
":crash_reporter_test_config",
]
sources = [
"anomaly_detector.cc",
"anomaly_detector_test.cc",
"test_util.cc",
]
deps = [
":libcrash",
"//common-mk/testrunner:testrunner",
]
}
}