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