xref: /aosp_15_r20/external/pigweed/pw_log/BUILD.bazel (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1# Copyright 2020 The Pigweed Authors
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4# use this file except in compliance with the License. You may obtain a copy of
5# the License at
6#
7#     https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations under
13# the License.
14
15load("@rules_python//python:proto.bzl", "py_proto_library")
16load("//pw_build:compatibility.bzl", "host_backend_alias")
17load("//pw_build:pw_facade.bzl", "pw_facade")
18load(
19    "//pw_protobuf_compiler:pw_proto_library.bzl",
20    "pwpb_proto_library",
21    "raw_rpc_proto_library",
22)
23load("//pw_unit_test:pw_cc_test.bzl", "pw_cc_test")
24
25package(default_visibility = ["//visibility:public"])
26
27licenses(["notice"])
28
29# TODO: pwbug.dev/328679085 - Remove this alias once no-one uses it.
30alias(
31    name = "facade",
32    actual = "pw_log.facade",
33)
34
35pw_facade(
36    name = "pw_log",
37    hdrs = [
38        "public/pw_log/config.h",
39        "public/pw_log/levels.h",
40        "public/pw_log/log.h",
41        "public/pw_log/options.h",
42        "public/pw_log/short.h",
43        "public/pw_log/shorter.h",
44    ],
45    backend = ":backend",
46    strip_include_prefix = "public",
47    deps = [
48        ":config_override",
49        "//pw_preprocessor",
50    ],
51)
52
53cc_library(
54    name = "rate_limited",
55    srcs = [
56        "rate_limited.cc",
57    ],
58    hdrs = [
59        "public/pw_log/rate_limited.h",
60    ],
61    strip_include_prefix = "public",
62    deps = [
63        ":config_override",
64        ":pw_log",
65        "//pw_chrono:system_clock",
66    ],
67)
68
69cc_library(
70    name = "args",
71    hdrs = [
72        "public/pw_log/tokenized_args.h",
73    ],
74    strip_include_prefix = "public",
75    deps = ["//pw_tokenizer"],
76)
77
78label_flag(
79    name = "config_override",
80    build_setting_default = "//pw_build:default_module_config",
81)
82
83label_flag(
84    name = "backend",
85    build_setting_default = ":unspecified_backend",
86    # For internal tooling: go/build-cleaner/troubleshooting-faq#keep-dep
87    tags = ["keep_dep"],
88)
89
90host_backend_alias(
91    name = "unspecified_backend",
92    backend = "//pw_log_basic",
93)
94
95label_flag(
96    name = "backend_impl",
97    build_setting_default = ":unspecified_backend_impl",
98    # For internal tooling: go/build-cleaner/troubleshooting-faq#keep-dep
99    tags = ["keep_dep"],
100)
101
102host_backend_alias(
103    name = "unspecified_backend_impl",
104    backend = "//pw_log_basic:impl",
105)
106
107cc_library(
108    name = "glog_adapter",
109    hdrs = [
110        "public/pw_log/glog_adapter.h",
111        "public/pw_log/glog_adapter_config.h",
112        "public/pw_log/internal/glog_adapter.h",
113    ],
114    strip_include_prefix = "public",
115    deps = [
116        ":glog_adapter_config_override",
117        "//pw_assert",
118        "//pw_log",
119        "//pw_preprocessor",
120        "//pw_string",
121    ],
122)
123
124label_flag(
125    name = "glog_adapter_config_override",
126    build_setting_default = "//pw_build:default_module_config",
127)
128
129cc_library(
130    name = "proto_utils",
131    srcs = [
132        "proto_utils.cc",
133    ],
134    hdrs = [
135        "public/pw_log/proto_utils.h",
136    ],
137    strip_include_prefix = "public",
138    deps = [
139        ":log_proto_pwpb",
140        ":pw_log.facade",
141        "//pw_bytes",
142        "//pw_log_tokenized:headers",
143        "//pw_protobuf",
144        "//pw_result",
145    ],
146)
147
148proto_library(
149    name = "log_proto",
150    srcs = [
151        "log.proto",
152    ],
153    import_prefix = "pw_log/proto",
154    strip_import_prefix = "/pw_log",
155    deps = [
156        "//pw_protobuf:common_proto",
157        "//pw_tokenizer:tokenizer_proto",
158    ],
159)
160
161py_proto_library(
162    name = "log_proto_py_pb2",
163    deps = [":log_proto"],
164)
165
166java_lite_proto_library(
167    name = "log_java_proto_lite",
168    deps = [":log_proto"],
169)
170
171pwpb_proto_library(
172    name = "log_proto_pwpb",
173    deps = [":log_proto"],
174)
175
176raw_rpc_proto_library(
177    name = "log_proto_raw_rpc",
178    deps = [":log_proto"],
179)
180
181# https://pwbug.dev/375207472 - Remove this alias after downstream migration.
182alias(
183    name = "log_proto_cc.pwpb",
184    actual = ":log_proto_pwpb",
185)
186
187# https://pwbug.dev/375207472 - Remove this alias after downstream migration.
188alias(
189    name = "log_proto_cc.raw_rpc",
190    actual = ":log_proto_raw_rpc",
191)
192
193pw_cc_test(
194    name = "test",
195    srcs = [
196        "basic_log_test.cc",
197        "basic_log_test_plain_c.c",
198    ],
199    deps = [
200        ":pw_log",
201        ":pw_log.facade",
202        ":rate_limited",
203        "//pw_preprocessor",
204        "//pw_unit_test",
205    ],
206)
207
208pw_cc_test(
209    name = "glog_adapter_test",
210    srcs = [
211        "glog_adapter_test.cc",
212    ],
213    deps = [
214        ":glog_adapter",
215        "//pw_unit_test",
216    ],
217)
218
219pw_cc_test(
220    name = "proto_utils_test",
221    srcs = [
222        "proto_utils_test.cc",
223    ],
224    deps = [
225        ":log_proto_pwpb",
226        ":proto_utils",
227        ":pw_log.facade",
228        "//pw_containers",
229        "//pw_preprocessor",
230        "//pw_protobuf",
231        "//pw_protobuf:bytes_utils",
232        "//pw_unit_test",
233    ],
234)
235
236pw_cc_test(
237    name = "log_enum_test",
238    srcs = [
239        "log_enum_test.cc",
240    ],
241    deps = [
242        ":args",
243        "//pw_log",
244        "//pw_tokenizer",
245        "//pw_unit_test",
246    ],
247)
248
249filegroup(
250    name = "doxygen",
251    srcs = [
252        "public/pw_log/tokenized_args.h",
253    ],
254)
255