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 20load( 21 "//absl:copts/configure_copts.bzl", 22 "ABSL_DEFAULT_COPTS", 23 "ABSL_DEFAULT_LINKOPTS", 24 "ABSL_TEST_COPTS", 25) 26 27package( 28 default_visibility = ["//visibility:public"], 29 features = [ 30 "header_modules", 31 "layering_check", 32 "parse_headers", 33 ], 34) 35 36licenses(["notice"]) 37 38cc_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:stacktrace", 62 "//absl/debugging:symbolize", 63 "//absl/functional:function_ref", 64 "//absl/memory", 65 "//absl/strings", 66 "//absl/strings:cord", 67 "//absl/strings:str_format", 68 "//absl/types:optional", 69 "//absl/types:span", 70 ], 71) 72 73cc_test( 74 name = "status_test", 75 srcs = ["status_test.cc"], 76 copts = ABSL_TEST_COPTS, 77 linkopts = ABSL_DEFAULT_LINKOPTS, 78 deps = [ 79 ":status", 80 "//absl/strings", 81 "//absl/strings:cord", 82 "//absl/strings:str_format", 83 "@com_google_googletest//:gtest", 84 "@com_google_googletest//:gtest_main", 85 ], 86) 87 88cc_library( 89 name = "statusor", 90 srcs = [ 91 "internal/statusor_internal.h", 92 "statusor.cc", 93 ], 94 hdrs = [ 95 "statusor.h", 96 ], 97 copts = ABSL_DEFAULT_COPTS, 98 linkopts = ABSL_DEFAULT_LINKOPTS, 99 deps = [ 100 ":status", 101 "//absl/base", 102 "//absl/base:config", 103 "//absl/base:core_headers", 104 "//absl/base:nullability", 105 "//absl/base:raw_logging_internal", 106 "//absl/meta:type_traits", 107 "//absl/strings", 108 "//absl/strings:has_ostream_operator", 109 "//absl/strings:str_format", 110 "//absl/types:variant", 111 "//absl/utility", 112 ], 113) 114 115cc_test( 116 name = "statusor_test", 117 size = "small", 118 srcs = ["statusor_test.cc"], 119 deps = [ 120 ":status", 121 ":status_matchers", 122 ":statusor", 123 "//absl/base", 124 "//absl/memory", 125 "//absl/strings", 126 "//absl/types:any", 127 "//absl/types:variant", 128 "//absl/utility", 129 "@com_google_googletest//:gtest", 130 "@com_google_googletest//:gtest_main", 131 ], 132) 133 134cc_library( 135 name = "status_matchers", 136 testonly = 1, 137 srcs = [ 138 "internal/status_matchers.cc", 139 "internal/status_matchers.h", 140 ], 141 hdrs = ["status_matchers.h"], 142 copts = ABSL_DEFAULT_COPTS, 143 linkopts = ABSL_DEFAULT_LINKOPTS, 144 deps = [ 145 ":status", 146 ":statusor", 147 "//absl/base:config", 148 "//absl/strings:string_view", 149 "@com_google_googletest//:gtest", 150 ], 151) 152 153cc_test( 154 name = "status_matchers_test", 155 size = "small", 156 srcs = ["status_matchers_test.cc"], 157 copts = ABSL_TEST_COPTS, 158 linkopts = ABSL_DEFAULT_LINKOPTS, 159 deps = [ 160 ":status", 161 ":status_matchers", 162 ":statusor", 163 "//absl/strings", 164 "@com_google_googletest//:gtest", 165 "@com_google_googletest//:gtest_main", 166 ], 167) 168