xref: /aosp_15_r20/external/cronet/third_party/googletest/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2014 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Workerimport("//build_overrides/build.gni")
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Workerconfig("gtest_config") {
8*6777b538SAndroid Build Coastguard Worker  # webrtc wants to push this config without a public_dep chain
9*6777b538SAndroid Build Coastguard Worker  # TODO(crbug.com/1249254): figure out what to do with this
10*6777b538SAndroid Build Coastguard Worker  visibility = [
11*6777b538SAndroid Build Coastguard Worker    ":*",  # gmock also shares this config.
12*6777b538SAndroid Build Coastguard Worker    "//test:*",  # webrts standalone setup
13*6777b538SAndroid Build Coastguard Worker    "//third_party/webrtc/test:*",
14*6777b538SAndroid Build Coastguard Worker  ]
15*6777b538SAndroid Build Coastguard Worker
16*6777b538SAndroid Build Coastguard Worker  defines = [
17*6777b538SAndroid Build Coastguard Worker    # Chromium always links googletest statically, so no API qualifier is
18*6777b538SAndroid Build Coastguard Worker    # necessary. The definition in gtest-port.h at the time of this writing
19*6777b538SAndroid Build Coastguard Worker    # causes crashes in content_browsertests.
20*6777b538SAndroid Build Coastguard Worker    "GTEST_API_=",
21*6777b538SAndroid Build Coastguard Worker
22*6777b538SAndroid Build Coastguard Worker    # In order to allow regex matches in gtest to be shared between Windows
23*6777b538SAndroid Build Coastguard Worker    # and other systems, we tell gtest to always use its internal engine.
24*6777b538SAndroid Build Coastguard Worker    "GTEST_HAS_POSIX_RE=0",
25*6777b538SAndroid Build Coastguard Worker
26*6777b538SAndroid Build Coastguard Worker    # Enables C++11 features.
27*6777b538SAndroid Build Coastguard Worker    "GTEST_LANG_CXX11=1",
28*6777b538SAndroid Build Coastguard Worker
29*6777b538SAndroid Build Coastguard Worker    # Prevents gtest from including both <tr1/tuple> and <tuple>.
30*6777b538SAndroid Build Coastguard Worker    "GTEST_HAS_TR1_TUPLE=0",
31*6777b538SAndroid Build Coastguard Worker
32*6777b538SAndroid Build Coastguard Worker    # Use Abseil, but without flags support: Abseil flags uses the
33*6777b538SAndroid Build Coastguard Worker    # `FastTypeId<T>()` pattern internally, which is known to be broken in
34*6777b538SAndroid Build Coastguard Worker    # subtle ways in the component build.
35*6777b538SAndroid Build Coastguard Worker    "GTEST_HAS_ABSL",
36*6777b538SAndroid Build Coastguard Worker    "GTEST_NO_ABSL_FLAGS",
37*6777b538SAndroid Build Coastguard Worker  ]
38*6777b538SAndroid Build Coastguard Worker
39*6777b538SAndroid Build Coastguard Worker  # Gtest headers need to be able to find themselves.
40*6777b538SAndroid Build Coastguard Worker  include_dirs = [
41*6777b538SAndroid Build Coastguard Worker    "custom",
42*6777b538SAndroid Build Coastguard Worker    "src/googletest/include",
43*6777b538SAndroid Build Coastguard Worker  ]
44*6777b538SAndroid Build Coastguard Worker
45*6777b538SAndroid Build Coastguard Worker  if (is_win) {
46*6777b538SAndroid Build Coastguard Worker    cflags = [ "/wd4800" ]  # Unused variable warning.
47*6777b538SAndroid Build Coastguard Worker  }
48*6777b538SAndroid Build Coastguard Worker
49*6777b538SAndroid Build Coastguard Worker  configs = [
50*6777b538SAndroid Build Coastguard Worker    "//third_party/abseil-cpp:absl_include_config",
51*6777b538SAndroid Build Coastguard Worker    "//third_party/re2:re2_config",
52*6777b538SAndroid Build Coastguard Worker  ]
53*6777b538SAndroid Build Coastguard Worker}
54*6777b538SAndroid Build Coastguard Worker
55*6777b538SAndroid Build Coastguard Workerconfig("gmock_config") {
56*6777b538SAndroid Build Coastguard Worker  # Gmock headers need to be able to find themselves.
57*6777b538SAndroid Build Coastguard Worker  include_dirs = [
58*6777b538SAndroid Build Coastguard Worker    "custom",
59*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include",
60*6777b538SAndroid Build Coastguard Worker  ]
61*6777b538SAndroid Build Coastguard Worker
62*6777b538SAndroid Build Coastguard Worker  if (is_clang) {
63*6777b538SAndroid Build Coastguard Worker    # TODO(tikuta): remove this when the issue is fixed.
64*6777b538SAndroid Build Coastguard Worker    # https://github.com/google/googletest/issues/533
65*6777b538SAndroid Build Coastguard Worker    cflags = [ "-Wno-inconsistent-missing-override" ]
66*6777b538SAndroid Build Coastguard Worker  }
67*6777b538SAndroid Build Coastguard Worker}
68*6777b538SAndroid Build Coastguard Worker
69*6777b538SAndroid Build Coastguard Worker# Do NOT depend on this directly. Use //testing/gtest instead.
70*6777b538SAndroid Build Coastguard Worker# See README.chromium for details.
71*6777b538SAndroid Build Coastguard Workersource_set("gtest") {
72*6777b538SAndroid Build Coastguard Worker  testonly = true
73*6777b538SAndroid Build Coastguard Worker  sources = [
74*6777b538SAndroid Build Coastguard Worker    "custom/gtest/internal/custom/gtest.h",
75*6777b538SAndroid Build Coastguard Worker    "custom/gtest/internal/custom/stack_trace_getter.cc",
76*6777b538SAndroid Build Coastguard Worker    "custom/gtest/internal/custom/stack_trace_getter.h",
77*6777b538SAndroid Build Coastguard Worker
78*6777b538SAndroid Build Coastguard Worker    # TODO(crbug.com/1009553): Remove this wrapper and custom temp dir
79*6777b538SAndroid Build Coastguard Worker    # after plumbing a workable temporary path into googletest on Android.
80*6777b538SAndroid Build Coastguard Worker    "custom/gtest/internal/custom/chrome_custom_temp_dir.cc",
81*6777b538SAndroid Build Coastguard Worker    "custom/gtest/internal/custom/chrome_custom_temp_dir.h",
82*6777b538SAndroid Build Coastguard Worker    "custom/gtest/internal/custom/gtest_port_wrapper.cc",
83*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/gtest-assertion-result.h",
84*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/gtest-death-test.h",
85*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/gtest-matchers.h",
86*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/gtest-message.h",
87*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/gtest-param-test.h",
88*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/gtest-printers.h",
89*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/gtest-spi.h",
90*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/gtest-test-part.h",
91*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/gtest-typed-test.h",
92*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/gtest.h",
93*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/gtest_pred_impl.h",
94*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/gtest_prod.h",
95*6777b538SAndroid Build Coastguard Worker
96*6777b538SAndroid Build Coastguard Worker    #"src/googletest/include/gtest/internal/custom/gtest.h",  # Superseded.
97*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/internal/custom/gtest-port.h",
98*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/internal/custom/gtest-printers.h",
99*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/internal/gtest-death-test-internal.h",
100*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/internal/gtest-filepath.h",
101*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/internal/gtest-internal.h",
102*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/internal/gtest-param-util.h",
103*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/internal/gtest-port-arch.h",
104*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/internal/gtest-port.h",
105*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/internal/gtest-string.h",
106*6777b538SAndroid Build Coastguard Worker    "src/googletest/include/gtest/internal/gtest-type-util.h",
107*6777b538SAndroid Build Coastguard Worker
108*6777b538SAndroid Build Coastguard Worker    #"src/googletest/src/gtest-all.cc",  # Not needed by our build.
109*6777b538SAndroid Build Coastguard Worker    "src/googletest/src/gtest-assertion-result.cc",
110*6777b538SAndroid Build Coastguard Worker    "src/googletest/src/gtest-death-test.cc",
111*6777b538SAndroid Build Coastguard Worker    "src/googletest/src/gtest-filepath.cc",
112*6777b538SAndroid Build Coastguard Worker    "src/googletest/src/gtest-internal-inl.h",
113*6777b538SAndroid Build Coastguard Worker    "src/googletest/src/gtest-matchers.cc",
114*6777b538SAndroid Build Coastguard Worker
115*6777b538SAndroid Build Coastguard Worker    # gtest_port_wrapper.cc is used instead of gtest-port.cc.
116*6777b538SAndroid Build Coastguard Worker    # TODO(crbug.com/1009553): Re-enable this file after plumbing a workable
117*6777b538SAndroid Build Coastguard Worker    #                          temporary path into googletest on Android.
118*6777b538SAndroid Build Coastguard Worker    #"src/googletest/src/gtest-port.cc",
119*6777b538SAndroid Build Coastguard Worker    "src/googletest/src/gtest-printers.cc",
120*6777b538SAndroid Build Coastguard Worker    "src/googletest/src/gtest-test-part.cc",
121*6777b538SAndroid Build Coastguard Worker    "src/googletest/src/gtest-typed-test.cc",
122*6777b538SAndroid Build Coastguard Worker    "src/googletest/src/gtest.cc",
123*6777b538SAndroid Build Coastguard Worker  ]
124*6777b538SAndroid Build Coastguard Worker
125*6777b538SAndroid Build Coastguard Worker  # Some files include "src/gtest-internal-inl.h".
126*6777b538SAndroid Build Coastguard Worker  include_dirs = [ "src/googletest" ]
127*6777b538SAndroid Build Coastguard Worker
128*6777b538SAndroid Build Coastguard Worker  public_configs = [ ":gtest_config" ]
129*6777b538SAndroid Build Coastguard Worker
130*6777b538SAndroid Build Coastguard Worker  configs -= [ "//build/config/compiler:chromium_code" ]
131*6777b538SAndroid Build Coastguard Worker  configs += [ "//build/config/compiler:no_chromium_code" ]
132*6777b538SAndroid Build Coastguard Worker
133*6777b538SAndroid Build Coastguard Worker  defines = []
134*6777b538SAndroid Build Coastguard Worker
135*6777b538SAndroid Build Coastguard Worker  # googletest only needs `absl`, but this makes gn check happier.
136*6777b538SAndroid Build Coastguard Worker  deps = [ "//third_party/abseil-cpp:absl_full" ]
137*6777b538SAndroid Build Coastguard Worker  public_deps = [ "//third_party/re2" ]
138*6777b538SAndroid Build Coastguard Worker  if (is_nacl || !build_with_chromium) {
139*6777b538SAndroid Build Coastguard Worker    defines += [ "GTEST_DISABLE_PRINT_STACK_TRACE" ]
140*6777b538SAndroid Build Coastguard Worker    sources -= [
141*6777b538SAndroid Build Coastguard Worker      "custom/gtest/internal/custom/stack_trace_getter.cc",
142*6777b538SAndroid Build Coastguard Worker      "custom/gtest/internal/custom/stack_trace_getter.h",
143*6777b538SAndroid Build Coastguard Worker    ]
144*6777b538SAndroid Build Coastguard Worker  } else {
145*6777b538SAndroid Build Coastguard Worker    deps += [ "//base" ]
146*6777b538SAndroid Build Coastguard Worker  }
147*6777b538SAndroid Build Coastguard Worker
148*6777b538SAndroid Build Coastguard Worker  if (is_fuchsia) {
149*6777b538SAndroid Build Coastguard Worker    deps += [
150*6777b538SAndroid Build Coastguard Worker      "//third_party/fuchsia-sdk/sdk/pkg/fdio",
151*6777b538SAndroid Build Coastguard Worker      "//third_party/fuchsia-sdk/sdk/pkg/zx",
152*6777b538SAndroid Build Coastguard Worker    ]
153*6777b538SAndroid Build Coastguard Worker  }
154*6777b538SAndroid Build Coastguard Worker}
155*6777b538SAndroid Build Coastguard Worker
156*6777b538SAndroid Build Coastguard Worker# Do NOT depend on this directly. Use //testing/gtest:gtest_main instead.
157*6777b538SAndroid Build Coastguard Worker# See README.chromium for details.
158*6777b538SAndroid Build Coastguard Workersource_set("gtest_main") {
159*6777b538SAndroid Build Coastguard Worker  testonly = true
160*6777b538SAndroid Build Coastguard Worker  sources = [ "src/googletest/src/gtest_main.cc" ]
161*6777b538SAndroid Build Coastguard Worker  deps = [ ":gtest" ]
162*6777b538SAndroid Build Coastguard Worker}
163*6777b538SAndroid Build Coastguard Worker
164*6777b538SAndroid Build Coastguard Worker# Do NOT depend on this directly. Use //testing/gmock instead.
165*6777b538SAndroid Build Coastguard Worker# See README.chromium for details.
166*6777b538SAndroid Build Coastguard Workersource_set("gmock") {
167*6777b538SAndroid Build Coastguard Worker  testonly = true
168*6777b538SAndroid Build Coastguard Worker  sources = [
169*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include/gmock/gmock-actions.h",
170*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include/gmock/gmock-cardinalities.h",
171*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include/gmock/gmock-function-mocker.h",
172*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include/gmock/gmock-matchers.h",
173*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include/gmock/gmock-more-matchers.h",
174*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include/gmock/gmock-nice-strict.h",
175*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include/gmock/gmock-spec-builders.h",
176*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include/gmock/gmock.h",
177*6777b538SAndroid Build Coastguard Worker
178*6777b538SAndroid Build Coastguard Worker    #"src/googlemock/include/gmock/internal/custom/gmock-port.h",  # Superseded.
179*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include/gmock/internal/custom/gmock-generated-actions.h",
180*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include/gmock/internal/custom/gmock-matchers.h",
181*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include/gmock/internal/gmock-internal-utils.h",
182*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include/gmock/internal/gmock-port.h",
183*6777b538SAndroid Build Coastguard Worker    "src/googlemock/include/gmock/internal/gmock-pp.h",
184*6777b538SAndroid Build Coastguard Worker
185*6777b538SAndroid Build Coastguard Worker    #"src/googlemock/src/gmock-all.cc",  # Not needed by our build.
186*6777b538SAndroid Build Coastguard Worker    "src/googlemock/src/gmock-cardinalities.cc",
187*6777b538SAndroid Build Coastguard Worker    "src/googlemock/src/gmock-internal-utils.cc",
188*6777b538SAndroid Build Coastguard Worker    "src/googlemock/src/gmock-matchers.cc",
189*6777b538SAndroid Build Coastguard Worker    "src/googlemock/src/gmock-spec-builders.cc",
190*6777b538SAndroid Build Coastguard Worker    "src/googlemock/src/gmock.cc",
191*6777b538SAndroid Build Coastguard Worker  ]
192*6777b538SAndroid Build Coastguard Worker
193*6777b538SAndroid Build Coastguard Worker  # googlemock only needs `absl`, but this makes gn check happier.
194*6777b538SAndroid Build Coastguard Worker  deps = [ "//third_party/abseil-cpp:absl_full" ]
195*6777b538SAndroid Build Coastguard Worker
196*6777b538SAndroid Build Coastguard Worker  public_deps = [ ":gtest" ]
197*6777b538SAndroid Build Coastguard Worker  public_configs = [ ":gmock_config" ]
198*6777b538SAndroid Build Coastguard Worker}
199*6777b538SAndroid Build Coastguard Worker
200*6777b538SAndroid Build Coastguard Worker# Do NOT depend on this directly. Use //testing/gmock:gmock_main instead.
201*6777b538SAndroid Build Coastguard Worker# See README.chromium for details.
202*6777b538SAndroid Build Coastguard Workerstatic_library("gmock_main") {
203*6777b538SAndroid Build Coastguard Worker  testonly = true
204*6777b538SAndroid Build Coastguard Worker  sources = [ "src/googlemock/src/gmock_main.cc" ]
205*6777b538SAndroid Build Coastguard Worker  deps = [ ":gmock" ]
206*6777b538SAndroid Build Coastguard Worker}
207