Skip to content

Commit

Permalink
Reland "Add gtest absl deps to the absl component."
Browse files Browse the repository at this point in the history
This is a reland of 3a2a481

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: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#783087}
  • Loading branch information
Mirko Bonadei authored and Commit Bot committed Jun 26, 2020
1 parent 47e2dc3 commit 8d8bd4b
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 5 deletions.
4 changes: 4 additions & 0 deletions build_overrides/build.gni
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ declare_args() {
# no-op to set up trybot infrastructure.
# TODO(crbug/1006769): Switch to perfetto's client library.
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
Expand Down
12 changes: 12 additions & 0 deletions third_party/abseil-cpp/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
# without these options will be part of the same program.

import("//build/toolchain/toolchain.gni")
import("//build_overrides/build.gni")
import("//testing/test.gni")

config("absl_component_build") {
Expand Down Expand Up @@ -62,6 +63,17 @@ component("absl") {
"//third_party/abseil-cpp/absl/types:optional",
"//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") {
Expand Down
5 changes: 0 additions & 5 deletions third_party/googletest/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,6 @@

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") {
visibility = [ ":*" ] # gmock also shares this config.

Expand Down

0 comments on commit 8d8bd4b

Please sign in to comment.