blob: 50a6aca3cba23b37adce4c78fe1a0e37e75c55b6 [file] [log] [blame]
mistergf63e2a12017-08-01 14:36:29 -04001package(default_visibility = ["//visibility:public"])
2
3licenses(["notice"])
4
5config_setting(
6 name = "win",
7 values = {"cpu": "x64_windows_msvc"},
8)
9
10cc_library(
11 name = "gmock",
12 srcs = glob(
13 include = [
14 "googlemock/src/*.cc",
15 "googlemock/include/gmock/**/*.h",
16 ],
17 exclude = [
18 "googlemock/src/gmock-all.cc",
19 ],
20 ),
21 hdrs = glob([
22 "googlemock/include/gmock/*.h",
23 ]),
24 includes = [
25 "googlemock",
26 "googlemock/include",
27 ],
28 linkopts = select({
29 ":win": [],
30 "//conditions:default": ["-pthread"],
31 }),
32 deps = [
33 ":gtest",
34 ],
35)
36
37cc_library(
38 name = "gtest",
39 srcs = glob(
40 include = [
41 "googletest/src/*.cc",
42 "googletest/src/*.h",
43 "googletest/include/gtest/**/*.h",
44 ],
45 exclude = [
46 "googletest/src/gtest-all.cc",
47 "googletest/src/gtest_main.cc",
48 ],
49 ),
50 hdrs = glob([
51 "googletest/include/gtest/*.h",
52 ]),
53 copts = select(
54 {
55 ":win": [],
56 "//conditions:default": ["-pthread"],
57 },
58 ),
59 includes = [
60 "googletest",
61 "googletest/include",
62 ],
63 linkopts = select({
64 ":win": [],
65 "//conditions:default": [
66 "-pthread",
67 ],
68 }),
69)
70
71cc_library(
72 name = "gtest_main",
73 srcs = glob(
74 include = [
75 "googletest/src/gtest_main.cc",
76 ],
77 ),
78 hdrs = glob([
79 "googletest/include/gtest/*.h",
80 "googletest/include/gtest/**/*.h",
81 ]),
82 includes = [
83 "googletest",
84 "googletest/include",
85 ],
86 deps = [":gmock"],
87)
88
89"""googletest own tests """
90
91#on windows exclude gtest-tuple.h and gtest-tuple_test.cc
92filegroup(
93 name = "win_only_test_files",
94 srcs = glob(
95 include = [
96 "googletest/test/gtest-*.cc",
97 "googletest/test/*.h",
98 "googletest/include/gtest/**/*.h",
99 ],
100 exclude = [
101 "googletest/src/gtest-unittest-api_test.cc",
102 "googletest/include/gtest/internal/gtest-tuple.h",
103 "googletest/test/gtest-tuple_test.cc",
104 "googletest/src/gtest-all.cc",
105 "googletest/test/gtest_all_test.cc",
106 "googletest/test/gtest-death-test_ex_test.cc",
107 "googletest/test/gtest-listener_test.cc",
108 "googletest/test/gtest-unittest-api_test.cc",
109 "googletest/test/gtest-param-test_test.cc",
110 ],
111 ),
112)
113
114filegroup(
115 name = "default_test_files",
116 srcs = glob(
117 include = [
118 "googletest/test/gtest-*.cc",
119 "googletest/test/*.h",
120 "googletest/include/gtest/**/*.h",
121 ],
122 exclude = [
123 "googletest/src/gtest-unittest-api_test.cc",
124 "googletest/src/gtest-all.cc",
125 "googletest/test/gtest_all_test.cc",
126 "googletest/test/gtest-death-test_ex_test.cc",
127 "googletest/test/gtest-listener_test.cc",
128 "googletest/test/gtest-unittest-api_test.cc",
129 "googletest/test/gtest-param-test_test.cc",
130 ],
131 ),
132)
133
134cc_test(
135 name = "gtest_all_test",
136 size = "small",
137 srcs = select({
138 ":win": [":win_only_test_files"],
139 "//conditions:default": [":default_test_files"],
140 }),
141 copts = select({
142 ":win": ["-DGTEST_USE_OWN_TR1_TUPLE=0"],
143 "//conditions:default": ["-DGTEST_USE_OWN_TR1_TUPLE=1"],
144 }),
145 includes = [
146 "googletest",
147 "googletest/include",
148 "googletest/include/internal",
149 "googletest/test",
150 ],
151 linkopts = select({
152 ":win": [],
153 "//conditions:default": [
154 "-pthread",
155 ],
156 }),
157 deps = [":gtest_main"],
158)
159
160""" these googletest tests have their own main()"""
161
162cc_test(
163 name = "gtest-death-test",
164 size = "small",
165 srcs = [
166 "googletest/test/gtest-death-test_ex_test.cc",
167 ],
168 copts = [
169 "-DGTEST_ENABLE_CATCH_EXCEPTIONS_=1",
170 ],
171 deps = [
172 ":gtest_main",
173 ],
174)
175
176cc_test(
177 name = "gtest-listener_test",
178 size = "small",
179 srcs = [
180 "googletest/test/gtest-listener_test.cc",
181 ],
182 deps = [
183 ":gtest_main",
184 ],
185)
186
187cc_test(
188 name = "gtest-unittest-api_test",
189 size = "small",
190 srcs = [
191 "googletest/test/gtest-unittest-api_test.cc",
192 ],
193 deps = [
194 ":gtest_main",
195 ],
196)
197
198cc_test(
199 name = "gtest-param-test_test",
200 size = "small",
201 srcs = [
202 "googletest/test/gtest-param-test2_test.cc",
203 "googletest/test/gtest-param-test_test.cc",
204 "googletest/test/gtest-param-test_test.h",
205 ],
206 deps = [
207 ":gtest_main",
208 ],
209)
210
211""" googletest samples"""
212
213cc_library(
214 name = "googletest_sample_lib",
215 srcs = [
216 "googletest/samples/sample1.cc",
217 "googletest/samples/sample2.cc",
218 "googletest/samples/sample4.cc",
219 ],
220 hdrs = [
221 "googletest/samples/prime_tables.h",
222 "googletest/samples/sample1.h",
223 "googletest/samples/sample2.h",
224 "googletest/samples/sample3-inl.h",
225 "googletest/samples/sample4.h",
226 ],
227 deps = ["gtest"],
228)
229
230cc_test(
231 name = "googletest_samples",
232 size = "small",
233 srcs = glob(
234 include = [
235 "googletest/samples/sample*.cc",
236 "googletest/samples/sample*.h",
237 ],
238 exclude = [
239 "googletest/samples/sample1.cc",
240 "googletest/samples/sample2.cc",
241 "googletest/samples/sample4.cc",
242 "googletest/samples/prime_tables.h",
243 "googletest/samples/sample1.h",
244 "googletest/samples/sample2.h",
245 "googletest/samples/sample3-inl.h",
246 "googletest/samples/sample4.h",
247 "googletest/samples/sample9_unittest.cc",
248 "googletest/samples/sample10_unittest.cc",
249 ],
250 ),
251 includes = [
252 "googletest/samples",
253 ],
254 deps = [
255 ":googletest_sample_lib",
256 ":gtest_main",
257 ],
258)
259
260""" googletest samples 9 and 10 have their own main()"""
261
262cc_test(
263 name = "googletest_sample9",
264 size = "small",
265 srcs = glob(
266 include = [
267 "googletest/samples/sample9_unittest.cc",
268 ],
269 ),
270 includes = [
271 "googletest/samples",
272 ],
273 deps = [
274 ":gtest",
275 ],
276)
277
278cc_test(
279 name = "googletest_sample10",
280 size = "small",
281 srcs = glob(
282 include = [
283 "googletest/samples/sample10_unittest.cc",
284 ],
285 ),
286 includes = [
287 "googletest/samples",
288 ],
289 deps = [
290 ":gtest",
291 ],
292)