blob: 6e287ce0822152b6aeee5909734a1be6ee892b09 [file] [log] [blame]
mistergc2e75482017-09-19 16:54:40 -04001#
2# Copyright 2017 The Abseil Authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
nik727338b70432019-03-08 10:27:53 -05008# https://www.apache.org/licenses/LICENSE-2.0
mistergc2e75482017-09-19 16:54:40 -04009#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17load(
Abseil Team284378a2018-12-05 12:37:41 -080018 "//absl:copts/configure_copts.bzl",
mistergc2e75482017-09-19 16:54:40 -040019 "ABSL_DEFAULT_COPTS",
Abseil Team5b65c4a2019-03-27 08:05:41 -070020 "ABSL_DEFAULT_LINKOPTS",
mistergc2e75482017-09-19 16:54:40 -040021 "ABSL_EXCEPTIONS_FLAG",
Abseil Teamf0f15c22018-08-09 11:32:15 -070022 "ABSL_EXCEPTIONS_FLAG_LINKOPTS",
Abseil Team2f76a9b2019-05-30 08:42:34 -070023 "ABSL_TEST_COPTS",
mistergc2e75482017-09-19 16:54:40 -040024)
mistergc2e75482017-09-19 16:54:40 -040025
26package(default_visibility = ["//visibility:public"])
27
28licenses(["notice"]) # Apache 2.0
29
30cc_library(
31 name = "any",
32 hdrs = ["any.h"],
Abseil Team92020a02018-06-08 08:14:48 -070033 copts = ABSL_DEFAULT_COPTS,
Abseil Team5b65c4a2019-03-27 08:05:41 -070034 linkopts = ABSL_DEFAULT_LINKOPTS,
mistergc2e75482017-09-19 16:54:40 -040035 deps = [
36 ":bad_any_cast",
37 "//absl/base:config",
38 "//absl/base:core_headers",
39 "//absl/meta:type_traits",
40 "//absl/utility",
41 ],
42)
43
44cc_library(
45 name = "bad_any_cast",
mistergc2e75482017-09-19 16:54:40 -040046 hdrs = ["bad_any_cast.h"],
Abseil Team92020a02018-06-08 08:14:48 -070047 copts = ABSL_DEFAULT_COPTS,
Abseil Team5b65c4a2019-03-27 08:05:41 -070048 linkopts = ABSL_DEFAULT_LINKOPTS,
Abseil Team87a4c072018-06-25 09:18:19 -070049 deps = [
50 ":bad_any_cast_impl",
51 "//absl/base:config",
52 ],
Abseil Team92020a02018-06-08 08:14:48 -070053)
54
55cc_library(
56 name = "bad_any_cast_impl",
57 srcs = [
58 "bad_any_cast.cc",
59 "bad_any_cast.h",
60 ],
mistergc2e75482017-09-19 16:54:40 -040061 copts = ABSL_EXCEPTIONS_FLAG + ABSL_DEFAULT_COPTS,
Abseil Team5b65c4a2019-03-27 08:05:41 -070062 linkopts = ABSL_EXCEPTIONS_FLAG_LINKOPTS + ABSL_DEFAULT_LINKOPTS,
Abseil Team92020a02018-06-08 08:14:48 -070063 visibility = ["//visibility:private"],
mistergc2e75482017-09-19 16:54:40 -040064 deps = [
mistergc2e75482017-09-19 16:54:40 -040065 "//absl/base:config",
Abseil Teamd9aa92d2019-08-13 10:20:16 -070066 "//absl/base:raw_logging_internal",
mistergc2e75482017-09-19 16:54:40 -040067 ],
68)
69
70cc_test(
71 name = "any_test",
72 size = "small",
73 srcs = [
74 "any_test.cc",
75 ],
76 copts = ABSL_TEST_COPTS + ABSL_EXCEPTIONS_FLAG,
Abseil Team5b65c4a2019-03-27 08:05:41 -070077 linkopts = ABSL_EXCEPTIONS_FLAG_LINKOPTS + ABSL_DEFAULT_LINKOPTS,
mistergc2e75482017-09-19 16:54:40 -040078 deps = [
79 ":any",
mistergc2e75482017-09-19 16:54:40 -040080 "//absl/base:config",
81 "//absl/base:exception_testing",
Abseil Teamd9aa92d2019-08-13 10:20:16 -070082 "//absl/base:raw_logging_internal",
mistergc2e75482017-09-19 16:54:40 -040083 "//absl/container:test_instance_tracker",
Abseil Team2a62fbd2017-09-25 15:35:12 -070084 "@com_google_googletest//:gtest_main",
85 ],
mistergc2e75482017-09-19 16:54:40 -040086)
87
88cc_test(
89 name = "any_test_noexceptions",
90 size = "small",
91 srcs = [
92 "any_test.cc",
93 ],
94 copts = ABSL_TEST_COPTS,
Abseil Team5b65c4a2019-03-27 08:05:41 -070095 linkopts = ABSL_DEFAULT_LINKOPTS,
mistergc2e75482017-09-19 16:54:40 -040096 deps = [
97 ":any",
mistergc2e75482017-09-19 16:54:40 -040098 "//absl/base:config",
99 "//absl/base:exception_testing",
Abseil Teamd9aa92d2019-08-13 10:20:16 -0700100 "//absl/base:raw_logging_internal",
mistergc2e75482017-09-19 16:54:40 -0400101 "//absl/container:test_instance_tracker",
Abseil Team2a62fbd2017-09-25 15:35:12 -0700102 "@com_google_googletest//:gtest_main",
103 ],
mistergc2e75482017-09-19 16:54:40 -0400104)
105
Abseil Team4132ce22018-01-05 07:54:33 -0800106cc_test(
107 name = "any_exception_safety_test",
108 srcs = ["any_exception_safety_test.cc"],
109 copts = ABSL_TEST_COPTS + ABSL_EXCEPTIONS_FLAG,
Abseil Team5b65c4a2019-03-27 08:05:41 -0700110 linkopts = ABSL_EXCEPTIONS_FLAG_LINKOPTS + ABSL_DEFAULT_LINKOPTS,
Abseil Team4132ce22018-01-05 07:54:33 -0800111 deps = [
112 ":any",
113 "//absl/base:exception_safety_testing",
114 "@com_google_googletest//:gtest_main",
115 ],
116)
117
mistergc2e75482017-09-19 16:54:40 -0400118cc_library(
119 name = "span",
Abseil Team2c8421e2019-03-28 11:12:19 -0700120 srcs = [
121 "internal/span.h",
122 ],
123 hdrs = [
124 "span.h",
125 ],
mistergc2e75482017-09-19 16:54:40 -0400126 copts = ABSL_DEFAULT_COPTS,
Abseil Team5b65c4a2019-03-27 08:05:41 -0700127 linkopts = ABSL_DEFAULT_LINKOPTS,
mistergc2e75482017-09-19 16:54:40 -0400128 deps = [
129 "//absl/algorithm",
130 "//absl/base:core_headers",
131 "//absl/base:throw_delegate",
132 "//absl/meta:type_traits",
mistergc2e75482017-09-19 16:54:40 -0400133 ],
134)
135
136cc_test(
137 name = "span_test",
138 size = "small",
139 srcs = ["span_test.cc"],
Loo Rong Jieda0d96c2018-01-25 09:58:03 +0800140 copts = ABSL_TEST_COPTS + ABSL_EXCEPTIONS_FLAG,
Abseil Team5b65c4a2019-03-27 08:05:41 -0700141 linkopts = ABSL_EXCEPTIONS_FLAG_LINKOPTS + ABSL_DEFAULT_LINKOPTS,
mistergc2e75482017-09-19 16:54:40 -0400142 deps = [
143 ":span",
144 "//absl/base:config",
145 "//absl/base:core_headers",
146 "//absl/base:exception_testing",
147 "//absl/container:fixed_array",
148 "//absl/container:inlined_vector",
Abseil Teamf21d1872018-10-02 12:09:18 -0700149 "//absl/hash:hash_testing",
mistergc2e75482017-09-19 16:54:40 -0400150 "//absl/strings",
Abseil Team2a62fbd2017-09-25 15:35:12 -0700151 "@com_google_googletest//:gtest_main",
152 ],
mistergc2e75482017-09-19 16:54:40 -0400153)
154
155cc_test(
156 name = "span_test_noexceptions",
157 size = "small",
158 srcs = ["span_test.cc"],
159 copts = ABSL_TEST_COPTS,
Abseil Team5b65c4a2019-03-27 08:05:41 -0700160 linkopts = ABSL_DEFAULT_LINKOPTS,
mistergc2e75482017-09-19 16:54:40 -0400161 deps = [
162 ":span",
163 "//absl/base:config",
164 "//absl/base:core_headers",
165 "//absl/base:exception_testing",
166 "//absl/container:fixed_array",
167 "//absl/container:inlined_vector",
Abseil Teamf21d1872018-10-02 12:09:18 -0700168 "//absl/hash:hash_testing",
mistergc2e75482017-09-19 16:54:40 -0400169 "//absl/strings",
Abseil Team2a62fbd2017-09-25 15:35:12 -0700170 "@com_google_googletest//:gtest_main",
171 ],
mistergc2e75482017-09-19 16:54:40 -0400172)
173
174cc_library(
175 name = "optional",
Abseil Team666fc122019-04-04 08:13:57 -0700176 srcs = ["internal/optional.h"],
mistergc2e75482017-09-19 16:54:40 -0400177 hdrs = ["optional.h"],
178 copts = ABSL_DEFAULT_COPTS,
Abseil Team5b65c4a2019-03-27 08:05:41 -0700179 linkopts = ABSL_DEFAULT_LINKOPTS,
mistergc2e75482017-09-19 16:54:40 -0400180 deps = [
181 ":bad_optional_access",
Abseil Team5b65c4a2019-03-27 08:05:41 -0700182 "//absl/base:base_internal",
mistergc2e75482017-09-19 16:54:40 -0400183 "//absl/base:config",
Abseil Teamcc8dcd32018-10-31 08:10:03 -0700184 "//absl/base:core_headers",
mistergc2e75482017-09-19 16:54:40 -0400185 "//absl/memory",
186 "//absl/meta:type_traits",
187 "//absl/utility",
188 ],
189)
190
191cc_library(
192 name = "bad_optional_access",
193 srcs = ["bad_optional_access.cc"],
194 hdrs = ["bad_optional_access.h"],
195 copts = ABSL_DEFAULT_COPTS + ABSL_EXCEPTIONS_FLAG,
Abseil Team5b65c4a2019-03-27 08:05:41 -0700196 linkopts = ABSL_EXCEPTIONS_FLAG_LINKOPTS + ABSL_DEFAULT_LINKOPTS,
mistergc2e75482017-09-19 16:54:40 -0400197 deps = [
mistergc2e75482017-09-19 16:54:40 -0400198 "//absl/base:config",
Abseil Teamd9aa92d2019-08-13 10:20:16 -0700199 "//absl/base:raw_logging_internal",
mistergc2e75482017-09-19 16:54:40 -0400200 ],
201)
202
Abseil Teamfaf0a1b2018-04-20 09:16:52 -0700203cc_library(
204 name = "bad_variant_access",
205 srcs = ["bad_variant_access.cc"],
206 hdrs = ["bad_variant_access.h"],
207 copts = ABSL_EXCEPTIONS_FLAG + ABSL_DEFAULT_COPTS,
Abseil Team5b65c4a2019-03-27 08:05:41 -0700208 linkopts = ABSL_EXCEPTIONS_FLAG_LINKOPTS + ABSL_DEFAULT_LINKOPTS,
Abseil Teamfaf0a1b2018-04-20 09:16:52 -0700209 deps = [
Abseil Teamfaf0a1b2018-04-20 09:16:52 -0700210 "//absl/base:config",
Abseil Teamd9aa92d2019-08-13 10:20:16 -0700211 "//absl/base:raw_logging_internal",
Abseil Teamfaf0a1b2018-04-20 09:16:52 -0700212 ],
213)
214
mistergc2e75482017-09-19 16:54:40 -0400215cc_test(
216 name = "optional_test",
217 size = "small",
218 srcs = [
219 "optional_test.cc",
220 ],
221 copts = ABSL_TEST_COPTS + ABSL_EXCEPTIONS_FLAG,
Abseil Team5b65c4a2019-03-27 08:05:41 -0700222 linkopts = ABSL_EXCEPTIONS_FLAG_LINKOPTS + ABSL_DEFAULT_LINKOPTS,
mistergc2e75482017-09-19 16:54:40 -0400223 deps = [
224 ":optional",
mistergc2e75482017-09-19 16:54:40 -0400225 "//absl/base:config",
Abseil Teamd9aa92d2019-08-13 10:20:16 -0700226 "//absl/base:raw_logging_internal",
mistergc2e75482017-09-19 16:54:40 -0400227 "//absl/meta:type_traits",
228 "//absl/strings",
Abseil Team2a62fbd2017-09-25 15:35:12 -0700229 "@com_google_googletest//:gtest_main",
230 ],
mistergc2e75482017-09-19 16:54:40 -0400231)
Abseil Teamfaf0a1b2018-04-20 09:16:52 -0700232
Abseil Team7aacab82018-05-31 12:26:35 -0700233cc_test(
234 name = "optional_exception_safety_test",
235 srcs = [
236 "optional_exception_safety_test.cc",
237 ],
238 copts = ABSL_TEST_COPTS + ABSL_EXCEPTIONS_FLAG,
Abseil Team5b65c4a2019-03-27 08:05:41 -0700239 linkopts = ABSL_EXCEPTIONS_FLAG_LINKOPTS + ABSL_DEFAULT_LINKOPTS,
Abseil Team7aacab82018-05-31 12:26:35 -0700240 deps = [
241 ":optional",
242 "//absl/base:exception_safety_testing",
243 "@com_google_googletest//:gtest_main",
244 ],
245)
246
Abseil Teamfaf0a1b2018-04-20 09:16:52 -0700247cc_library(
248 name = "variant",
249 srcs = ["internal/variant.h"],
250 hdrs = ["variant.h"],
251 copts = ABSL_DEFAULT_COPTS,
Abseil Team5b65c4a2019-03-27 08:05:41 -0700252 linkopts = ABSL_DEFAULT_LINKOPTS,
Abseil Teamfaf0a1b2018-04-20 09:16:52 -0700253 deps = [
254 ":bad_variant_access",
255 "//absl/base:base_internal",
256 "//absl/base:config",
257 "//absl/base:core_headers",
258 "//absl/meta:type_traits",
259 "//absl/utility",
260 ],
261)
262
263cc_test(
264 name = "variant_test",
265 size = "small",
266 srcs = ["variant_test.cc"],
267 copts = ABSL_TEST_COPTS + ABSL_EXCEPTIONS_FLAG,
Abseil Team5b65c4a2019-03-27 08:05:41 -0700268 linkopts = ABSL_EXCEPTIONS_FLAG_LINKOPTS + ABSL_DEFAULT_LINKOPTS,
Abseil Teamfaf0a1b2018-04-20 09:16:52 -0700269 deps = [
270 ":variant",
271 "//absl/base:config",
272 "//absl/base:core_headers",
273 "//absl/memory",
274 "//absl/meta:type_traits",
275 "//absl/strings",
276 "@com_google_googletest//:gtest_main",
277 ],
278)
Abseil Team26b789f2018-05-04 09:58:56 -0700279
280cc_test(
Abseil Teameb686c02018-06-13 11:44:15 -0700281 name = "variant_benchmark",
282 srcs = [
283 "variant_benchmark.cc",
284 ],
285 copts = ABSL_TEST_COPTS,
Abseil Team5b65c4a2019-03-27 08:05:41 -0700286 linkopts = ABSL_DEFAULT_LINKOPTS,
Abseil Team7efd8dc2018-06-26 10:45:35 -0700287 tags = ["benchmark"],
Abseil Teameb686c02018-06-13 11:44:15 -0700288 deps = [
289 ":variant",
290 "//absl/utility",
291 "@com_github_google_benchmark//:benchmark_main",
292 ],
293)
294
295cc_test(
Abseil Team26b789f2018-05-04 09:58:56 -0700296 name = "variant_exception_safety_test",
297 size = "small",
298 srcs = [
299 "variant_exception_safety_test.cc",
300 ],
301 copts = ABSL_TEST_COPTS + ABSL_EXCEPTIONS_FLAG,
Abseil Team5b65c4a2019-03-27 08:05:41 -0700302 linkopts = ABSL_EXCEPTIONS_FLAG_LINKOPTS + ABSL_DEFAULT_LINKOPTS,
Abseil Team26b789f2018-05-04 09:58:56 -0700303 deps = [
304 ":variant",
Abseil Team7b46e1d2018-11-13 13:22:00 -0800305 "//absl/base:config",
Abseil Team26b789f2018-05-04 09:58:56 -0700306 "//absl/base:exception_safety_testing",
307 "//absl/memory",
308 "@com_google_googletest//:gtest_main",
309 ],
310)
Abseil Team27c2f6e2019-05-08 14:20:43 -0700311
312cc_library(
313 name = "compare",
314 hdrs = ["compare.h"],
315 copts = ABSL_DEFAULT_COPTS,
316 deps = [
317 "//absl/base:core_headers",
318 "//absl/meta:type_traits",
319 ],
320)
321
322cc_test(
323 name = "compare_test",
324 size = "small",
325 srcs = [
326 "compare_test.cc",
327 ],
328 copts = ABSL_TEST_COPTS,
329 deps = [
330 ":compare",
331 "//absl/base",
332 "@com_google_googletest//:gtest_main",
333 ],
334)