• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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