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_test", 18 "pw_facade", 19) 20 21package(default_visibility = ["//visibility:public"]) 22 23licenses(["notice"]) 24 25cc_library( 26 name = "headers", 27 hdrs = [ 28 "public/pw_log_tokenized/config.h", 29 "public/pw_log_tokenized/log_tokenized.h", 30 "public/pw_log_tokenized/metadata.h", 31 ], 32 includes = [ 33 "public", 34 ], 35 deps = [ 36 ":config_override", 37 "//pw_log:pw_log.facade", 38 "//pw_polyfill", 39 "//pw_tokenizer", 40 ], 41) 42 43label_flag( 44 name = "config_override", 45 build_setting_default = "//pw_build:default_module_config", 46) 47 48cc_library( 49 name = "pw_log_tokenized", 50 srcs = ["log_tokenized.cc"], 51 hdrs = [ 52 "public_overrides/pw_log_backend/log_backend.h", 53 "public_overrides/pw_log_backend/log_backend_uses_pw_tokenizer.h", 54 ], 55 includes = [ 56 "public_overrides", 57 ], 58 deps = [ 59 ":handler_facade", 60 ":headers", 61 "//pw_log:pw_log.facade", 62 ], 63) 64 65cc_library( 66 name = "gcc_partially_tokenized", 67 srcs = ["log_tokenized.cc"], 68 hdrs = [ 69 "gcc_partially_tokenized_public_overrides/pw_log_backend/log_backend.h", 70 "public/pw_log_tokenized/gcc_partially_tokenized.h", 71 ], 72 includes = [ 73 "gcc_partially_tokenized_public_overrides", 74 "public", 75 ], 76 deps = [ 77 ":handler", 78 ":headers", 79 "//pw_log:pw_log.facade", 80 "//pw_log_string:handler", 81 ], 82) 83 84alias( 85 name = "impl", 86 actual = ":handler", 87) 88 89pw_facade( 90 name = "handler", 91 hdrs = ["public/pw_log_tokenized/handler.h"], 92 backend = ":handler_backend", 93 includes = ["public"], 94 deps = ["//pw_preprocessor"], 95) 96 97label_flag( 98 name = "handler_backend", 99 build_setting_default = ":base64_over_hdlc", 100) 101 102# There is no default backend for now. 103cc_library( 104 name = "backend_multiplexer", 105 visibility = ["@pigweed//targets:__pkg__"], 106) 107 108cc_library( 109 name = "base64", 110 hdrs = ["public/pw_log_tokenized/base64.h"], 111 includes = ["public"], 112 deps = [ 113 ":headers", # Only config.h is needed 114 "//pw_tokenizer:base64", 115 ], 116) 117 118cc_library( 119 name = "base64_over_hdlc", 120 srcs = ["base64_over_hdlc.cc"], 121 deps = [ 122 ":base64", 123 ":handler_facade", 124 "//pw_hdlc", 125 "//pw_stream:sys_io_stream", 126 "//pw_tokenizer:base64", 127 ], 128) 129 130pw_cc_test( 131 name = "log_tokenized_test", 132 srcs = [ 133 "log_tokenized_test.cc", 134 "log_tokenized_test_c.c", 135 "pw_log_tokenized_private/test_utils.h", 136 ], 137 deps = [ 138 ":base64", 139 ":headers", 140 "//pw_unit_test", 141 ], 142) 143 144pw_cc_test( 145 name = "metadata_test", 146 srcs = [ 147 "metadata_test.cc", 148 ], 149 deps = [ 150 ":headers", 151 "//pw_unit_test", 152 ], 153) 154