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.interrupt_spin_lock 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_async2.dispatcher 123 pw_async2.poll 124 pw_containers.intrusive_forward_list 125 pw_multibuf 126 pw_result 127 SOURCES 128 allocator.cc 129) 130 131pw_add_test(pw_multibuf.allocator_test 132 SOURCES 133 allocator_test.cc 134 PRIVATE_DEPS 135 pw_async2.dispatcher 136 pw_async2.poll 137 pw_multibuf.allocator 138 GROUPS 139 modules 140 pw_multibuf 141) 142 143pw_add_library(pw_multibuf.simple_allocator STATIC 144 HEADERS 145 public/pw_multibuf/simple_allocator.h 146 PUBLIC_INCLUDES 147 public 148 PUBLIC_DEPS 149 pw_allocator.allocator 150 pw_containers.intrusive_list 151 pw_multibuf 152 pw_multibuf.allocator 153 SOURCES 154 simple_allocator.cc 155) 156 157pw_add_test(pw_multibuf.simple_allocator_test 158 SOURCES 159 simple_allocator_test.cc 160 PRIVATE_DEPS 161 pw_multibuf.simple_allocator 162 pw_allocator.testing 163 pw_allocator.null_allocator 164 GROUPS 165 modules 166 pw_multibuf 167) 168 169pw_add_library(pw_multibuf.stream STATIC 170 HEADERS 171 public/pw_multibuf/stream.h 172 PUBLIC_INCLUDES 173 public 174 PUBLIC_DEPS 175 pw_multibuf 176 pw_stream 177 SOURCES 178 stream.cc 179) 180 181pw_add_test(pw_multibuf.stream_test 182 SOURCES 183 stream_test.cc 184 PRIVATE_DEPS 185 pw_allocator.testing 186 pw_bytes 187 pw_multibuf.stream 188 pw_multibuf._internal_test_utils 189 GROUPS 190 modules 191 pw_multibuf 192) 193 194pw_add_library(pw_multibuf.from_span STATIC 195 HEADERS 196 public/pw_multibuf/from_span.h 197 PUBLIC_INCLUDES 198 public 199 PUBLIC_DEPS 200 pw_allocator.allocator 201 pw_multibuf 202 pw_function 203 SOURCES 204 from_span.cc 205) 206 207pw_add_test(pw_multibuf.from_span_test 208 SOURCES 209 from_span_test.cc 210 PRIVATE_DEPS 211 pw_allocator.testing 212 pw_multibuf.from_span 213 SOURCES 214 from_span_test.cc 215 GROUPS 216 modules 217 pw_multibuf 218) 219 220pw_add_library(pw_multibuf.testing INTERFACE 221 HEADERS 222 public/pw_multibuf/simple_allocator_for_test.h 223 PUBLIC_INCLUDES 224 public 225 PUBLIC_DEPS 226 pw_assert 227 pw_allocator.testing 228 pw_multibuf.simple_allocator 229) 230 231pw_add_library(pw_multibuf._internal_test_utils INTERFACE 232 HEADERS 233 pw_multibuf_private/test_utils.h 234 PUBLIC_DEPS 235 pw_assert 236 pw_allocator.testing 237 pw_bytes 238 pw_multibuf.chunk 239 pw_multibuf.header_chunk_region_tracker 240) 241