blob: c5643d888a171f0af28bb00f1c2ba9ca4889f407 [file] [log] [blame]
# Copyright 2020 The Fuchsia 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("//build/config.gni")
import("//src/sys/build/components.gni")
###############################################################################
# GROUPS
###############################################################################
group("forensics") {
testonly = true
deps = [
":pkg",
":tests",
"crasher",
"snapshot",
]
}
group("tests") {
testonly = true
deps = [
"crash_reports/tests",
"exceptions/tests",
"feedback_data/system_log_recorder/tests",
"feedback_data/tests",
"last_reboot/tests",
"snapshot/tests",
"utils/tests",
]
}
group("infra_configs") {
deps = [ ":crash_reports_upload_to_prod_server_config" ]
}
group("userdebug_configs") {
deps = [ ":crash_reports_userdebug_config" ]
}
group("user_configs") {
deps = [
":crash_reports_user_config",
":feedback_data_limit_inspect_data",
]
}
###############################################################################
# PACKAGES
###############################################################################
# We use a template to keep the real and copy packages in sync.
template("forensics_package") {
fuchsia_package(target_name) {
package_name = invoker.package_name
deps = [
":crash_reports",
":exceptions",
":feedback_data",
":last_reboot",
]
}
}
# The real package.
forensics_package("pkg") {
package_name = "forensics"
}
# A copy package for integration test purposes to make sure that:
# * all the components used in the test are updated ephemerally, even if the real package
# is a base package.
# * any config_data() for the real package does not impact any component used in the test.
forensics_package("copy-pkg") {
package_name = "copy-forensics"
}
# A copy package for integration test purposes where we want a valid override config_data()
# for crash_reports that only affects that copy package.
forensics_package("copy-pkg-valid-crash-reports-override-config") {
package_name = "copy-forensics-valid-crash-reports-override-config"
}
# A copy package for integration test purposes where we want an invalid override config_data()
# for crash_reports that only affects that copy package.
forensics_package("copy-pkg-invalid-crash-reports-override-config") {
package_name = "copy-forensics-invalid-crash-reports-override-config"
}
###############################################################################
# COMPONENTS
###############################################################################
fuchsia_component("crash_reports") {
manifest = "crash_reports/meta/crash_reports.cmx"
deps = [
":crash_reports_default_config",
":crash_reports_exe",
]
}
fuchsia_component("exceptions") {
manifest = "exceptions/meta/exceptions.cmx"
deps = [
":exception_handler_exe",
":exceptions_exe",
]
}
fuchsia_component("feedback_data") {
manifest = "feedback_data/meta/feedback_data.cmx"
deps = [
":feedback_data_config",
":feedback_data_exe",
":system_log_recorder_exe",
]
}
fuchsia_component("last_reboot") {
manifest = "last_reboot/meta/last_reboot.cmx"
deps = [ ":last_reboot_exe" ]
}
###############################################################################
# EXECUTABLES
###############################################################################
# We use a template to have multiple copies of the same binary named differently.
template("forensics_unified_binary") {
executable(target_name) {
output_name = invoker.output_name
sources = [ "unified_binary.cc" ]
deps = [
"crash_reports:main",
"exceptions:main",
"exceptions/handler:main",
"feedback_data:main",
"feedback_data/system_log_recorder:main",
"last_reboot:main",
"//sdk/lib/syslog/cpp",
]
}
}
forensics_unified_binary("crash_reports_exe") {
output_name = "crash_reports"
}
forensics_unified_binary("exceptions_exe") {
output_name = "exceptions"
}
forensics_unified_binary("exception_handler_exe") {
output_name = "exception_handler"
}
forensics_unified_binary("feedback_data_exe") {
output_name = "feedback_data"
}
forensics_unified_binary("last_reboot_exe") {
output_name = "last_reboot"
}
forensics_unified_binary("system_log_recorder_exe") {
output_name = "system_log_recorder"
}
###############################################################################
# CONFIGS
###############################################################################
resource("crash_reports_default_config") {
sources = [ "crash_reports/configs/default.json" ]
outputs = [ "data/crash_reports/default_config.json" ]
}
config_data("crash_reports_user_config") {
for_pkg = "forensics"
sources = [ "crash_reports/configs/user.json" ]
outputs = [ "crash_reports/override_config.json" ]
}
config_data("crash_reports_userdebug_config") {
for_pkg = "forensics"
sources = [ "crash_reports/configs/userdebug.json" ]
outputs = [ "crash_reports/override_config.json" ]
}
config_data("crash_reports_upload_to_prod_server_config") {
for_pkg = "forensics"
sources = [ "crash_reports/configs/upload_to_prod_server.json" ]
outputs = [ "crash_reports/override_config.json" ]
}
resource("feedback_data_config") {
sources = [ "feedback_data/config.json" ]
outputs = [ "data/feedback_data/config.json" ]
}
config_data("feedback_data_limit_inspect_data") {
for_pkg = "forensics"
sources = [ "feedback_data/configs/limit_inspect_data" ]
outputs = [ "feedback_data/limit_inspect_data" ]
}
config_data("exceptions_enable_jitd_on_startup") {
for_pkg = "forensics"
sources = [ "exceptions/configs/jitd_on_startup.json" ]
outputs = [ "exceptions/enable_jitd_on_startup.json" ]
}