1f92157deSopenharmony_ci# Copyright (C) 2018. Huawei Technologies Co., Ltd. All rights reserved.
2f92157deSopenharmony_ci# Use of this source code is governed by a BSD-style license that can be
3f92157deSopenharmony_ci# found in the LICENSE file.
4f92157deSopenharmony_ci
5f92157deSopenharmony_ciconfig("gtest_private_config") {
6f92157deSopenharmony_ci  visibility = [ ":*" ]
7f92157deSopenharmony_ci  include_dirs = [ "googletest" ]
8f92157deSopenharmony_ci}
9f92157deSopenharmony_ci
10f92157deSopenharmony_ciconfig("gtest_private_config_rtti") {
11f92157deSopenharmony_ci  visibility = [ ":*" ]
12f92157deSopenharmony_ci  include_dirs = [ "googletest" ]
13f92157deSopenharmony_ci  cflags = [ "-frtti" ]
14f92157deSopenharmony_ci  cflags_objcc = [ "-frtti" ]
15f92157deSopenharmony_ci  cflags_cc = [ "-frtti" ]
16f92157deSopenharmony_ci}
17f92157deSopenharmony_ci
18f92157deSopenharmony_ciconfig("gtest_config") {
19f92157deSopenharmony_ci  include_dirs = [ "googletest/include" ]
20f92157deSopenharmony_ci  cflags_cc = [
21f92157deSopenharmony_ci    "-std=c++17",
22f92157deSopenharmony_ci    "-Wno-float-equal",
23f92157deSopenharmony_ci    "-Wno-sign-compare",
24f92157deSopenharmony_ci    "-Wno-reorder-init-list",
25f92157deSopenharmony_ci  ]
26f92157deSopenharmony_ci  if (is_mingw) {
27f92157deSopenharmony_ci    cflags_cc += [
28f92157deSopenharmony_ci      "-Wno-unused-const-variable",
29f92157deSopenharmony_ci      "-Wno-unused-private-field",
30f92157deSopenharmony_ci    ]
31f92157deSopenharmony_ci  }
32f92157deSopenharmony_ci}
33f92157deSopenharmony_ci
34f92157deSopenharmony_cisources_files = [
35f92157deSopenharmony_ci  "googletest/include/gtest/gtest-death-test.h",
36f92157deSopenharmony_ci  "googletest/include/gtest/gtest-matchers.h",
37f92157deSopenharmony_ci  "googletest/include/gtest/gtest-message.h",
38f92157deSopenharmony_ci  "googletest/include/gtest/gtest-param-test.h",
39f92157deSopenharmony_ci  "googletest/include/gtest/gtest-printers.h",
40f92157deSopenharmony_ci  "googletest/include/gtest/gtest-test-part.h",
41f92157deSopenharmony_ci  "googletest/include/gtest/gtest-typed-test.h",
42f92157deSopenharmony_ci  "googletest/include/gtest/gtest_pred_impl.h",
43f92157deSopenharmony_ci  "googletest/include/gtest/gtest_prod.h",
44f92157deSopenharmony_ci  "googletest/include/gtest/hwext/gtest-ext.h",
45f92157deSopenharmony_ci  "googletest/include/gtest/hwext/gtest-filter.h",
46f92157deSopenharmony_ci  "googletest/include/gtest/hwext/gtest-multithread.h",
47f92157deSopenharmony_ci  "googletest/include/gtest/hwext/gtest-tag.h",
48f92157deSopenharmony_ci  "googletest/include/gtest/hwext/utils.h",
49f92157deSopenharmony_ci  "googletest/include/gtest/internal/custom/gtest-port.h",
50f92157deSopenharmony_ci  "googletest/include/gtest/internal/custom/gtest-printers.h",
51f92157deSopenharmony_ci  "googletest/include/gtest/internal/custom/gtest.h",
52f92157deSopenharmony_ci  "googletest/include/gtest/internal/gtest-death-test-internal.h",
53f92157deSopenharmony_ci  "googletest/include/gtest/internal/gtest-filepath.h",
54f92157deSopenharmony_ci  "googletest/include/gtest/internal/gtest-internal.h",
55f92157deSopenharmony_ci  "googletest/include/gtest/internal/gtest-param-util.h",
56f92157deSopenharmony_ci  "googletest/include/gtest/internal/gtest-port-arch.h",
57f92157deSopenharmony_ci  "googletest/include/gtest/internal/gtest-port.h",
58f92157deSopenharmony_ci  "googletest/include/gtest/internal/gtest-string.h",
59f92157deSopenharmony_ci  "googletest/include/gtest/internal/gtest-type-util.h",
60f92157deSopenharmony_ci  "googletest/src/gtest-all.cc",
61f92157deSopenharmony_ci  "googletest/src/gtest-assertion-result.cc",
62f92157deSopenharmony_ci  "googletest/src/gtest-death-test.cc",
63f92157deSopenharmony_ci  "googletest/src/gtest-filepath.cc",
64f92157deSopenharmony_ci  "googletest/src/gtest-internal-inl.h",
65f92157deSopenharmony_ci  "googletest/src/gtest-matchers.cc",
66f92157deSopenharmony_ci  "googletest/src/gtest-port.cc",
67f92157deSopenharmony_ci  "googletest/src/gtest-printers.cc",
68f92157deSopenharmony_ci  "googletest/src/gtest-test-part.cc",
69f92157deSopenharmony_ci  "googletest/src/gtest-typed-test.cc",
70f92157deSopenharmony_ci  "googletest/src/gtest.cc",
71f92157deSopenharmony_ci  "googletest/src/hwext/gtest-ext.cc",
72f92157deSopenharmony_ci  "googletest/src/hwext/gtest-filter.cc",
73f92157deSopenharmony_ci  "googletest/src/hwext/gtest-multithread.cpp",
74f92157deSopenharmony_ci  "googletest/src/hwext/gtest-tag.cc",
75f92157deSopenharmony_ci  "googletest/src/hwext/gtest-utils.cc",
76f92157deSopenharmony_ci]
77f92157deSopenharmony_ci
78f92157deSopenharmony_cistatic_library("gtest") {
79f92157deSopenharmony_ci  testonly = true
80f92157deSopenharmony_ci  public = [
81f92157deSopenharmony_ci    "googletest/include/gtest/gtest-spi.h",
82f92157deSopenharmony_ci    "googletest/include/gtest/gtest.h",
83f92157deSopenharmony_ci  ]
84f92157deSopenharmony_ci  sources = sources_files
85f92157deSopenharmony_ci  sources -= [ "googletest/src/gtest-all.cc" ]
86f92157deSopenharmony_ci  public_configs = [ ":gtest_config" ]
87f92157deSopenharmony_ci  configs += [ ":gtest_private_config" ]
88f92157deSopenharmony_ci  configs -= [ "//build/config/coverage:default_coverage" ]
89f92157deSopenharmony_ci}
90f92157deSopenharmony_ci
91f92157deSopenharmony_cistatic_library("gtest_rtti") {
92f92157deSopenharmony_ci  testonly = true
93f92157deSopenharmony_ci  public = [
94f92157deSopenharmony_ci    "googletest/include/gtest/gtest-spi.h",
95f92157deSopenharmony_ci    "googletest/include/gtest/gtest.h",
96f92157deSopenharmony_ci  ]
97f92157deSopenharmony_ci  sources = sources_files
98f92157deSopenharmony_ci  sources -= [ "googletest/src/gtest-all.cc" ]
99f92157deSopenharmony_ci  public_configs = [ ":gtest_config" ]
100f92157deSopenharmony_ci  configs += [ ":gtest_private_config_rtti" ]
101f92157deSopenharmony_ci  configs -= [ "//build/config/coverage:default_coverage" ]
102f92157deSopenharmony_ci}
103f92157deSopenharmony_cistatic_library("gtest_rtti_main") {  #Add gtest entry with RTTI compilation
104f92157deSopenharmony_ci                                     # option
105f92157deSopenharmony_ci  testonly = true
106f92157deSopenharmony_ci  sources = [ "googletest/src/gtest_main.cc" ]
107f92157deSopenharmony_ci  public_deps = [ ":gtest_rtti" ]
108f92157deSopenharmony_ci  configs -= [ "//build/config/coverage:default_coverage" ]
109f92157deSopenharmony_ci}
110f92157deSopenharmony_ci
111f92157deSopenharmony_cistatic_library("gtest_main") {
112f92157deSopenharmony_ci  testonly = true
113f92157deSopenharmony_ci  sources = [ "googletest/src/gtest_main.cc" ]
114f92157deSopenharmony_ci  public_deps = [ ":gtest" ]
115f92157deSopenharmony_ci  configs -= [ "//build/config/coverage:default_coverage" ]
116f92157deSopenharmony_ci}
117f92157deSopenharmony_ci
118f92157deSopenharmony_ciconfig("gmock_private_config") {
119f92157deSopenharmony_ci  visibility = [ ":*" ]
120f92157deSopenharmony_ci  include_dirs = [ "googlemock" ]
121f92157deSopenharmony_ci}
122f92157deSopenharmony_ci
123f92157deSopenharmony_ciconfig("gmock_private_config_rtti") {
124f92157deSopenharmony_ci  visibility = [ ":*" ]
125f92157deSopenharmony_ci  include_dirs = [ "googlemock/include" ]
126f92157deSopenharmony_ci  cflags = [ "-frtti" ]
127f92157deSopenharmony_ci  cflags_objcc = [ "-frtti" ]
128f92157deSopenharmony_ci  cflags_cc = [ "-frtti" ]
129f92157deSopenharmony_ci}
130f92157deSopenharmony_ci
131f92157deSopenharmony_ciconfig("gmock_config") {
132f92157deSopenharmony_ci  include_dirs = [ "googlemock/include" ]
133f92157deSopenharmony_ci
134f92157deSopenharmony_ci  cflags_cc = [
135f92157deSopenharmony_ci    # The MOCK_METHODn() macros do not specify "override", which triggers this
136f92157deSopenharmony_ci    # warning in users: "error: 'Method' overrides a member function but is not
137f92157deSopenharmony_ci    # marked 'override' [-Werror,-Winconsistent-missing-override]". Suppress
138f92157deSopenharmony_ci    # these warnings until https://github.com/google/googletest/issues/533 is
139f92157deSopenharmony_ci    # fixed.
140f92157deSopenharmony_ci    "-Wno-inconsistent-missing-override",
141f92157deSopenharmony_ci  ]
142f92157deSopenharmony_ci}
143f92157deSopenharmony_ci
144f92157deSopenharmony_cigmock_sources_files = [
145f92157deSopenharmony_ci  "googlemock/include/gmock/gmock-actions.h",
146f92157deSopenharmony_ci  "googlemock/include/gmock/gmock-cardinalities.h",
147f92157deSopenharmony_ci  "googlemock/include/gmock/gmock-function-mocker.h",
148f92157deSopenharmony_ci  "googlemock/include/gmock/gmock-matchers.h",
149f92157deSopenharmony_ci  "googlemock/include/gmock/gmock-more-actions.h",
150f92157deSopenharmony_ci  "googlemock/include/gmock/gmock-more-matchers.h",
151f92157deSopenharmony_ci  "googlemock/include/gmock/gmock-nice-strict.h",
152f92157deSopenharmony_ci  "googlemock/include/gmock/gmock-spec-builders.h",
153f92157deSopenharmony_ci  "googlemock/include/gmock/internal/custom/gmock-generated-actions.h",
154f92157deSopenharmony_ci  "googlemock/include/gmock/internal/custom/gmock-matchers.h",
155f92157deSopenharmony_ci  "googlemock/include/gmock/internal/custom/gmock-port.h",
156f92157deSopenharmony_ci  "googlemock/include/gmock/internal/gmock-internal-utils.h",
157f92157deSopenharmony_ci  "googlemock/include/gmock/internal/gmock-port.h",
158f92157deSopenharmony_ci  "googlemock/include/gmock/internal/gmock-pp.h",
159f92157deSopenharmony_ci  "googlemock/src/gmock-all.cc",
160f92157deSopenharmony_ci  "googlemock/src/gmock-cardinalities.cc",
161f92157deSopenharmony_ci  "googlemock/src/gmock-internal-utils.cc",
162f92157deSopenharmony_ci  "googlemock/src/gmock-matchers.cc",
163f92157deSopenharmony_ci  "googlemock/src/gmock-spec-builders.cc",
164f92157deSopenharmony_ci  "googlemock/src/gmock.cc",
165f92157deSopenharmony_ci]
166f92157deSopenharmony_ci
167f92157deSopenharmony_cistatic_library("gmock") {
168f92157deSopenharmony_ci  testonly = true
169f92157deSopenharmony_ci  public = [ "googlemock/include/gmock/gmock.h" ]
170f92157deSopenharmony_ci  sources = gmock_sources_files
171f92157deSopenharmony_ci  sources -= [ "googlemock/src/gmock-all.cc" ]
172f92157deSopenharmony_ci  public_configs = [ ":gmock_config" ]
173f92157deSopenharmony_ci  configs += [ ":gmock_private_config" ]
174f92157deSopenharmony_ci  configs -= [ "//build/config/coverage:default_coverage" ]
175f92157deSopenharmony_ci  deps = [ ":gtest" ]
176f92157deSopenharmony_ci}
177f92157deSopenharmony_ci
178f92157deSopenharmony_cistatic_library("gmock_rtti") {
179f92157deSopenharmony_ci  testonly = true
180f92157deSopenharmony_ci  public = [ "googlemock/include/gmock/gmock.h" ]
181f92157deSopenharmony_ci  sources = gmock_sources_files
182f92157deSopenharmony_ci  sources -= [ "googlemock/src/gmock-all.cc" ]
183f92157deSopenharmony_ci  public_configs = [ ":gmock_config" ]
184f92157deSopenharmony_ci  configs += [ ":gmock_private_config_rtti" ]
185f92157deSopenharmony_ci  configs -= [ "//build/config/coverage:default_coverage" ]
186f92157deSopenharmony_ci  deps = [ ":gtest_rtti" ]
187f92157deSopenharmony_ci}
188f92157deSopenharmony_ci
189f92157deSopenharmony_cistatic_library("gmock_main") {
190f92157deSopenharmony_ci  testonly = true
191f92157deSopenharmony_ci  sources = [ "googlemock/src/gmock_main.cc" ]
192f92157deSopenharmony_ci  public_deps = [
193f92157deSopenharmony_ci    ":gmock",
194f92157deSopenharmony_ci    ":gtest",
195f92157deSopenharmony_ci  ]
196f92157deSopenharmony_ci  configs -= [ "//build/config/coverage:default_coverage" ]
197f92157deSopenharmony_ci}
198