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