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( 16 "//pw_build:pigweed.bzl", 17 "pw_cc_facade", 18 "pw_cc_library", 19 "pw_cc_test", 20) 21load("//pw_protobuf_compiler:proto.bzl", "pw_proto_library") 22load("//pw_build/bazel_internal:py_proto_library.bzl", "py_proto_library") 23 24package(default_visibility = ["//visibility:public"]) 25 26licenses(["notice"]) 27 28pw_cc_facade( 29 name = "facade", 30 hdrs = [ 31 "public/pw_log/config.h", 32 "public/pw_log/levels.h", 33 "public/pw_log/log.h", 34 "public/pw_log/options.h", 35 "public/pw_log/short.h", 36 "public/pw_log/shorter.h", 37 ], 38 includes = ["public"], 39 deps = [ 40 "//pw_preprocessor", 41 ], 42) 43 44pw_cc_library( 45 name = "pw_log", 46 deps = [ 47 ":facade", 48 "@pigweed_config//:pw_log_backend", 49 ], 50) 51 52pw_cc_library( 53 name = "glog_adapter", 54 hdrs = [ 55 "public/pw_log/glog_adapter.h", 56 "public/pw_log/glog_adapter_config.h", 57 "public/pw_log/internal/glog_adapter.h", 58 ], 59 includes = ["public"], 60 deps = [ 61 "//pw_assert", 62 "//pw_log", 63 "//pw_preprocessor", 64 "//pw_string", 65 ], 66) 67 68pw_cc_library( 69 name = "proto_utils", 70 srcs = [ 71 "proto_utils.cc", 72 ], 73 hdrs = [ 74 "public/pw_log/proto_utils.h", 75 ], 76 deps = [ 77 ":facade", 78 ":log_proto_cc.pwpb", 79 "//pw_bytes", 80 "//pw_log_tokenized:headers", 81 "//pw_protobuf", 82 "//pw_result", 83 ], 84) 85 86proto_library( 87 name = "log_proto", 88 srcs = [ 89 "log.proto", 90 ], 91 import_prefix = "pw_log/proto", 92 strip_import_prefix = "/pw_log", 93 deps = [ 94 "//pw_protobuf:common_proto", 95 "//pw_tokenizer:tokenizer_proto", 96 ], 97) 98 99# TODO(b/241456982): Not expected to build yet. 100py_proto_library( 101 name = "log_proto_py_pb2", 102 tags = ["manual"], 103 deps = [":log_proto"], 104) 105 106java_lite_proto_library( 107 name = "log_java_proto_lite", 108 deps = [":log_proto"], 109) 110 111pw_proto_library( 112 name = "log_proto_cc", 113 deps = [":log_proto"], 114) 115 116pw_cc_library( 117 name = "backend_multiplexer", 118 visibility = ["@pigweed_config//:__pkg__"], 119 deps = ["//pw_log_basic"], 120) 121 122pw_cc_test( 123 name = "test", 124 srcs = [ 125 "basic_log_test.cc", 126 "basic_log_test_plain_c.c", 127 ], 128 deps = [ 129 ":facade", 130 ":pw_log", 131 "//pw_preprocessor", 132 "//pw_unit_test", 133 ], 134) 135 136pw_cc_test( 137 name = "glog_adapter_test", 138 srcs = [ 139 "glog_adapter_test.cc", 140 ], 141 deps = [ 142 ":glog_adapter", 143 "//pw_unit_test", 144 ], 145) 146 147pw_cc_test( 148 name = "proto_utils_test", 149 srcs = [ 150 "proto_utils_test.cc", 151 ], 152 deps = [ 153 ":facade", 154 ":log_proto_cc.pwpb", 155 ":proto_utils", 156 "//pw_containers", 157 "//pw_preprocessor", 158 "//pw_protobuf", 159 "//pw_protobuf:bytes_utils", 160 "//pw_unit_test", 161 ], 162) 163