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_multibuf 109 pw_multibuf._internal_test_utils 110 GROUPS 111 modules 112 pw_multibuf 113) 114 115pw_add_library(pw_multibuf.allocator STATIC 116 HEADERS 117 public/pw_multibuf/allocator.h 118 PUBLIC_INCLUDES 119 public 120 PUBLIC_DEPS 121 pw_async2.dispatcher 122 pw_async2.poll 123 pw_multibuf 124 pw_result 125 SOURCES 126 allocator.cc 127) 128 129pw_add_test(pw_multibuf.allocator_test 130 SOURCES 131 allocator_test.cc 132 PRIVATE_DEPS 133 pw_async2.dispatcher 134 pw_async2.poll 135 pw_multibuf.allocator 136 GROUPS 137 modules 138 pw_multibuf 139) 140 141pw_add_library(pw_multibuf.simple_allocator STATIC 142 HEADERS 143 public/pw_multibuf/simple_allocator.h 144 PUBLIC_INCLUDES 145 public 146 PUBLIC_DEPS 147 pw_allocator.allocator 148 pw_containers.intrusive_list 149 pw_multibuf 150 pw_multibuf.allocator 151 SOURCES 152 simple_allocator.cc 153) 154 155pw_add_test(pw_multibuf.simple_allocator_test 156 SOURCES 157 simple_allocator_test.cc 158 PRIVATE_DEPS 159 pw_multibuf.simple_allocator 160 pw_allocator.testing 161 pw_allocator.null_allocator 162 GROUPS 163 modules 164 pw_multibuf 165) 166 167pw_add_library(pw_multibuf.stream STATIC 168 HEADERS 169 public/pw_multibuf/stream.h 170 PUBLIC_INCLUDES 171 public 172 PUBLIC_DEPS 173 pw_multibuf 174 pw_stream 175 SOURCES 176 stream.cc 177) 178 179pw_add_test(pw_multibuf.stream_test 180 SOURCES 181 stream_test.cc 182 PRIVATE_DEPS 183 pw_allocator.testing 184 pw_bytes 185 pw_multibuf.stream 186 pw_multibuf._internal_test_utils 187 GROUPS 188 modules 189 pw_multibuf 190) 191 192pw_add_library(pw_multibuf.testing INTERFACE 193 HEADERS 194 public/pw_multibuf/simple_allocator_for_test.h 195 PUBLIC_INCLUDES 196 public 197 PUBLIC_DEPS 198 pw_assert 199 pw_allocator.testing 200 pw_multibuf.simple_allocator 201) 202 203pw_add_library(pw_multibuf._internal_test_utils INTERFACE 204 HEADERS 205 pw_multibuf_private/test_utils.h 206 PUBLIC_DEPS 207 pw_assert 208 pw_allocator.testing 209 pw_bytes 210 pw_multibuf.chunk 211 pw_multibuf.header_chunk_region_tracker 212) 213