• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
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#
8#      https://www.apache.org/licenses/LICENSE-2.0
9#
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
16load(
17    "//absl:copts/configure_copts.bzl",
18    "ABSL_DEFAULT_COPTS",
19    "ABSL_DEFAULT_LINKOPTS",
20    "ABSL_TEST_COPTS",
21)
22
23package(
24    default_visibility = ["//visibility:public"],
25    features = [
26        "header_modules",
27        "layering_check",
28        "parse_headers",
29    ],
30)
31
32licenses(["notice"])
33
34cc_library(
35    name = "any",
36    hdrs = ["any.h"],
37    copts = ABSL_DEFAULT_COPTS,
38    linkopts = ABSL_DEFAULT_LINKOPTS,
39    deps = [
40        ":bad_any_cast",
41        "//absl/base:config",
42        "//absl/base:core_headers",
43        "//absl/base:fast_type_id",
44        "//absl/meta:type_traits",
45        "//absl/utility",
46    ],
47)
48
49cc_library(
50    name = "bad_any_cast",
51    hdrs = ["bad_any_cast.h"],
52    copts = ABSL_DEFAULT_COPTS,
53    linkopts = ABSL_DEFAULT_LINKOPTS,
54    deps = [
55        ":bad_any_cast_impl",
56        "//absl/base:config",
57    ],
58)
59
60cc_library(
61    name = "bad_any_cast_impl",
62    srcs = [
63        "bad_any_cast.cc",
64        "bad_any_cast.h",
65    ],
66    copts = ABSL_DEFAULT_COPTS,
67    linkopts = ABSL_DEFAULT_LINKOPTS,
68    visibility = ["//visibility:private"],
69    deps = [
70        "//absl/base:config",
71        "//absl/base:raw_logging_internal",
72    ],
73)
74
75cc_test(
76    name = "any_test",
77    size = "small",
78    srcs = [
79        "any_test.cc",
80    ],
81    copts = ABSL_TEST_COPTS,
82    linkopts = ABSL_DEFAULT_LINKOPTS,
83    deps = [
84        ":any",
85        "//absl/base:config",
86        "//absl/base:exception_testing",
87        "//absl/container:test_instance_tracker",
88        "//absl/log",
89        "@com_google_googletest//:gtest",
90        "@com_google_googletest//:gtest_main",
91    ],
92)
93
94cc_test(
95    name = "any_exception_safety_test",
96    srcs = ["any_exception_safety_test.cc"],
97    copts = ABSL_TEST_COPTS,
98    linkopts = ABSL_DEFAULT_LINKOPTS,
99    deps = [
100        ":any",
101        "//absl/base:config",
102        "//absl/base:exception_safety_testing",
103        "@com_google_googletest//:gtest",
104        "@com_google_googletest//:gtest_main",
105    ],
106)
107
108cc_library(
109    name = "span",
110    srcs = [
111        "internal/span.h",
112    ],
113    hdrs = [
114        "span.h",
115    ],
116    copts = ABSL_DEFAULT_COPTS,
117    linkopts = ABSL_DEFAULT_LINKOPTS,
118    deps = [
119        "//absl/algorithm",
120        "//absl/base:core_headers",
121        "//absl/base:nullability",
122        "//absl/base:throw_delegate",
123        "//absl/meta:type_traits",
124    ],
125)
126
127cc_test(
128    name = "span_test",
129    size = "small",
130    srcs = ["span_test.cc"],
131    copts = ABSL_TEST_COPTS,
132    linkopts = ABSL_DEFAULT_LINKOPTS,
133    deps = [
134        ":span",
135        "//absl/base:config",
136        "//absl/base:core_headers",
137        "//absl/base:exception_testing",
138        "//absl/container:fixed_array",
139        "//absl/container:inlined_vector",
140        "//absl/hash:hash_testing",
141        "//absl/meta:type_traits",
142        "//absl/strings",
143        "@com_google_googletest//:gtest",
144        "@com_google_googletest//:gtest_main",
145    ],
146)
147
148cc_library(
149    name = "optional",
150    srcs = ["internal/optional.h"],
151    hdrs = ["optional.h"],
152    copts = ABSL_DEFAULT_COPTS,
153    linkopts = ABSL_DEFAULT_LINKOPTS,
154    deps = [
155        ":bad_optional_access",
156        "//absl/base:base_internal",
157        "//absl/base:config",
158        "//absl/base:core_headers",
159        "//absl/base:nullability",
160        "//absl/memory",
161        "//absl/meta:type_traits",
162        "//absl/utility",
163    ],
164)
165
166cc_library(
167    name = "bad_optional_access",
168    srcs = ["bad_optional_access.cc"],
169    hdrs = ["bad_optional_access.h"],
170    copts = ABSL_DEFAULT_COPTS,
171    linkopts = ABSL_DEFAULT_LINKOPTS,
172    deps = [
173        "//absl/base:config",
174        "//absl/base:raw_logging_internal",
175    ],
176)
177
178cc_library(
179    name = "bad_variant_access",
180    srcs = ["bad_variant_access.cc"],
181    hdrs = ["bad_variant_access.h"],
182    copts = ABSL_DEFAULT_COPTS,
183    linkopts = ABSL_DEFAULT_LINKOPTS,
184    deps = [
185        "//absl/base:config",
186        "//absl/base:raw_logging_internal",
187    ],
188)
189
190cc_test(
191    name = "optional_test",
192    size = "small",
193    srcs = [
194        "optional_test.cc",
195    ],
196    copts = ABSL_TEST_COPTS,
197    linkopts = ABSL_DEFAULT_LINKOPTS,
198    deps = [
199        ":optional",
200        "//absl/base:config",
201        "//absl/log",
202        "//absl/meta:type_traits",
203        "//absl/strings",
204        "@com_google_googletest//:gtest",
205        "@com_google_googletest//:gtest_main",
206    ],
207)
208
209cc_test(
210    name = "optional_exception_safety_test",
211    srcs = [
212        "optional_exception_safety_test.cc",
213    ],
214    copts = ABSL_TEST_COPTS,
215    linkopts = ABSL_DEFAULT_LINKOPTS,
216    deps = [
217        ":optional",
218        "//absl/base:config",
219        "//absl/base:exception_safety_testing",
220        "@com_google_googletest//:gtest",
221        "@com_google_googletest//:gtest_main",
222    ],
223)
224
225cc_library(
226    name = "variant",
227    srcs = ["internal/variant.h"],
228    hdrs = ["variant.h"],
229    copts = ABSL_DEFAULT_COPTS,
230    linkopts = ABSL_DEFAULT_LINKOPTS,
231    deps = [
232        ":bad_variant_access",
233        "//absl/base:base_internal",
234        "//absl/base:config",
235        "//absl/base:core_headers",
236        "//absl/meta:type_traits",
237        "//absl/utility",
238    ],
239)
240
241cc_test(
242    name = "variant_test",
243    size = "small",
244    srcs = ["variant_test.cc"],
245    copts = ABSL_TEST_COPTS,
246    linkopts = ABSL_DEFAULT_LINKOPTS,
247    deps = [
248        ":variant",
249        "//absl/base:config",
250        "//absl/base:core_headers",
251        "//absl/memory",
252        "//absl/meta:type_traits",
253        "//absl/strings",
254        "@com_google_googletest//:gtest",
255        "@com_google_googletest//:gtest_main",
256    ],
257)
258
259cc_test(
260    name = "variant_benchmark",
261    srcs = [
262        "variant_benchmark.cc",
263    ],
264    copts = ABSL_TEST_COPTS,
265    linkopts = ABSL_DEFAULT_LINKOPTS,
266    tags = ["benchmark"],
267    deps = [
268        ":variant",
269        "//absl/utility",
270        "@com_github_google_benchmark//:benchmark_main",
271        "@com_google_googletest//:gtest",
272    ],
273)
274
275cc_test(
276    name = "variant_exception_safety_test",
277    size = "small",
278    srcs = [
279        "variant_exception_safety_test.cc",
280    ],
281    copts = ABSL_TEST_COPTS,
282    linkopts = ABSL_DEFAULT_LINKOPTS,
283    deps = [
284        ":variant",
285        "//absl/base:config",
286        "//absl/base:exception_safety_testing",
287        "//absl/memory",
288        "@com_google_googletest//:gtest",
289        "@com_google_googletest//:gtest_main",
290    ],
291)
292
293cc_library(
294    name = "compare",
295    hdrs = ["compare.h"],
296    copts = ABSL_DEFAULT_COPTS,
297    linkopts = ABSL_DEFAULT_LINKOPTS,
298    deps = [
299        "//absl/base:config",
300        "//absl/base:core_headers",
301        "//absl/meta:type_traits",
302    ],
303)
304
305cc_test(
306    name = "compare_test",
307    size = "small",
308    srcs = [
309        "compare_test.cc",
310    ],
311    copts = ABSL_TEST_COPTS,
312    deps = [
313        ":compare",
314        "//absl/base",
315        "@com_google_googletest//:gtest",
316        "@com_google_googletest//:gtest_main",
317    ],
318)
319