xref: /aosp_15_r20/external/abseil-cpp/absl/status/BUILD.bazel (revision 9356374a3709195abf420251b3e825997ff56c0f)
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