Add "external" dependency mode for Crashpad's GN build.

This is required for repositories that do not use Crashpad's
third_party/mini_chromium path because they have their own mini_chromium
as a peer to Crashpad.

Bug: crashpad:
Change-Id: I5a765da75fb9efebc4ada17467371d51112fd391
Reviewed-on: https://chromium-review.googlesource.com/1185885
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
This commit is contained in:
Adam Norberg 2018-08-23 09:55:00 -07:00 committed by Commit Bot
parent 2c6c0935e2
commit 255a4e0c0e

View File

@ -27,12 +27,14 @@ declare_args() {
} }
} }
assert( assert(crashpad_dependencies == "chromium" ||
crashpad_dependencies == "chromium" || crashpad_dependencies == "fuchsia" || crashpad_dependencies == "fuchsia" ||
crashpad_dependencies == "standalone") crashpad_dependencies == "standalone" ||
crashpad_dependencies == "external")
crashpad_is_in_chromium = crashpad_dependencies == "chromium" crashpad_is_in_chromium = crashpad_dependencies == "chromium"
crashpad_is_in_fuchsia = crashpad_dependencies == "fuchsia" crashpad_is_in_fuchsia = crashpad_dependencies == "fuchsia"
crashpad_is_external = crashpad_dependencies == "external"
crashpad_is_standalone = crashpad_dependencies == "standalone" crashpad_is_standalone = crashpad_dependencies == "standalone"
if (crashpad_is_in_chromium) { if (crashpad_is_in_chromium) {
@ -45,11 +47,17 @@ if (crashpad_is_in_chromium) {
crashpad_is_posix = is_posix crashpad_is_posix = is_posix
crashpad_is_clang = is_clang crashpad_is_clang = is_clang
} else {
# External builds assume crashpad and mini_chromium are peers.
if (crashpad_is_external) {
import("../../../mini_chromium/mini_chromium/build/compiler.gni")
import("../../../mini_chromium/mini_chromium/build/platform.gni")
} else { } else {
# Both standalone and in Fuchsia tree use mini_chromium, and it's mapped into # Both standalone and in Fuchsia tree use mini_chromium, and it's mapped into
# the same location in both cases. # the same location in both cases.
import("../third_party/mini_chromium/mini_chromium/build/compiler.gni") import("../third_party/mini_chromium/mini_chromium/build/compiler.gni")
import("../third_party/mini_chromium/mini_chromium/build/platform.gni") import("../third_party/mini_chromium/mini_chromium/build/platform.gni")
}
crashpad_is_mac = mini_chromium_is_mac crashpad_is_mac = mini_chromium_is_mac
crashpad_is_win = mini_chromium_is_win crashpad_is_win = mini_chromium_is_win
crashpad_is_linux = mini_chromium_is_linux crashpad_is_linux = mini_chromium_is_linux
@ -63,7 +71,12 @@ if (crashpad_is_in_chromium) {
template("crashpad_executable") { template("crashpad_executable") {
executable(target_name) { executable(target_name) {
forward_variables_from(invoker, "*", [ "configs", "remove_configs" ]) forward_variables_from(invoker,
"*",
[
"configs",
"remove_configs",
])
if (defined(invoker.remove_configs)) { if (defined(invoker.remove_configs)) {
configs -= invoker.remove_configs configs -= invoker.remove_configs
} }
@ -86,7 +99,12 @@ template("crashpad_executable") {
template("crashpad_loadable_module") { template("crashpad_loadable_module") {
loadable_module(target_name) { loadable_module(target_name) {
forward_variables_from(invoker, "*", [ "configs", "remove_configs" ]) forward_variables_from(invoker,
"*",
[
"configs",
"remove_configs",
])
if (defined(invoker.remove_configs)) { if (defined(invoker.remove_configs)) {
configs -= invoker.remove_configs configs -= invoker.remove_configs
} }