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