xref: /aosp_15_r20/external/pigweed/pw_multibuf/CMakeLists.txt (revision 61c4878ac05f98d0ceed94b57d316916de578985)
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