• 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/strings",
142        "@com_google_googletest//:gtest",
143        "@com_google_googletest//:gtest_main",
144    ],
145)
146
147cc_library(
148    name = "optional",
149    srcs = ["internal/optional.h"],
150    hdrs = ["optional.h"],
151    copts = ABSL_DEFAULT_COPTS,
152    linkopts = ABSL_DEFAULT_LINKOPTS,
153    deps = [
154        ":bad_optional_access",
155        "//absl/base:base_internal",
156        "//absl/base:config",
157        "//absl/base:core_headers",
158        "//absl/base:nullability",
159        "//absl/memory",
160        "//absl/meta:type_traits",
161        "//absl/utility",
162    ],
163)
164
165cc_library(
166    name = "bad_optional_access",
167    srcs = ["bad_optional_access.cc"],
168    hdrs = ["bad_optional_access.h"],
169    copts = ABSL_DEFAULT_COPTS,
170    linkopts = ABSL_DEFAULT_LINKOPTS,
171    deps = [
172        "//absl/base:config",
173        "//absl/base:raw_logging_internal",
174    ],
175)
176
177cc_library(
178    name = "bad_variant_access",
179    srcs = ["bad_variant_access.cc"],
180    hdrs = ["bad_variant_access.h"],
181    copts = ABSL_DEFAULT_COPTS,
182    linkopts = ABSL_DEFAULT_LINKOPTS,
183    deps = [
184        "//absl/base:config",
185        "//absl/base:raw_logging_internal",
186    ],
187)
188
189cc_test(
190    name = "optional_test",
191    size = "small",
192    srcs = [
193        "optional_test.cc",
194    ],
195    copts = ABSL_TEST_COPTS,
196    linkopts = ABSL_DEFAULT_LINKOPTS,
197    deps = [
198        ":optional",
199        "//absl/base:config",
200        "//absl/log",
201        "//absl/meta:type_traits",
202        "//absl/strings",
203        "@com_google_googletest//:gtest",
204        "@com_google_googletest//:gtest_main",
205    ],
206)
207
208cc_test(
209    name = "optional_exception_safety_test",
210    srcs = [
211        "optional_exception_safety_test.cc",
212    ],
213    copts = ABSL_TEST_COPTS,
214    linkopts = ABSL_DEFAULT_LINKOPTS,
215    deps = [
216        ":optional",
217        "//absl/base:config",
218        "//absl/base:exception_safety_testing",
219        "@com_google_googletest//:gtest",
220        "@com_google_googletest//:gtest_main",
221    ],
222)
223
224cc_library(
225    name = "variant",
226    srcs = ["internal/variant.h"],
227    hdrs = ["variant.h"],
228    copts = ABSL_DEFAULT_COPTS,
229    linkopts = ABSL_DEFAULT_LINKOPTS,
230    deps = [
231        ":bad_variant_access",
232        "//absl/base:base_internal",
233        "//absl/base:config",
234        "//absl/base:core_headers",
235        "//absl/meta:type_traits",
236        "//absl/utility",
237    ],
238)
239
240cc_test(
241    name = "variant_test",
242    size = "small",
243    srcs = ["variant_test.cc"],
244    copts = ABSL_TEST_COPTS,
245    linkopts = ABSL_DEFAULT_LINKOPTS,
246    deps = [
247        ":variant",
248        "//absl/base:config",
249        "//absl/base:core_headers",
250        "//absl/memory",
251        "//absl/meta:type_traits",
252        "//absl/strings",
253        "@com_google_googletest//:gtest",
254        "@com_google_googletest//:gtest_main",
255    ],
256)
257
258cc_test(
259    name = "variant_benchmark",
260    srcs = [
261        "variant_benchmark.cc",
262    ],
263    copts = ABSL_TEST_COPTS,
264    linkopts = ABSL_DEFAULT_LINKOPTS,
265    tags = ["benchmark"],
266    deps = [
267        ":variant",
268        "//absl/utility",
269        "@com_github_google_benchmark//:benchmark_main",
270        "@com_google_googletest//:gtest",
271    ],
272)
273
274cc_test(
275    name = "variant_exception_safety_test",
276    size = "small",
277    srcs = [
278        "variant_exception_safety_test.cc",
279    ],
280    copts = ABSL_TEST_COPTS,
281    linkopts = ABSL_DEFAULT_LINKOPTS,
282    deps = [
283        ":variant",
284        "//absl/base:config",
285        "//absl/base:exception_safety_testing",
286        "//absl/memory",
287        "@com_google_googletest//:gtest",
288        "@com_google_googletest//:gtest_main",
289    ],
290)
291
292cc_library(
293    name = "compare",
294    hdrs = ["compare.h"],
295    copts = ABSL_DEFAULT_COPTS,
296    linkopts = ABSL_DEFAULT_LINKOPTS,
297    deps = [
298        "//absl/base:config",
299        "//absl/base:core_headers",
300        "//absl/meta:type_traits",
301    ],
302)
303
304cc_test(
305    name = "compare_test",
306    size = "small",
307    srcs = [
308        "compare_test.cc",
309    ],
310    copts = ABSL_TEST_COPTS,
311    deps = [
312        ":compare",
313        "//absl/base",
314        "@com_google_googletest//:gtest",
315        "@com_google_googletest//:gtest_main",
316    ],
317)
318