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) 16 17add_subdirectory(rpc_example) 18 19pw_add_library(pw_hdlc INTERFACE 20 PUBLIC_DEPS 21 pw_hdlc.decoder 22 pw_hdlc.encoded_size 23 pw_hdlc.encoder 24) 25 26pw_add_library(pw_hdlc.common INTERFACE 27 HEADERS 28 public/pw_hdlc/internal/protocol.h 29 PUBLIC_INCLUDES 30 public 31 PUBLIC_DEPS 32 pw_varint 33) 34 35pw_add_library(pw_hdlc.encoded_size INTERFACE 36 HEADERS 37 public/pw_hdlc/encoded_size.h 38 PUBLIC_INCLUDES 39 public 40 PUBLIC_DEPS 41 pw_hdlc.common 42 pw_bytes 43 pw_span 44 pw_varint 45) 46 47pw_add_library(pw_hdlc.decoder STATIC 48 HEADERS 49 public/pw_hdlc/decoder.h 50 PUBLIC_INCLUDES 51 public 52 PUBLIC_DEPS 53 pw_hdlc.common 54 pw_bytes 55 pw_checksum 56 pw_checksum.crc32 57 pw_result 58 pw_span 59 pw_status 60 PRIVATE_DEPS 61 pw_log 62 SOURCES 63 decoder.cc 64) 65 66pw_add_library(pw_hdlc.encoder STATIC 67 HEADERS 68 public/pw_hdlc/encoder.h 69 PUBLIC_INCLUDES 70 public 71 PUBLIC_DEPS 72 pw_hdlc.common 73 pw_bytes 74 pw_checksum 75 pw_checksum.crc32 76 pw_span 77 pw_status 78 pw_stream 79 PRIVATE_DEPS 80 pw_hdlc.encoded_size 81 SOURCES 82 encoder.cc 83) 84 85pw_add_library(pw_hdlc.rpc_channel_output INTERFACE 86 HEADERS 87 public/pw_hdlc/rpc_channel.h 88 PUBLIC_INCLUDES 89 public 90 PUBLIC_DEPS 91 pw_hdlc 92 pw_rpc.server 93 pw_span 94) 95 96pw_add_library(pw_hdlc.default_addresses INTERFACE 97 HEADERS 98 public/pw_hdlc/default_addresses.h 99 PUBLIC_INCLUDES 100 public 101) 102 103pw_add_library(pw_hdlc.packet_parser STATIC 104 HEADERS 105 public/pw_hdlc/wire_packet_parser.h 106 PUBLIC_INCLUDES 107 public 108 PUBLIC_DEPS 109 pw_hdlc 110 pw_router.packet_parser 111 PRIVATE_DEPS 112 pw_bytes 113 pw_checksum 114 SOURCES 115 wire_packet_parser.cc 116) 117 118pw_add_library(pw_hdlc.hdlc_sys_io_system_server STATIC 119 PRIVATE_DEPS 120 pw_hdlc.default_addresses 121 pw_hdlc.rpc_channel_output 122 pw_rpc.system_server.facade 123 pw_stream.sys_io_stream 124 pw_log 125 SOURCES 126 hdlc_sys_io_system_server.cc 127) 128 129pw_add_library(pw_hdlc.router STATIC 130 HEADERS 131 public/pw_hdlc/router.h 132 PUBLIC_INCLUDES 133 public 134 PUBLIC_DEPS 135 pw_hdlc.decoder 136 pw_async2.dispatcher 137 pw_async2.poll 138 pw_containers.vector 139 pw_multibuf.allocator 140 pw_channel 141 pw_multibuf 142 pw_status 143 PRIVATE_DEPS 144 pw_hdlc.encoder 145 pw_multibuf.stream 146 pw_log 147 pw_result 148 pw_stream 149 SOURCES 150 router.cc 151) 152 153pw_add_test(pw_hdlc.decoder_test 154 SOURCES 155 decoder_test.cc 156 PRIVATE_DEPS 157 pw_bytes 158 pw_fuzzer.fuzztest 159 pw_hdlc 160 GROUPS 161 modules 162 pw_hdlc 163) 164 165pw_add_test(pw_hdlc.rpc_channel_test 166 SOURCES 167 rpc_channel_test.cc 168 PRIVATE_DEPS 169 pw_hdlc 170 pw_hdlc.rpc_channel_output 171 GROUPS 172 modules 173 pw_hdlc 174) 175 176pw_add_test(pw_hdlc.wire_packet_parser_test 177 SOURCES 178 wire_packet_parser_test.cc 179 PRIVATE_DEPS 180 pw_bytes 181 pw_hdlc.packet_parser 182 GROUPS 183 modules 184 pw_hdlc 185) 186 187pw_add_test(pw_hdlc.router_test 188 SOURCES 189 router_test.cc 190 PRIVATE_DEPS 191 pw_hdlc.router 192 pw_allocator.testing 193 pw_async2.pend_func_task 194 pw_channel.forwarding_channel 195 pw_channel.loopback_channel 196 pw_multibuf.simple_allocator 197 GROUPS 198 modules 199 pw_hdlc 200) 201