• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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(
17    "//pw_build:pigweed.bzl",
18    "pw_cc_test",
19    "pw_facade",
20)
21load("//pw_protobuf_compiler:pw_proto_library.bzl", "pw_proto_library")
22
23package(default_visibility = ["//visibility:public"])
24
25licenses(["notice"])
26
27# TODO: pwbug.dev/328679085 - Remove this alias once no-one uses it.
28alias(
29    name = "facade",
30    actual = "pw_log.facade",
31)
32
33pw_facade(
34    name = "pw_log",
35    srcs = [
36        "public/pw_log/tokenized_args.h",
37    ],
38    hdrs = [
39        "public/pw_log/config.h",
40        "public/pw_log/levels.h",
41        "public/pw_log/log.h",
42        "public/pw_log/options.h",
43        "public/pw_log/short.h",
44        "public/pw_log/shorter.h",
45    ],
46    backend = ":backend",
47    includes = ["public"],
48    deps = [
49        ":config_override",
50        "//pw_preprocessor",
51    ],
52)
53
54cc_library(
55    name = "rate_limited",
56    srcs = [
57        "rate_limited.cc",
58    ],
59    hdrs = [
60        "public/pw_log/rate_limited.h",
61    ],
62    includes = ["public"],
63    deps = [
64        ":config_override",
65        ":pw_log",
66        "//pw_chrono:system_clock",
67    ],
68)
69
70label_flag(
71    name = "config_override",
72    build_setting_default = "//pw_build:default_module_config",
73)
74
75label_flag(
76    name = "backend",
77    build_setting_default = ":backend_multiplexer",
78    # For internal tooling: go/build-cleaner/troubleshooting-faq#keep-dep
79    tags = ["keep_dep"],
80)
81
82label_flag(
83    name = "backend_impl",
84    build_setting_default = "//pw_log_basic:impl",
85    # For internal tooling: go/build-cleaner/troubleshooting-faq#keep-dep
86    tags = ["keep_dep"],
87)
88
89cc_library(
90    name = "glog_adapter",
91    hdrs = [
92        "public/pw_log/glog_adapter.h",
93        "public/pw_log/glog_adapter_config.h",
94        "public/pw_log/internal/glog_adapter.h",
95    ],
96    includes = ["public"],
97    deps = [
98        ":glog_adapter_config_override",
99        "//pw_assert",
100        "//pw_log",
101        "//pw_preprocessor",
102        "//pw_string",
103    ],
104)
105
106label_flag(
107    name = "glog_adapter_config_override",
108    build_setting_default = "//pw_build:default_module_config",
109)
110
111cc_library(
112    name = "proto_utils",
113    srcs = [
114        "proto_utils.cc",
115    ],
116    hdrs = [
117        "public/pw_log/proto_utils.h",
118    ],
119    deps = [
120        ":log_proto_cc.pwpb",
121        ":pw_log.facade",
122        "//pw_bytes",
123        "//pw_log_tokenized:headers",
124        "//pw_protobuf",
125        "//pw_result",
126    ],
127)
128
129proto_library(
130    name = "log_proto",
131    srcs = [
132        "log.proto",
133    ],
134    import_prefix = "pw_log/proto",
135    strip_import_prefix = "/pw_log",
136    deps = [
137        "//pw_protobuf:common_proto",
138        "//pw_tokenizer:tokenizer_proto",
139    ],
140)
141
142py_proto_library(
143    name = "log_proto_py_pb2",
144    deps = [":log_proto"],
145)
146
147java_lite_proto_library(
148    name = "log_java_proto_lite",
149    deps = [":log_proto"],
150)
151
152pw_proto_library(
153    name = "log_proto_cc",
154    deps = [":log_proto"],
155)
156
157cc_library(
158    name = "backend_multiplexer",
159    visibility = ["@pigweed//targets:__pkg__"],
160    deps = ["//pw_log_basic"],
161)
162
163pw_cc_test(
164    name = "test",
165    srcs = [
166        "basic_log_test.cc",
167        "basic_log_test_plain_c.c",
168    ],
169    deps = [
170        ":pw_log",
171        ":pw_log.facade",
172        ":rate_limited",
173        "//pw_preprocessor",
174        "//pw_unit_test",
175    ],
176)
177
178pw_cc_test(
179    name = "glog_adapter_test",
180    srcs = [
181        "glog_adapter_test.cc",
182    ],
183    deps = [
184        ":glog_adapter",
185        "//pw_unit_test",
186    ],
187)
188
189pw_cc_test(
190    name = "proto_utils_test",
191    srcs = [
192        "proto_utils_test.cc",
193    ],
194    deps = [
195        ":log_proto_cc.pwpb",
196        ":proto_utils",
197        ":pw_log.facade",
198        "//pw_containers",
199        "//pw_preprocessor",
200        "//pw_protobuf",
201        "//pw_protobuf:bytes_utils",
202        "//pw_unit_test",
203    ],
204)
205