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 15include($ENV{PW_ROOT}/pw_build/pigweed.cmake) 16include($ENV{PW_ROOT}/pw_log_tokenized/backend.cmake) 17 18pw_add_module_config(pw_log_tokenized_CONFIG) 19 20pw_add_library(pw_log_tokenized.config INTERFACE 21 HEADERS 22 public/pw_log_tokenized/config.h 23 PUBLIC_INCLUDES 24 public 25 PUBLIC_DEPS 26 pw_log.facade 27 pw_polyfill 28 pw_tokenizer.config 29 ${pw_log_tokenized_CONFIG} 30) 31 32pw_add_library(pw_log_tokenized STATIC 33 HEADERS 34 public_overrides/pw_log_backend/log_backend.h 35 public_overrides/pw_log_backend/log_backend_uses_pw_tokenizer.h 36 PUBLIC_INCLUDES 37 public_overrides 38 PUBLIC_DEPS 39 pw_log_tokenized.handler 40 pw_log_tokenized._headers 41 SOURCES 42 log_tokenized.cc 43) 44 45pw_add_library(pw_log_tokenized._headers INTERFACE 46 HEADERS 47 public/pw_log_tokenized/log_tokenized.h 48 PUBLIC_INCLUDES 49 public 50 PUBLIC_DEPS 51 pw_log_tokenized.config 52 pw_log_tokenized.metadata 53 pw_preprocessor 54 pw_tokenizer 55) 56 57pw_add_library(pw_log_tokenized.gcc_partially_tokenized STATIC 58 HEADERS 59 public/pw_log_tokenized/gcc_partially_tokenized.h 60 gcc_partially_tokenized_public_overrides/pw_log_backend/log_backend.h 61 PUBLIC_INCLUDES 62 public 63 gcc_partially_tokenized_public_overrides 64 PUBLIC_DEPS 65 pw_log_string.handler 66 pw_log_tokenized.handler 67 pw_log_tokenized._headers 68 SOURCES 69 log_tokenized.cc 70) 71 72pw_add_library(pw_log_tokenized.metadata INTERFACE 73 HEADERS 74 public/pw_log_tokenized/metadata.h 75 PUBLIC_INCLUDES 76 public 77 PUBLIC_DEPS 78 pw_log_tokenized.config 79) 80 81pw_add_facade(pw_log_tokenized.handler INTERFACE 82 BACKEND 83 pw_log_tokenized.handler_BACKEND 84 HEADERS 85 public/pw_log_tokenized/handler.h 86 PUBLIC_INCLUDES 87 public 88 PUBLIC_DEPS 89 pw_preprocessor 90) 91 92pw_add_library(pw_log_tokenized.base64 INTERFACE 93 HEADERS 94 public/pw_log_tokenized/base64.h 95 PUBLIC_INCLUDES 96 public 97 PUBLIC_DEPS 98 pw_log_tokenized.config 99 pw_tokenizer.base64 100) 101 102# This target provides a backend for pw_tokenizer that encodes tokenized logs as 103# Base64, encodes them into HDLC frames, and writes them over sys_io. 104pw_add_library(pw_log_tokenized.base64_over_hdlc STATIC 105 SOURCES 106 base64_over_hdlc.cc 107 PRIVATE_DEPS 108 pw_hdlc.encoder 109 pw_log_tokenized.base64 110 pw_log_tokenized.handler 111 pw_span 112 pw_stream.sys_io_stream 113) 114 115pw_add_test(pw_log_tokenized.log_tokenized_test 116 SOURCES 117 log_tokenized_test.cc 118 log_tokenized_test_c.c 119 pw_log_tokenized_private/test_utils.h 120 PRIVATE_DEPS 121 pw_log_tokenized.base64 122 pw_log_tokenized._headers 123 pw_preprocessor 124 GROUPS 125 modules 126 pw_log_tokenized 127) 128 129pw_add_test(pw_log_tokenized.metadata_test 130 SOURCES 131 metadata_test.cc 132 PRIVATE_DEPS 133 pw_log_tokenized.metadata 134 GROUPS 135 modules 136 pw_log_tokenized 137) 138