Commit 8d8bd4be authored by Mirko Bonadei's avatar Mirko Bonadei Committed by Commit Bot

Reland "Add gtest absl deps to the absl component."

This is a reland of 3a2a481f

This CL moves the declare_arg of gtest_enable_absl_printers to
//build_overrides (which is already imported by googletest and
abseil-cpp BUILD.gn files) in order to avoid the "undefined identifier"
error when build_with_chromium=true.

Original change's description:
> Add gtest absl deps to the absl component.
>
> This CL conditionally adds absl/debugging deps to the absl component
> if build_with_chromium=false. This will allow downstream projects to
> use gtest with absl (for pretty printers and matchers) but it will
> remove these dependencies in Chromium to avoid to add static
> initializers.
>
> When static initializers will be removed, the dependency will not be
> conditional so Chromium will also be able to set
> 'gtest_enable_absl_printers=true'.
>
> Bug: 1046390
> Change-Id: Ifffea81ba8f7a9412bebc3798e8f79eaff2777d7
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2262972
> Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
> Auto-Submit: Mirko Bonadei <mbonadei@chromium.org>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#782889}

Bug: 1046390
Change-Id: Id977a6a868b389b4d9924eb3af5a5f5cd0c3f4ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2270298
Auto-Submit: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: default avatarNico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#783087}
parent 47e2dc3b
...@@ -26,6 +26,10 @@ declare_args() { ...@@ -26,6 +26,10 @@ declare_args() {
# no-op to set up trybot infrastructure. # no-op to set up trybot infrastructure.
# TODO(crbug/1006769): Switch to perfetto's client library. # TODO(crbug/1006769): Switch to perfetto's client library.
use_perfetto_client_library = false use_perfetto_client_library = false
# If true, it assumes that //third_party/abseil-cpp is an available
# dependency for googletest.
gtest_enable_absl_printers = false
} }
# Allows different projects to specify their own suppressions and blacklist # Allows different projects to specify their own suppressions and blacklist
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
# without these options will be part of the same program. # without these options will be part of the same program.
import("//build/toolchain/toolchain.gni") import("//build/toolchain/toolchain.gni")
import("//build_overrides/build.gni")
import("//testing/test.gni") import("//testing/test.gni")
config("absl_component_build") { config("absl_component_build") {
...@@ -62,6 +63,17 @@ component("absl") { ...@@ -62,6 +63,17 @@ component("absl") {
"//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:optional",
"//third_party/abseil-cpp/absl/types:variant", "//third_party/abseil-cpp/absl/types:variant",
] ]
if (!build_with_chromium && gtest_enable_absl_printers) {
# The following dependencies contain static initializers which are
# banned by Chromium. They are needed by gtest when the GN arg
# gtest_enable_absl_printers is set to true (this is never done by
# Chromium).
public_deps += [
"//third_party/abseil-cpp/absl/debugging:failure_signal_handler",
"//third_party/abseil-cpp/absl/debugging:stacktrace",
"//third_party/abseil-cpp/absl/debugging:symbolize",
]
}
} }
group("default") { group("default") {
......
...@@ -4,11 +4,6 @@ ...@@ -4,11 +4,6 @@
import("//build_overrides/build.gni") import("//build_overrides/build.gni")
declare_args() {
# If true, it assumes that //third_party/abseil-cpp is an available dependency.
gtest_enable_absl_printers = false
}
config("gtest_config") { config("gtest_config") {
visibility = [ ":*" ] # gmock also shares this config. visibility = [ ":*" ] # gmock also shares this config.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment