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