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/backend.cmake) 17include($ENV{PW_ROOT}/pw_protobuf_compiler/proto.cmake) 18 19pw_add_module_config(pw_log_CONFIG) 20 21pw_add_module_config(pw_log_GLOG_ADAPTER_CONFIG) 22 23pw_add_library(pw_log.config INTERFACE 24 HEADERS 25 public/pw_log/config.h 26 PUBLIC_INCLUDES 27 public 28 PUBLIC_DEPS 29 ${pw_log_CONFIG} 30) 31 32pw_add_facade(pw_log INTERFACE 33 BACKEND 34 pw_log_BACKEND 35 HEADERS 36 public/pw_log/levels.h 37 public/pw_log/log.h 38 public/pw_log/options.h 39 public/pw_log/short.h 40 public/pw_log/shorter.h 41 public/pw_log/tokenized_args.h 42 PUBLIC_INCLUDES 43 public 44 PUBLIC_DEPS 45 pw_log.config 46) 47 48pw_add_library(pw_log.rate_limited STATIC 49 HEADERS 50 public/pw_log/rate_limited.h 51 PUBLIC_INCLUDES 52 public 53 PUBLIC_DEPS 54 pw_log 55 pw_chrono.system_clock 56 SOURCES 57 rate_limited.cc 58) 59 60pw_add_library(pw_log.glog_adapter INTERFACE 61 HEADERS 62 public/pw_log/glog_adapter.h 63 public/pw_log/glog_adapter_config.h 64 public/pw_log/internal/glog_adapter.h 65 PUBLIC_INCLUDES 66 public 67 PUBLIC_DEPS 68 pw_assert 69 pw_log 70 pw_log.config 71 pw_preprocessor 72 pw_string 73 ${pw_log_GLOG_ADAPTER_CONFIG} 74) 75 76pw_add_library(pw_log.proto_utils STATIC 77 HEADERS 78 public/pw_log/proto_utils.h 79 PUBLIC_INCLUDES 80 public 81 PUBLIC_DEPS 82 pw_log.facade 83 pw_bytes 84 pw_log.protos.pwpb 85 pw_log_tokenized.metadata 86 pw_result 87 PRIVATE_DEPS 88 pw_protobuf 89 SOURCES 90 proto_utils.cc 91) 92 93pw_proto_library(pw_log.protos 94 SOURCES 95 log.proto 96 PREFIX 97 pw_log/proto 98 DEPS 99 pw_protobuf.common_proto 100 pw_tokenizer.proto 101) 102 103if(NOT "${pw_log_BACKEND}" STREQUAL "") 104 pw_add_test(pw_log.basic_log_test 105 SOURCES 106 basic_log_test.cc 107 basic_log_test_plain_c.c 108 PRIVATE_DEPS 109 pw_log 110 pw_preprocessor 111 GROUPS 112 modules 113 pw_log 114 ) 115 116 pw_add_test(pw_log.glog_adapter_test 117 SOURCES 118 glog_adapter_test.cc 119 PRIVATE_DEPS 120 pw_log.glog_adapter 121 GROUPS 122 modules 123 pw_log 124 ) 125 126 pw_add_test(pw_log.proto_utils_test 127 SOURCES 128 proto_utils_test.cc 129 PRIVATE_DEPS 130 pw_log 131 pw_log.proto_utils 132 pw_log.protos.pwpb 133 pw_preprocessor 134 pw_protobuf 135 pw_protobuf.bytes_utils 136 pw_containers 137 GROUPS 138 modules 139 pw_log 140 ) 141endif() 142