• 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.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