BUILD.bazel (4648B)
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 16 # This package contains `absl::Status`. 17 # It will expand later to have utilities around `Status` like `StatusOr`, 18 # `StatusBuilder` and macros. 19 20 load( 21 "//absl:copts/configure_copts.bzl", 22 "ABSL_DEFAULT_COPTS", 23 "ABSL_DEFAULT_LINKOPTS", 24 "ABSL_TEST_COPTS", 25 ) 26 27 package( 28 default_visibility = ["//visibility:public"], 29 features = [ 30 "header_modules", 31 "layering_check", 32 "parse_headers", 33 ], 34 ) 35 36 licenses(["notice"]) 37 38 cc_library( 39 name = "status", 40 srcs = [ 41 "internal/status_internal.cc", 42 "internal/status_internal.h", 43 "status.cc", 44 "status_payload_printer.cc", 45 ], 46 hdrs = [ 47 "status.h", 48 "status_payload_printer.h", 49 ], 50 copts = ABSL_DEFAULT_COPTS, 51 linkopts = ABSL_DEFAULT_LINKOPTS, 52 deps = [ 53 "//absl/base:atomic_hook", 54 "//absl/base:config", 55 "//absl/base:core_headers", 56 "//absl/base:no_destructor", 57 "//absl/base:nullability", 58 "//absl/base:raw_logging_internal", 59 "//absl/base:strerror", 60 "//absl/container:inlined_vector", 61 "//absl/debugging:leak_check", 62 "//absl/debugging:stacktrace", 63 "//absl/debugging:symbolize", 64 "//absl/functional:function_ref", 65 "//absl/memory", 66 "//absl/strings", 67 "//absl/strings:cord", 68 "//absl/strings:str_format", 69 "//absl/types:optional", 70 "//absl/types:span", 71 ], 72 ) 73 74 cc_test( 75 name = "status_test", 76 srcs = ["status_test.cc"], 77 copts = ABSL_TEST_COPTS, 78 linkopts = ABSL_DEFAULT_LINKOPTS, 79 deps = [ 80 ":status", 81 "//absl/strings", 82 "//absl/strings:cord", 83 "//absl/strings:str_format", 84 "@googletest//:gtest", 85 "@googletest//:gtest_main", 86 ], 87 ) 88 89 cc_binary( 90 name = "status_benchmark", 91 testonly = True, 92 srcs = ["status_benchmark.cc"], 93 tags = ["benchmark"], 94 deps = [ 95 ":status", 96 "@google_benchmark//:benchmark_main", 97 ], 98 ) 99 100 cc_library( 101 name = "statusor", 102 srcs = [ 103 "internal/statusor_internal.h", 104 "statusor.cc", 105 ], 106 hdrs = [ 107 "statusor.h", 108 ], 109 copts = ABSL_DEFAULT_COPTS, 110 linkopts = ABSL_DEFAULT_LINKOPTS, 111 deps = [ 112 ":status", 113 "//absl/base", 114 "//absl/base:config", 115 "//absl/base:core_headers", 116 "//absl/base:nullability", 117 "//absl/base:raw_logging_internal", 118 "//absl/meta:type_traits", 119 "//absl/strings", 120 "//absl/strings:has_ostream_operator", 121 "//absl/strings:str_format", 122 "//absl/types:variant", 123 "//absl/utility", 124 ], 125 ) 126 127 cc_test( 128 name = "statusor_test", 129 size = "small", 130 srcs = ["statusor_test.cc"], 131 deps = [ 132 ":status", 133 ":status_matchers", 134 ":statusor", 135 "//absl/base", 136 "//absl/memory", 137 "//absl/strings", 138 "//absl/types:any", 139 "//absl/types:variant", 140 "//absl/utility", 141 "@googletest//:gtest", 142 "@googletest//:gtest_main", 143 ], 144 ) 145 146 cc_binary( 147 name = "statusor_benchmark", 148 testonly = True, 149 srcs = ["statusor_benchmark.cc"], 150 tags = ["benchmark"], 151 deps = [ 152 ":status", 153 ":statusor", 154 "@google_benchmark//:benchmark_main", 155 ], 156 ) 157 158 cc_library( 159 name = "status_matchers", 160 testonly = 1, 161 srcs = [ 162 "internal/status_matchers.cc", 163 "internal/status_matchers.h", 164 ], 165 hdrs = ["status_matchers.h"], 166 copts = ABSL_DEFAULT_COPTS, 167 linkopts = ABSL_DEFAULT_LINKOPTS, 168 deps = [ 169 ":status", 170 ":statusor", 171 "//absl/base:config", 172 "//absl/strings:string_view", 173 "@googletest//:gtest", 174 ], 175 ) 176 177 cc_test( 178 name = "status_matchers_test", 179 size = "small", 180 srcs = ["status_matchers_test.cc"], 181 copts = ABSL_TEST_COPTS, 182 linkopts = ABSL_DEFAULT_LINKOPTS, 183 deps = [ 184 ":status", 185 ":status_matchers", 186 ":statusor", 187 "//absl/strings", 188 "@googletest//:gtest", 189 "@googletest//:gtest_main", 190 ], 191 )