| # 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/lex.gni") |
| import("//common-mk/pkg_config.gni") |
| |
| group("all") { |
| deps = [ |
| ":anomaly_collector", |
| ":crash_reporter", |
| ":crash_sender", |
| ":libcrash", |
| ":libcrash_reporter", |
| ":list_proxies", |
| ] |
| if (use.cheets) { |
| deps += [ ":core_collector" ] |
| } |
| if (use.test) { |
| deps += [ |
| ":anomaly_collector_test", |
| ":crash_reporter_test", |
| ] |
| } |
| } |
| |
| pkg_config("libcrash_config") { |
| pkg_deps = [ |
| "libchrome-${libbase_ver}", |
| "libsession_manager-client", |
| ] |
| } |
| |
| 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", |
| ] |
| } |
| |
| static_library("libcrash_reporter") { |
| all_dependent_configs = [ ":libcrash_reporter_config" ] |
| sources = [ |
| "bert_collector.cc", |
| "chrome_collector.cc", |
| "crash_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("crash_sender_config") { |
| pkg_deps = [ |
| "libbrillo-${libbase_ver}", |
| "libchrome-${libbase_ver}", |
| "libmetrics-${libbase_ver}", |
| "libminijail", |
| "libsession_manager-client", |
| ] |
| } |
| |
| executable("crash_sender") { |
| configs += [ ":crash_sender_config" ] |
| sources = [ |
| "crash_sender.cc", |
| "crash_sender_util.cc", |
| ] |
| defines = [ "USE_CHROMELESS_TTY=${use.chromeless_tty}" ] |
| deps = [ |
| ":libcrash", |
| ] |
| } |
| |
| pkg_config("list_proxies_config") { |
| pkg_deps = [ |
| "dbus-1", |
| "libbrillo-${libbase_ver}", |
| "libchrome-${libbase_ver}", |
| ] |
| } |
| |
| executable("list_proxies") { |
| configs += [ ":list_proxies_config" ] |
| sources = [ |
| "list_proxies.cc", |
| ] |
| } |
| |
| pkg_config("anomaly_collector_config") { |
| pkg_deps = [ |
| "libbrillo-${libbase_ver}", |
| "libchrome-${libbase_ver}", |
| "libmetrics-${libbase_ver}", |
| |
| # 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", |
| ] |
| } |
| |
| lex("anomaly_collector_lex") { |
| lexer_out_dir = "crash-reporter" |
| sources = [ |
| "anomaly_collector.l", |
| ] |
| |
| # -D_GNU_SOURCE is needed for asprintf in anomaly_collector.l |
| defines = [ "_GNU_SOURCE" ] |
| } |
| |
| executable("anomaly_collector") { |
| configs += [ ":anomaly_collector_config" ] |
| deps = [ |
| ":anomaly_collector_lex", |
| ] |
| sources = [ |
| "anomaly_collector.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 = [ |
| "libmetrics-${libbase_ver}", |
| "libsession_manager-client-test", |
| ] |
| } |
| |
| executable("crash_reporter_test") { |
| configs += [ |
| "//common-mk:test", |
| ":crash_reporter_test_config", |
| ] |
| sources = [ |
| "bert_collector_test.cc", |
| "chrome_collector_test.cc", |
| "crash_collector_test.cc", |
| "crash_collector_test.h", |
| "crash_reporter_logs_test.cc", |
| "crash_sender_util.cc", |
| "crash_sender_util_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 = [ |
| ":libcrash", |
| ":libcrash_reporter", |
| ] |
| |
| if (use.cheets) { |
| sources += [ "arc_collector_test.cc" ] |
| } |
| } |
| |
| copy("anomaly_collector_test") { |
| sources = [ |
| "TEST_SELINUX", |
| "TEST_SERVICE_FAILURE", |
| "TEST_WARNING", |
| "TEST_WARNING_OLD", |
| "TEST_WARNING_OLD_ARM64", |
| "anomaly_collector_test.sh", |
| "anomaly_collector_test_reporter.sh", |
| "crash_reporter_logs.conf", |
| ] |
| outputs = [ |
| "${root_out_dir}/{{source_file_part}}", |
| ] |
| } |
| } |