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_protobuf_compiler/proto.cmake) 17include($ENV{PW_ROOT}/pw_trace_tokenized/backend.cmake) 18 19pw_add_module_config(pw_trace_tokenized_CONFIG) 20 21pw_add_library(pw_trace_tokenized.config INTERFACE 22 HEADERS 23 public/pw_trace_tokenized/config.h 24 PUBLIC_INCLUDES 25 public 26 PUBLIC_DEPS 27 ${pw_trace_CONFIG} 28) 29 30pw_add_library(pw_trace_tokenized.fake_trace_time STATIC 31 PRIVATE_DEPS 32 pw_trace_tokenized.config 33 SOURCES 34 fake_trace_time.cc 35) 36 37pw_add_library(pw_trace_tokenized.host_trace_time STATIC 38 PRIVATE_DEPS 39 pw_trace_tokenized.config 40 SOURCES 41 host_trace_time.cc 42) 43 44pw_add_library(pw_trace_tokenized.core STATIC 45 HEADERS 46 public/pw_trace_tokenized/internal/trace_tokenized_internal.h 47 public/pw_trace_tokenized/trace_callback.h 48 public/pw_trace_tokenized/trace_tokenized.h 49 public_overrides/pw_trace_backend/trace_backend.h 50 PUBLIC_INCLUDES 51 public 52 public_overrides 53 PUBLIC_DEPS 54 pw_log 55 pw_span 56 pw_status 57 pw_tokenizer 58 SOURCES 59 trace.cc 60 PRIVATE_DEPS 61 pw_trace_tokenized.config 62 pw_assert 63 pw_ring_buffer 64 pw_trace.facade 65 pw_varint 66 ${pw_trace_tokenizer_time} 67) 68 69pw_add_library(pw_trace_tokenized INTERFACE 70 PUBLIC_DEPS 71 pw_trace_tokenized.core 72 pw_trace_tokenized.config 73 PUBLIC_INCLUDES 74 public 75 public_overrides 76 PRIVATE_DEPS 77 ${pw_trace_tokenizer_time} 78) 79 80if(("${pw_trace_BACKEND}" STREQUAL "pw_trace_tokenized") AND 81 (NOT "${pw_trace_tokenizer_time}" STREQUAL "")) 82pw_add_test(pw_trace_tokenized.trace_tokenized_test 83 SOURCES 84 trace_test.cc 85 PRIVATE_DEPS 86 pw_trace_tokenized.core 87 pw_trace 88 ${pw_trace_tokenizer_time} 89 GROUPS 90 modules 91 pw_trace_tokenized 92) 93endif() 94 95pw_add_library(pw_trace_tokenized.trace_buffer STATIC 96 HEADERS 97 public/pw_trace_tokenized/trace_buffer.h 98 PUBLIC_INCLUDES 99 public 100 SOURCES 101 trace_buffer.cc 102 PRIVATE_DEPS 103 pw_trace_tokenized.core 104 PUBLIC_DEPS 105 pw_bytes 106 pw_ring_buffer 107 pw_tokenizer 108 pw_trace_tokenized.config 109 pw_varint 110 pw_span 111 PUBLIC_DEFINES 112 PW_TRACE_BUFFER_SIZE_BYTES=${pw_trace_tokenized_BUFFER_SIZE} 113) 114 115pw_proto_library(pw_trace_tokenized.protos 116 SOURCES 117 pw_trace_protos/trace_rpc.proto 118 pw_trace_protos/trace_service.proto 119 INPUTS 120 pw_trace_protos/trace_rpc.options 121 pw_trace_protos/trace_service.options 122 DEPS 123 pw_chrono.protos 124) 125 126pw_add_library(pw_trace_tokenized.rpc_service STATIC 127 SOURCES 128 trace_rpc_service_nanopb.cc 129 PRIVATE_DEPS 130 pw_assert 131 pw_log 132 pw_ring_buffer 133 pw_trace_tokenized.trace_buffer 134 pw_trace_tokenized.protos.nanopb_rpc 135 pw_varint 136 PUBLIC_DEPS 137 pw_tokenizer 138 pw_status 139) 140 141pw_add_library(pw_trace_tokenized.base_trace_service STATIC 142 SOURCES 143 base_trace_service.cc 144 PRIVATE_DEPS 145 pw_log 146 pw_stream 147 pw_ring_buffer 148 PUBLIC_DEPS 149 pw_trace_tokenized 150 pw_trace_tokenized.trace_buffer 151) 152 153pw_add_library(pw_trace_tokenized.trace_service_pwpb STATIC 154 SOURCES 155 trace_service_pwpb.cc 156 PRIVATE_DEPS 157 pw_chrono.system_clock 158 PUBLIC_DEPS 159 pw_trace_tokenized.base_trace_service 160 pw_trace_tokenized.protos.pwpb_rpc 161) 162