blob: 0b9c1d1984ceeaf350834413208b40a08586e250 [file]
# Copyright 2018 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("//build/package.gni")
# We use a template to keep the real and fake packages in sync.
template("crashpad_agent_package") {
package(target_name) {
binaries = [
{
name = "crashpad_agent"
},
]
meta = [
{
path = "meta/crashpad_agent.cmx"
dest = "crashpad_agent.cmx"
},
]
resources = [
{
path = "configs/default.json"
dest = "default_config.json"
},
]
deps = [ ":main" ]
}
# Suppress unused variable warnings as the invoker is expected to be empty.
not_needed(invoker, "*")
}
# The real package.
crashpad_agent_package("crashpad_agent") {
}
# A fake package for integration test purposes where we want a valid override config_data() that
# only affects the fake package.
crashpad_agent_package("fake_crashpad_agent_valid_override_config") {
}
# A fake package for integration test purposes where we want an invalid override config_data() that
# only affects the fake package.
crashpad_agent_package("fake_crashpad_agent_invalid_override_config") {
}
executable("main") {
output_name = "crashpad_agent"
sources = [ "main.cc" ]
deps = [
":src",
"//garnet/public/lib/timekeeper:system",
"//sdk/fidl/fuchsia.feedback",
"//sdk/lib/sys/cpp",
"//src/developer/feedback/crashpad_agent/info",
"//src/lib/syslog/cpp",
"//zircon/public/lib/async-loop-cpp",
"//zircon/public/lib/async-loop-default",
]
}
source_set("src") {
sources = [
"crash_server.cc",
"crash_server.h",
"crashpad_agent.cc",
"crashpad_agent.h",
"database.cc",
"database.h",
"feedback_data_provider_ptr.cc",
"feedback_data_provider_ptr.h",
"privacy_settings_ptr.cc",
"privacy_settings_ptr.h",
"queue.cc",
"queue.h",
"report_util.cc",
"report_util.h",
"upload_report.cc",
"upload_report.h",
]
public_deps = [
"//sdk/fidl/fuchsia.feedback",
"//sdk/fidl/fuchsia.settings",
"//sdk/lib/sys/cpp",
"//src/developer/feedback/crashpad_agent/info",
"//src/developer/feedback/utils:utc_time_provider",
"//src/lib/backoff:backoff",
"//src/lib/fxl",
"//third_party/crashpad/client",
"//third_party/crashpad/util",
"//zircon/public/lib/async-cpp",
"//zircon/public/lib/async-default",
"//zircon/public/lib/fit",
"//zircon/public/lib/zx",
"//zircon/system/fidl/fuchsia-mem",
]
deps = [
":constants",
"//garnet/public/lib/fostr/fidl/fuchsia.settings",
"//garnet/public/lib/timekeeper:system",
"//src/lib/fsl",
"//src/lib/syslog/cpp",
"//third_party/rapidjson",
"//zircon/public/lib/async-loop-cpp",
"//zircon/public/lib/async-loop-default",
"//zircon/public/lib/fbl",
]
}
source_set("config") {
public = [ "config.h" ]
sources = [
"config.cc",
"config.h",
]
deps = [
":constants",
"//src/lib/files:files",
"//src/lib/syslog/cpp",
"//third_party/rapidjson",
]
visibility = [ "//src/developer/feedback/crashpad_agent/*" ]
}
source_set("constants") {
sources = [ "constants.h" ]
visibility = [ "//src/developer/feedback/crashpad_agent/*" ]
}
source_set("settings") {
public = [ "settings.h" ]
sources = [
"settings.cc",
"settings.h",
]
public_deps = [
":config",
"//src/lib/fxl",
"//zircon/public/lib/fit",
]
deps = [ "//src/lib/syslog/cpp" ]
visibility = [ "//src/developer/feedback/crashpad_agent/*" ]
}
config_data("production_config") {
for_pkg = "crashpad_agent"
sources = [ "configs/production.json" ]
outputs = [ "override_config.json" ]
}
config_data("upload_to_prod_server_config") {
for_pkg = "crashpad_agent"
sources = [ "configs/upload_to_prod_server.json" ]
outputs = [ "override_config.json" ]
}