mirror of
https://github.com/chromium/crashpad.git
synced 2024-12-26 23:01:05 +08:00
1c77abe909
Because of the multiple-worlds building of the Crashpad code in the Fuchsia tree (with the Fuchsia BUILDCONFIG.gn in particular) there's no good location to globally disable Wconversion for all of crashpad. This can be somewhat-improved by using a GN template crashpad_static_library() similar to the existing crashpad_executable() template. Includes mini_chromium DEPS roll: 68da43e Fix a couple trucation warnings 88ce866 build: set include dirs Bug: fuchsia:58162 Change-Id: I638fcf858c35b9a858ca2c410636f8c99603aed2 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2411131 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Scott Graham <scottmg@chromium.org>
148 lines
4.8 KiB
Plaintext
148 lines
4.8 KiB
Plaintext
# Copyright 2017 The Crashpad Authors. All rights reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
declare_args() {
|
|
# Determines various flavors of build configuration, and which concrete
|
|
# targets to use for dependencies. Valid values are "standalone", "chromium",
|
|
# "fuchsia", "dart" or "external".
|
|
crashpad_dependencies = "standalone"
|
|
|
|
if (defined(is_fuchsia_tree) && is_fuchsia_tree) {
|
|
crashpad_dependencies = "fuchsia"
|
|
}
|
|
}
|
|
|
|
assert(
|
|
crashpad_dependencies == "chromium" || crashpad_dependencies == "fuchsia" ||
|
|
crashpad_dependencies == "standalone" ||
|
|
crashpad_dependencies == "external" || crashpad_dependencies == "dart")
|
|
|
|
crashpad_is_in_chromium = crashpad_dependencies == "chromium"
|
|
crashpad_is_in_fuchsia = crashpad_dependencies == "fuchsia"
|
|
crashpad_is_in_dart = crashpad_dependencies == "dart"
|
|
crashpad_is_external = crashpad_dependencies == "external"
|
|
crashpad_is_standalone = crashpad_dependencies == "standalone"
|
|
|
|
if (crashpad_is_in_chromium) {
|
|
crashpad_is_mac = is_mac
|
|
crashpad_is_ios = is_ios
|
|
crashpad_is_win = is_win
|
|
crashpad_is_linux = is_linux || is_chromeos
|
|
crashpad_is_android = is_android
|
|
crashpad_is_fuchsia = is_fuchsia
|
|
|
|
crashpad_is_posix = is_posix
|
|
|
|
crashpad_is_clang = is_clang
|
|
} else {
|
|
# External and Dart SDK builds assume crashpad and mini_chromium are peers.
|
|
if (crashpad_is_external || crashpad_is_in_dart) {
|
|
import("../../../mini_chromium/mini_chromium/build/compiler.gni")
|
|
import("../../../mini_chromium/mini_chromium/build/platform.gni")
|
|
} else {
|
|
# Both standalone and in Fuchsia tree use mini_chromium, and it's mapped
|
|
# into the same location in both cases.
|
|
import("../third_party/mini_chromium/mini_chromium/build/compiler.gni")
|
|
import("../third_party/mini_chromium/mini_chromium/build/platform.gni")
|
|
}
|
|
crashpad_is_mac = mini_chromium_is_mac
|
|
crashpad_is_ios = mini_chromium_is_ios
|
|
crashpad_is_win = mini_chromium_is_win
|
|
crashpad_is_linux = mini_chromium_is_linux
|
|
crashpad_is_android = mini_chromium_is_android
|
|
crashpad_is_fuchsia = mini_chromium_is_fuchsia
|
|
|
|
crashpad_is_posix = mini_chromium_is_posix
|
|
|
|
crashpad_is_clang = mini_chromium_is_clang
|
|
}
|
|
|
|
template("crashpad_executable") {
|
|
executable(target_name) {
|
|
forward_variables_from(invoker,
|
|
"*",
|
|
[
|
|
"configs",
|
|
"remove_configs",
|
|
])
|
|
if (defined(invoker.remove_configs)) {
|
|
configs -= invoker.remove_configs
|
|
}
|
|
|
|
if (defined(invoker.configs)) {
|
|
configs += invoker.configs
|
|
}
|
|
|
|
if (crashpad_is_in_fuchsia) {
|
|
conversion_config = [ "//build/config:Wno-conversion" ]
|
|
if (configs + conversion_config - conversion_config == configs) {
|
|
# TODO(https://fxbug.dev/58162): Decide if these are worth enabling.
|
|
configs += conversion_config
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
template("crashpad_loadable_module") {
|
|
loadable_module(target_name) {
|
|
forward_variables_from(invoker,
|
|
"*",
|
|
[
|
|
"configs",
|
|
"remove_configs",
|
|
])
|
|
if (defined(invoker.remove_configs)) {
|
|
configs -= invoker.remove_configs
|
|
}
|
|
|
|
if (defined(invoker.configs)) {
|
|
configs += invoker.configs
|
|
}
|
|
|
|
if (crashpad_is_in_fuchsia) {
|
|
conversion_config = [ "//build/config:Wno-conversion" ]
|
|
if (configs + conversion_config - conversion_config == configs) {
|
|
# TODO(https://fxbug.dev/58162): Decide if these are worth enabling.
|
|
configs += conversion_config
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
template("crashpad_static_library") {
|
|
static_library(target_name) {
|
|
forward_variables_from(invoker,
|
|
"*",
|
|
[
|
|
"configs",
|
|
"remove_configs",
|
|
])
|
|
if (defined(invoker.remove_configs)) {
|
|
configs -= invoker.remove_configs
|
|
}
|
|
|
|
if (defined(invoker.configs)) {
|
|
configs += invoker.configs
|
|
}
|
|
|
|
if (crashpad_is_in_fuchsia) {
|
|
conversion_config = [ "//build/config:Wno-conversion" ]
|
|
if (configs + conversion_config - conversion_config == configs) {
|
|
# TODO(https://fxbug.dev/58162): Decide if these are worth enabling.
|
|
configs += conversion_config
|
|
}
|
|
}
|
|
}
|
|
}
|