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