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