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