1# Copyright 2024 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 17pw_add_library(pw_multibuf.chunk STATIC 18 HEADERS 19 public/pw_multibuf/chunk.h 20 PUBLIC_INCLUDES 21 public 22 PUBLIC_DEPS 23 pw_assert 24 pw_bytes 25 pw_preprocessor 26 pw_span 27 pw_sync.mutex 28 PRIVATE_DEPS 29 pw_assert.check 30 SOURCES 31 chunk.cc 32) 33 34pw_add_library(pw_multibuf.header_chunk_region_tracker INTERFACE 35 HEADERS 36 public/pw_multibuf/header_chunk_region_tracker.h 37 PUBLIC_INCLUDES 38 public 39 PUBLIC_DEPS 40 pw_allocator.allocator 41 pw_bytes 42 pw_multibuf.chunk 43) 44 45pw_add_library(pw_multibuf.single_chunk_region_tracker INTERFACE 46 HEADERS 47 public/pw_multibuf/single_chunk_region_tracker.h 48 PUBLIC_INCLUDES 49 public 50 PUBLIC_DEPS 51 pw_assert 52 pw_bytes 53 pw_multibuf.chunk 54) 55 56pw_add_test(pw_multibuf.chunk_test 57 SOURCES 58 chunk_test.cc 59 PRIVATE_DEPS 60 pw_allocator.testing 61 pw_multibuf.chunk 62 pw_multibuf.header_chunk_region_tracker 63 GROUPS 64 modules 65 pw_multibuf 66) 67 68pw_add_test(pw_multibuf.header_chunk_region_tracker_test 69 SOURCES 70 header_chunk_region_tracker_test.cc 71 PRIVATE_DEPS 72 pw_allocator.testing 73 pw_multibuf.chunk 74 pw_multibuf.header_chunk_region_tracker 75 pw_status 76 GROUPS 77 modules 78 pw_multibuf 79) 80 81pw_add_test(pw_multibuf.single_chunk_region_tracker_test 82 SOURCES 83 single_chunk_region_tracker_test.cc 84 PRIVATE_DEPS 85 pw_multibuf.chunk 86 pw_multibuf.single_chunk_region_tracker 87 GROUPS 88 modules 89 pw_multibuf 90) 91 92pw_add_library(pw_multibuf STATIC 93 HEADERS 94 public/pw_multibuf/multibuf.h 95 PUBLIC_INCLUDES 96 public 97 PUBLIC_DEPS 98 pw_multibuf.chunk 99 pw_preprocessor 100 SOURCES 101 multibuf.cc 102) 103 104pw_add_test(pw_multibuf.multibuf_test 105 SOURCES 106 multibuf_test.cc 107 PRIVATE_DEPS 108 pw_bytes 109 pw_multibuf 110 pw_multibuf._internal_test_utils 111 GROUPS 112 modules 113 pw_multibuf 114) 115 116pw_add_library(pw_multibuf.allocator STATIC 117 HEADERS 118 public/pw_multibuf/allocator.h 119 PUBLIC_INCLUDES 120 public 121 PUBLIC_DEPS 122 pw_containers.intrusive_forward_list 123 pw_multibuf 124 pw_result 125 pw_sync.interrupt_spin_lock 126 SOURCES 127 allocator.cc 128) 129 130pw_add_library(pw_multibuf.allocator_async STATIC 131 HEADERS 132 public/pw_multibuf/allocator_async.h 133 PUBLIC_INCLUDES 134 public 135 PUBLIC_DEPS 136 pw_async2.dispatcher 137 pw_async2.poll 138 pw_multibuf.allocator 139 SOURCES 140 allocator_async.cc 141) 142 143# TODO: https://pwbug.dev/384583239 - Split async into its own test. 144pw_add_test(pw_multibuf.allocator_test 145 SOURCES 146 allocator_test.cc 147 PRIVATE_DEPS 148 pw_async2.dispatcher 149 pw_async2.poll 150 pw_multibuf.allocator 151 pw_multibuf.allocator_async 152 GROUPS 153 modules 154 pw_multibuf 155) 156 157pw_add_library(pw_multibuf.simple_allocator STATIC 158 HEADERS 159 public/pw_multibuf/simple_allocator.h 160 PUBLIC_INCLUDES 161 public 162 PUBLIC_DEPS 163 pw_allocator.allocator 164 pw_containers.intrusive_list 165 pw_multibuf 166 pw_multibuf.allocator 167 SOURCES 168 simple_allocator.cc 169) 170 171pw_add_test(pw_multibuf.simple_allocator_test 172 SOURCES 173 simple_allocator_test.cc 174 PRIVATE_DEPS 175 pw_multibuf.simple_allocator 176 pw_allocator.testing 177 pw_allocator.null_allocator 178 GROUPS 179 modules 180 pw_multibuf 181) 182 183pw_add_library(pw_multibuf.stream STATIC 184 HEADERS 185 public/pw_multibuf/stream.h 186 PUBLIC_INCLUDES 187 public 188 PUBLIC_DEPS 189 pw_multibuf 190 pw_stream 191 SOURCES 192 stream.cc 193) 194 195pw_add_test(pw_multibuf.stream_test 196 SOURCES 197 stream_test.cc 198 PRIVATE_DEPS 199 pw_allocator.testing 200 pw_bytes 201 pw_multibuf.stream 202 pw_multibuf._internal_test_utils 203 GROUPS 204 modules 205 pw_multibuf 206) 207 208pw_add_library(pw_multibuf.from_span STATIC 209 HEADERS 210 public/pw_multibuf/from_span.h 211 PUBLIC_INCLUDES 212 public 213 PUBLIC_DEPS 214 pw_allocator.allocator 215 pw_multibuf 216 pw_function 217 SOURCES 218 from_span.cc 219) 220 221pw_add_test(pw_multibuf.from_span_test 222 SOURCES 223 from_span_test.cc 224 PRIVATE_DEPS 225 pw_allocator.testing 226 pw_multibuf.from_span 227 SOURCES 228 from_span_test.cc 229 GROUPS 230 modules 231 pw_multibuf 232) 233 234pw_add_library(pw_multibuf.testing INTERFACE 235 HEADERS 236 public/pw_multibuf/simple_allocator_for_test.h 237 PUBLIC_INCLUDES 238 public 239 PUBLIC_DEPS 240 pw_assert 241 pw_allocator.synchronized_allocator 242 pw_allocator.testing 243 pw_multibuf.simple_allocator 244 pw_sync.mutex 245) 246 247pw_add_library(pw_multibuf._internal_test_utils INTERFACE 248 HEADERS 249 pw_multibuf_private/test_utils.h 250 PUBLIC_DEPS 251 pw_assert 252 pw_allocator.testing 253 pw_bytes 254 pw_multibuf.chunk 255 pw_multibuf.header_chunk_region_tracker 256) 257