xref: /aosp_15_r20/external/pigweed/pw_containers/BUILD.gn (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker# Copyright 2019 The Pigweed Authors
2*61c4878aSAndroid Build Coastguard Worker#
3*61c4878aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4*61c4878aSAndroid Build Coastguard Worker# use this file except in compliance with the License. You may obtain a copy of
5*61c4878aSAndroid Build Coastguard Worker# the License at
6*61c4878aSAndroid Build Coastguard Worker#
7*61c4878aSAndroid Build Coastguard Worker#     https://www.apache.org/licenses/LICENSE-2.0
8*61c4878aSAndroid Build Coastguard Worker#
9*61c4878aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*61c4878aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11*61c4878aSAndroid Build Coastguard Worker# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12*61c4878aSAndroid Build Coastguard Worker# License for the specific language governing permissions and limitations under
13*61c4878aSAndroid Build Coastguard Worker# the License.
14*61c4878aSAndroid Build Coastguard Worker
15*61c4878aSAndroid Build Coastguard Workerimport("//build_overrides/pigweed.gni")
16*61c4878aSAndroid Build Coastguard Worker
17*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_bloat/bloat.gni")
18*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/module_config.gni")
19*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/target_types.gni")
20*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_docgen/docs.gni")
21*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_toolchain/traits.gni")
22*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_unit_test/test.gni")
23*61c4878aSAndroid Build Coastguard Worker
24*61c4878aSAndroid Build Coastguard Worker# Module configuration
25*61c4878aSAndroid Build Coastguard Worker
26*61c4878aSAndroid Build Coastguard Workerdeclare_args() {
27*61c4878aSAndroid Build Coastguard Worker  # The build target that overrides the default configuration options for this
28*61c4878aSAndroid Build Coastguard Worker  # module. This should point to a source set that provides defines through a
29*61c4878aSAndroid Build Coastguard Worker  # public config (which may -include a file or add defines directly).
30*61c4878aSAndroid Build Coastguard Worker  pw_containers_CONFIG = pw_build_DEFAULT_MODULE_CONFIG
31*61c4878aSAndroid Build Coastguard Worker}
32*61c4878aSAndroid Build Coastguard Worker
33*61c4878aSAndroid Build Coastguard Workerconfig("public_include_path") {
34*61c4878aSAndroid Build Coastguard Worker  include_dirs = [ "public" ]
35*61c4878aSAndroid Build Coastguard Worker  visibility = [ ":*" ]
36*61c4878aSAndroid Build Coastguard Worker}
37*61c4878aSAndroid Build Coastguard Worker
38*61c4878aSAndroid Build Coastguard Workerpw_source_set("config") {
39*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/config.h" ]
40*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
41*61c4878aSAndroid Build Coastguard Worker  public_deps = [ pw_containers_CONFIG ]
42*61c4878aSAndroid Build Coastguard Worker}
43*61c4878aSAndroid Build Coastguard Worker
44*61c4878aSAndroid Build Coastguard Worker# Libraries
45*61c4878aSAndroid Build Coastguard Worker
46*61c4878aSAndroid Build Coastguard Workergroup("pw_containers") {
47*61c4878aSAndroid Build Coastguard Worker  public_deps = [
48*61c4878aSAndroid Build Coastguard Worker    ":algorithm",
49*61c4878aSAndroid Build Coastguard Worker    ":flat_map",
50*61c4878aSAndroid Build Coastguard Worker    ":inline_deque",
51*61c4878aSAndroid Build Coastguard Worker    ":inline_queue",
52*61c4878aSAndroid Build Coastguard Worker    ":intrusive_list",
53*61c4878aSAndroid Build Coastguard Worker    ":vector",
54*61c4878aSAndroid Build Coastguard Worker  ]
55*61c4878aSAndroid Build Coastguard Worker}
56*61c4878aSAndroid Build Coastguard Worker
57*61c4878aSAndroid Build Coastguard Workerpw_source_set("algorithm") {
58*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
59*61c4878aSAndroid Build Coastguard Worker  public = [
60*61c4878aSAndroid Build Coastguard Worker    "public/pw_containers/algorithm.h",
61*61c4878aSAndroid Build Coastguard Worker    "public/pw_containers/internal/algorithm_internal.h",
62*61c4878aSAndroid Build Coastguard Worker  ]
63*61c4878aSAndroid Build Coastguard Worker}
64*61c4878aSAndroid Build Coastguard Worker
65*61c4878aSAndroid Build Coastguard Workerpw_source_set("filtered_view") {
66*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
67*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/filtered_view.h" ]
68*61c4878aSAndroid Build Coastguard Worker  public_deps = [
69*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
70*61c4878aSAndroid Build Coastguard Worker    dir_pw_preprocessor,
71*61c4878aSAndroid Build Coastguard Worker  ]
72*61c4878aSAndroid Build Coastguard Worker}
73*61c4878aSAndroid Build Coastguard Worker
74*61c4878aSAndroid Build Coastguard Workerpw_source_set("flat_map") {
75*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
76*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/flat_map.h" ]
77*61c4878aSAndroid Build Coastguard Worker  public_deps = [ "$dir_pw_assert:assert" ]
78*61c4878aSAndroid Build Coastguard Worker}
79*61c4878aSAndroid Build Coastguard Worker
80*61c4878aSAndroid Build Coastguard Workerpw_source_set("inline_deque") {
81*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
82*61c4878aSAndroid Build Coastguard Worker  public_deps = [
83*61c4878aSAndroid Build Coastguard Worker    ":raw_storage",
84*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
85*61c4878aSAndroid Build Coastguard Worker    dir_pw_preprocessor,
86*61c4878aSAndroid Build Coastguard Worker    dir_pw_span,
87*61c4878aSAndroid Build Coastguard Worker  ]
88*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/inline_deque.h" ]
89*61c4878aSAndroid Build Coastguard Worker}
90*61c4878aSAndroid Build Coastguard Worker
91*61c4878aSAndroid Build Coastguard Workerpw_source_set("inline_queue") {
92*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
93*61c4878aSAndroid Build Coastguard Worker  public_deps = [ ":inline_deque" ]
94*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/inline_queue.h" ]
95*61c4878aSAndroid Build Coastguard Worker}
96*61c4878aSAndroid Build Coastguard Worker
97*61c4878aSAndroid Build Coastguard Workerpw_source_set("iterator") {
98*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
99*61c4878aSAndroid Build Coastguard Worker  public_deps = [ dir_pw_polyfill ]
100*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/iterator.h" ]
101*61c4878aSAndroid Build Coastguard Worker}
102*61c4878aSAndroid Build Coastguard Worker
103*61c4878aSAndroid Build Coastguard Workerpw_source_set("raw_storage") {
104*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
105*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/internal/raw_storage.h" ]
106*61c4878aSAndroid Build Coastguard Worker  visibility = [ ":*" ]
107*61c4878aSAndroid Build Coastguard Worker}
108*61c4878aSAndroid Build Coastguard Worker
109*61c4878aSAndroid Build Coastguard Workerpw_source_set("test_helpers") {
110*61c4878aSAndroid Build Coastguard Worker  public = [ "pw_containers_private/test_helpers.h" ]
111*61c4878aSAndroid Build Coastguard Worker  sources = [ "test_helpers.cc" ]
112*61c4878aSAndroid Build Coastguard Worker  visibility = [ ":*" ]
113*61c4878aSAndroid Build Coastguard Worker}
114*61c4878aSAndroid Build Coastguard Worker
115*61c4878aSAndroid Build Coastguard Workerpw_source_set("to_array") {
116*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
117*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/to_array.h" ]
118*61c4878aSAndroid Build Coastguard Worker}
119*61c4878aSAndroid Build Coastguard Worker
120*61c4878aSAndroid Build Coastguard Workerpw_source_set("inline_var_len_entry_queue") {
121*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
122*61c4878aSAndroid Build Coastguard Worker  public_deps = [ dir_pw_varint ]
123*61c4878aSAndroid Build Coastguard Worker  deps = [ dir_pw_assert ]
124*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/inline_var_len_entry_queue.h" ]
125*61c4878aSAndroid Build Coastguard Worker  sources = [ "inline_var_len_entry_queue.c" ]
126*61c4878aSAndroid Build Coastguard Worker
127*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
128*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
129*61c4878aSAndroid Build Coastguard Worker}
130*61c4878aSAndroid Build Coastguard Worker
131*61c4878aSAndroid Build Coastguard Workerpw_source_set("vector") {
132*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
133*61c4878aSAndroid Build Coastguard Worker  public_deps = [
134*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
135*61c4878aSAndroid Build Coastguard Worker    dir_pw_preprocessor,
136*61c4878aSAndroid Build Coastguard Worker  ]
137*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/vector.h" ]
138*61c4878aSAndroid Build Coastguard Worker}
139*61c4878aSAndroid Build Coastguard Worker
140*61c4878aSAndroid Build Coastguard Workerpw_source_set("wrapped_iterator") {
141*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
142*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/wrapped_iterator.h" ]
143*61c4878aSAndroid Build Coastguard Worker}
144*61c4878aSAndroid Build Coastguard Worker
145*61c4878aSAndroid Build Coastguard Workerpw_source_set("intrusive_item") {
146*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
147*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/internal/intrusive_item.h" ]
148*61c4878aSAndroid Build Coastguard Worker  sources = [ "intrusive_item.cc" ]
149*61c4878aSAndroid Build Coastguard Worker  deps = [ dir_pw_assert ]
150*61c4878aSAndroid Build Coastguard Worker}
151*61c4878aSAndroid Build Coastguard Worker
152*61c4878aSAndroid Build Coastguard Workerpw_source_set("intrusive_list_common") {
153*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
154*61c4878aSAndroid Build Coastguard Worker  public = [
155*61c4878aSAndroid Build Coastguard Worker    "public/pw_containers/internal/intrusive_list.h",
156*61c4878aSAndroid Build Coastguard Worker    "public/pw_containers/internal/intrusive_list_item.h",
157*61c4878aSAndroid Build Coastguard Worker    "public/pw_containers/internal/intrusive_list_iterator.h",
158*61c4878aSAndroid Build Coastguard Worker  ]
159*61c4878aSAndroid Build Coastguard Worker  public_deps = [ ":intrusive_item" ]
160*61c4878aSAndroid Build Coastguard Worker}
161*61c4878aSAndroid Build Coastguard Worker
162*61c4878aSAndroid Build Coastguard Workerpw_source_set("intrusive_forward_list") {
163*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
164*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/intrusive_forward_list.h" ]
165*61c4878aSAndroid Build Coastguard Worker  public_deps = [
166*61c4878aSAndroid Build Coastguard Worker    ":config",
167*61c4878aSAndroid Build Coastguard Worker    ":intrusive_list_common",
168*61c4878aSAndroid Build Coastguard Worker  ]
169*61c4878aSAndroid Build Coastguard Worker}
170*61c4878aSAndroid Build Coastguard Worker
171*61c4878aSAndroid Build Coastguard Workerpw_source_set("intrusive_list") {
172*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
173*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/intrusive_list.h" ]
174*61c4878aSAndroid Build Coastguard Worker  public_deps = [
175*61c4878aSAndroid Build Coastguard Worker    ":config",
176*61c4878aSAndroid Build Coastguard Worker    ":intrusive_list_common",
177*61c4878aSAndroid Build Coastguard Worker    ":legacy_intrusive_list",
178*61c4878aSAndroid Build Coastguard Worker  ]
179*61c4878aSAndroid Build Coastguard Worker}
180*61c4878aSAndroid Build Coastguard Worker
181*61c4878aSAndroid Build Coastguard Workerpw_source_set("legacy_intrusive_list") {
182*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
183*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/internal/legacy_intrusive_list.h" ]
184*61c4878aSAndroid Build Coastguard Worker  public_deps = [ ":intrusive_forward_list" ]
185*61c4878aSAndroid Build Coastguard Worker  visibility = [ "./*" ]
186*61c4878aSAndroid Build Coastguard Worker}
187*61c4878aSAndroid Build Coastguard Worker
188*61c4878aSAndroid Build Coastguard Workerpw_source_set("aa_tree") {
189*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
190*61c4878aSAndroid Build Coastguard Worker  public = [
191*61c4878aSAndroid Build Coastguard Worker    "public/pw_containers/internal/aa_tree.h",
192*61c4878aSAndroid Build Coastguard Worker    "public/pw_containers/internal/aa_tree_item.h",
193*61c4878aSAndroid Build Coastguard Worker    "public/pw_containers/internal/aa_tree_iterator.h",
194*61c4878aSAndroid Build Coastguard Worker  ]
195*61c4878aSAndroid Build Coastguard Worker  public_deps = [
196*61c4878aSAndroid Build Coastguard Worker    ":intrusive_item",
197*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_bytes:packed_ptr",
198*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
199*61c4878aSAndroid Build Coastguard Worker    dir_pw_function,
200*61c4878aSAndroid Build Coastguard Worker  ]
201*61c4878aSAndroid Build Coastguard Worker  sources = [
202*61c4878aSAndroid Build Coastguard Worker    "aa_tree.cc",
203*61c4878aSAndroid Build Coastguard Worker    "aa_tree_item.cc",
204*61c4878aSAndroid Build Coastguard Worker  ]
205*61c4878aSAndroid Build Coastguard Worker  visibility = [ "./*" ]
206*61c4878aSAndroid Build Coastguard Worker}
207*61c4878aSAndroid Build Coastguard Worker
208*61c4878aSAndroid Build Coastguard Workerpw_source_set("intrusive_map") {
209*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
210*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/intrusive_map.h" ]
211*61c4878aSAndroid Build Coastguard Worker  public_deps = [ ":aa_tree" ]
212*61c4878aSAndroid Build Coastguard Worker}
213*61c4878aSAndroid Build Coastguard Worker
214*61c4878aSAndroid Build Coastguard Workerpw_source_set("intrusive_multimap") {
215*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
216*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/intrusive_multimap.h" ]
217*61c4878aSAndroid Build Coastguard Worker  public_deps = [ ":aa_tree" ]
218*61c4878aSAndroid Build Coastguard Worker}
219*61c4878aSAndroid Build Coastguard Worker
220*61c4878aSAndroid Build Coastguard Workerpw_source_set("intrusive_set") {
221*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
222*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/intrusive_set.h" ]
223*61c4878aSAndroid Build Coastguard Worker  public_deps = [ ":aa_tree" ]
224*61c4878aSAndroid Build Coastguard Worker}
225*61c4878aSAndroid Build Coastguard Worker
226*61c4878aSAndroid Build Coastguard Workerpw_source_set("intrusive_multiset") {
227*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
228*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_containers/intrusive_multiset.h" ]
229*61c4878aSAndroid Build Coastguard Worker  public_deps = [ ":aa_tree" ]
230*61c4878aSAndroid Build Coastguard Worker}
231*61c4878aSAndroid Build Coastguard Worker
232*61c4878aSAndroid Build Coastguard Workerpw_test_group("tests") {
233*61c4878aSAndroid Build Coastguard Worker  tests = [
234*61c4878aSAndroid Build Coastguard Worker    ":algorithm_test",
235*61c4878aSAndroid Build Coastguard Worker    ":filtered_view_test",
236*61c4878aSAndroid Build Coastguard Worker    ":flat_map_test",
237*61c4878aSAndroid Build Coastguard Worker    ":inline_deque_test",
238*61c4878aSAndroid Build Coastguard Worker    ":inline_queue_test",
239*61c4878aSAndroid Build Coastguard Worker    ":intrusive_forward_list_test",
240*61c4878aSAndroid Build Coastguard Worker    ":intrusive_item_test",
241*61c4878aSAndroid Build Coastguard Worker    ":intrusive_list_test",
242*61c4878aSAndroid Build Coastguard Worker    ":intrusive_map_test",
243*61c4878aSAndroid Build Coastguard Worker    ":intrusive_multimap_test",
244*61c4878aSAndroid Build Coastguard Worker    ":intrusive_set_test",
245*61c4878aSAndroid Build Coastguard Worker    ":intrusive_multiset_test",
246*61c4878aSAndroid Build Coastguard Worker    ":raw_storage_test",
247*61c4878aSAndroid Build Coastguard Worker    ":to_array_test",
248*61c4878aSAndroid Build Coastguard Worker    ":inline_var_len_entry_queue_test",
249*61c4878aSAndroid Build Coastguard Worker    ":vector_test",
250*61c4878aSAndroid Build Coastguard Worker    ":wrapped_iterator_test",
251*61c4878aSAndroid Build Coastguard Worker  ]
252*61c4878aSAndroid Build Coastguard Worker  group_deps = [ "examples" ]
253*61c4878aSAndroid Build Coastguard Worker}
254*61c4878aSAndroid Build Coastguard Worker
255*61c4878aSAndroid Build Coastguard Workerpw_test("algorithm_test") {
256*61c4878aSAndroid Build Coastguard Worker  sources = [ "algorithm_test.cc" ]
257*61c4878aSAndroid Build Coastguard Worker  deps = [
258*61c4878aSAndroid Build Coastguard Worker    ":algorithm",
259*61c4878aSAndroid Build Coastguard Worker    ":flat_map",
260*61c4878aSAndroid Build Coastguard Worker    ":intrusive_list",
261*61c4878aSAndroid Build Coastguard Worker    ":vector",
262*61c4878aSAndroid Build Coastguard Worker    dir_pw_span,
263*61c4878aSAndroid Build Coastguard Worker  ]
264*61c4878aSAndroid Build Coastguard Worker
265*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
266*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
267*61c4878aSAndroid Build Coastguard Worker}
268*61c4878aSAndroid Build Coastguard Worker
269*61c4878aSAndroid Build Coastguard Workerpw_test("filtered_view_test") {
270*61c4878aSAndroid Build Coastguard Worker  sources = [ "filtered_view_test.cc" ]
271*61c4878aSAndroid Build Coastguard Worker  deps = [
272*61c4878aSAndroid Build Coastguard Worker    ":algorithm",
273*61c4878aSAndroid Build Coastguard Worker    ":filtered_view",
274*61c4878aSAndroid Build Coastguard Worker    ":flat_map",
275*61c4878aSAndroid Build Coastguard Worker    ":intrusive_list",
276*61c4878aSAndroid Build Coastguard Worker    dir_pw_span,
277*61c4878aSAndroid Build Coastguard Worker  ]
278*61c4878aSAndroid Build Coastguard Worker
279*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
280*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
281*61c4878aSAndroid Build Coastguard Worker}
282*61c4878aSAndroid Build Coastguard Worker
283*61c4878aSAndroid Build Coastguard Workerpw_test("flat_map_test") {
284*61c4878aSAndroid Build Coastguard Worker  sources = [ "flat_map_test.cc" ]
285*61c4878aSAndroid Build Coastguard Worker  deps = [
286*61c4878aSAndroid Build Coastguard Worker    ":flat_map",
287*61c4878aSAndroid Build Coastguard Worker    dir_pw_polyfill,
288*61c4878aSAndroid Build Coastguard Worker  ]
289*61c4878aSAndroid Build Coastguard Worker
290*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
291*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
292*61c4878aSAndroid Build Coastguard Worker}
293*61c4878aSAndroid Build Coastguard Worker
294*61c4878aSAndroid Build Coastguard Workerpw_test("inline_deque_test") {
295*61c4878aSAndroid Build Coastguard Worker  sources = [ "inline_deque_test.cc" ]
296*61c4878aSAndroid Build Coastguard Worker  deps = [
297*61c4878aSAndroid Build Coastguard Worker    ":algorithm",
298*61c4878aSAndroid Build Coastguard Worker    ":inline_deque",
299*61c4878aSAndroid Build Coastguard Worker    ":test_helpers",
300*61c4878aSAndroid Build Coastguard Worker  ]
301*61c4878aSAndroid Build Coastguard Worker  negative_compilation_tests = true
302*61c4878aSAndroid Build Coastguard Worker
303*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
304*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
305*61c4878aSAndroid Build Coastguard Worker}
306*61c4878aSAndroid Build Coastguard Worker
307*61c4878aSAndroid Build Coastguard Workerpw_test("inline_queue_test") {
308*61c4878aSAndroid Build Coastguard Worker  sources = [ "inline_queue_test.cc" ]
309*61c4878aSAndroid Build Coastguard Worker  deps = [
310*61c4878aSAndroid Build Coastguard Worker    ":algorithm",
311*61c4878aSAndroid Build Coastguard Worker    ":inline_queue",
312*61c4878aSAndroid Build Coastguard Worker    ":test_helpers",
313*61c4878aSAndroid Build Coastguard Worker  ]
314*61c4878aSAndroid Build Coastguard Worker  negative_compilation_tests = true
315*61c4878aSAndroid Build Coastguard Worker
316*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
317*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
318*61c4878aSAndroid Build Coastguard Worker}
319*61c4878aSAndroid Build Coastguard Worker
320*61c4878aSAndroid Build Coastguard Workerpw_test("raw_storage_test") {
321*61c4878aSAndroid Build Coastguard Worker  sources = [ "raw_storage_test.cc" ]
322*61c4878aSAndroid Build Coastguard Worker  deps = [
323*61c4878aSAndroid Build Coastguard Worker    ":raw_storage",
324*61c4878aSAndroid Build Coastguard Worker    ":test_helpers",
325*61c4878aSAndroid Build Coastguard Worker  ]
326*61c4878aSAndroid Build Coastguard Worker
327*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
328*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
329*61c4878aSAndroid Build Coastguard Worker}
330*61c4878aSAndroid Build Coastguard Worker
331*61c4878aSAndroid Build Coastguard Workerpw_test("to_array_test") {
332*61c4878aSAndroid Build Coastguard Worker  sources = [ "to_array_test.cc" ]
333*61c4878aSAndroid Build Coastguard Worker  deps = [ ":to_array" ]
334*61c4878aSAndroid Build Coastguard Worker
335*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
336*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
337*61c4878aSAndroid Build Coastguard Worker}
338*61c4878aSAndroid Build Coastguard Worker
339*61c4878aSAndroid Build Coastguard Workerpw_test("inline_var_len_entry_queue_test") {
340*61c4878aSAndroid Build Coastguard Worker  sources = [
341*61c4878aSAndroid Build Coastguard Worker    "inline_var_len_entry_queue_test.cc",
342*61c4878aSAndroid Build Coastguard Worker    "pw_containers_private/inline_var_len_entry_queue_test_oracle.h",
343*61c4878aSAndroid Build Coastguard Worker  ]
344*61c4878aSAndroid Build Coastguard Worker  deps = [
345*61c4878aSAndroid Build Coastguard Worker    ":inline_var_len_entry_queue",
346*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
347*61c4878aSAndroid Build Coastguard Worker    dir_pw_bytes,
348*61c4878aSAndroid Build Coastguard Worker  ]
349*61c4878aSAndroid Build Coastguard Worker
350*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
351*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
352*61c4878aSAndroid Build Coastguard Worker}
353*61c4878aSAndroid Build Coastguard Worker
354*61c4878aSAndroid Build Coastguard Workerpw_test("vector_test") {
355*61c4878aSAndroid Build Coastguard Worker  sources = [ "vector_test.cc" ]
356*61c4878aSAndroid Build Coastguard Worker  deps = [
357*61c4878aSAndroid Build Coastguard Worker    ":test_helpers",
358*61c4878aSAndroid Build Coastguard Worker    ":vector",
359*61c4878aSAndroid Build Coastguard Worker  ]
360*61c4878aSAndroid Build Coastguard Worker
361*61c4878aSAndroid Build Coastguard Worker  negative_compilation_tests = true
362*61c4878aSAndroid Build Coastguard Worker
363*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
364*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
365*61c4878aSAndroid Build Coastguard Worker}
366*61c4878aSAndroid Build Coastguard Worker
367*61c4878aSAndroid Build Coastguard Workerpw_test("wrapped_iterator_test") {
368*61c4878aSAndroid Build Coastguard Worker  sources = [ "wrapped_iterator_test.cc" ]
369*61c4878aSAndroid Build Coastguard Worker  deps = [ ":wrapped_iterator" ]
370*61c4878aSAndroid Build Coastguard Worker
371*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
372*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
373*61c4878aSAndroid Build Coastguard Worker}
374*61c4878aSAndroid Build Coastguard Worker
375*61c4878aSAndroid Build Coastguard Workerpw_test("intrusive_forward_list_test") {
376*61c4878aSAndroid Build Coastguard Worker  sources = [ "intrusive_forward_list_test.cc" ]
377*61c4878aSAndroid Build Coastguard Worker  deps = [
378*61c4878aSAndroid Build Coastguard Worker    ":intrusive_forward_list",
379*61c4878aSAndroid Build Coastguard Worker    ":vector",
380*61c4878aSAndroid Build Coastguard Worker  ]
381*61c4878aSAndroid Build Coastguard Worker  negative_compilation_tests = true
382*61c4878aSAndroid Build Coastguard Worker
383*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
384*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
385*61c4878aSAndroid Build Coastguard Worker}
386*61c4878aSAndroid Build Coastguard Worker
387*61c4878aSAndroid Build Coastguard Workerpw_test("intrusive_list_test") {
388*61c4878aSAndroid Build Coastguard Worker  sources = [ "intrusive_list_test.cc" ]
389*61c4878aSAndroid Build Coastguard Worker  deps = [
390*61c4878aSAndroid Build Coastguard Worker    ":intrusive_list",
391*61c4878aSAndroid Build Coastguard Worker    ":vector",
392*61c4878aSAndroid Build Coastguard Worker  ]
393*61c4878aSAndroid Build Coastguard Worker  negative_compilation_tests = true
394*61c4878aSAndroid Build Coastguard Worker
395*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
396*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
397*61c4878aSAndroid Build Coastguard Worker}
398*61c4878aSAndroid Build Coastguard Worker
399*61c4878aSAndroid Build Coastguard Workerpw_test("intrusive_map_test") {
400*61c4878aSAndroid Build Coastguard Worker  sources = [ "intrusive_map_test.cc" ]
401*61c4878aSAndroid Build Coastguard Worker  deps = [
402*61c4878aSAndroid Build Coastguard Worker    ":intrusive_map",
403*61c4878aSAndroid Build Coastguard Worker    ":intrusive_multimap",
404*61c4878aSAndroid Build Coastguard Worker    dir_pw_span,
405*61c4878aSAndroid Build Coastguard Worker  ]
406*61c4878aSAndroid Build Coastguard Worker  negative_compilation_tests = true
407*61c4878aSAndroid Build Coastguard Worker}
408*61c4878aSAndroid Build Coastguard Worker
409*61c4878aSAndroid Build Coastguard Workerpw_test("intrusive_multimap_test") {
410*61c4878aSAndroid Build Coastguard Worker  sources = [ "intrusive_multimap_test.cc" ]
411*61c4878aSAndroid Build Coastguard Worker  deps = [
412*61c4878aSAndroid Build Coastguard Worker    ":intrusive_map",
413*61c4878aSAndroid Build Coastguard Worker    ":intrusive_multimap",
414*61c4878aSAndroid Build Coastguard Worker    dir_pw_span,
415*61c4878aSAndroid Build Coastguard Worker  ]
416*61c4878aSAndroid Build Coastguard Worker  negative_compilation_tests = true
417*61c4878aSAndroid Build Coastguard Worker}
418*61c4878aSAndroid Build Coastguard Worker
419*61c4878aSAndroid Build Coastguard Workerpw_test("intrusive_set_test") {
420*61c4878aSAndroid Build Coastguard Worker  sources = [ "intrusive_set_test.cc" ]
421*61c4878aSAndroid Build Coastguard Worker  deps = [
422*61c4878aSAndroid Build Coastguard Worker    ":intrusive_multiset",
423*61c4878aSAndroid Build Coastguard Worker    ":intrusive_set",
424*61c4878aSAndroid Build Coastguard Worker    dir_pw_span,
425*61c4878aSAndroid Build Coastguard Worker  ]
426*61c4878aSAndroid Build Coastguard Worker  negative_compilation_tests = true
427*61c4878aSAndroid Build Coastguard Worker}
428*61c4878aSAndroid Build Coastguard Worker
429*61c4878aSAndroid Build Coastguard Workerpw_test("intrusive_multiset_test") {
430*61c4878aSAndroid Build Coastguard Worker  sources = [ "intrusive_multiset_test.cc" ]
431*61c4878aSAndroid Build Coastguard Worker  deps = [
432*61c4878aSAndroid Build Coastguard Worker    ":intrusive_multiset",
433*61c4878aSAndroid Build Coastguard Worker    ":intrusive_set",
434*61c4878aSAndroid Build Coastguard Worker    dir_pw_span,
435*61c4878aSAndroid Build Coastguard Worker  ]
436*61c4878aSAndroid Build Coastguard Worker  negative_compilation_tests = true
437*61c4878aSAndroid Build Coastguard Worker}
438*61c4878aSAndroid Build Coastguard Worker
439*61c4878aSAndroid Build Coastguard Workerpw_test("intrusive_item_test") {
440*61c4878aSAndroid Build Coastguard Worker  sources = [ "intrusive_item_test.cc" ]
441*61c4878aSAndroid Build Coastguard Worker  deps = [
442*61c4878aSAndroid Build Coastguard Worker    ":intrusive_forward_list",
443*61c4878aSAndroid Build Coastguard Worker    ":intrusive_list",
444*61c4878aSAndroid Build Coastguard Worker    ":intrusive_map",
445*61c4878aSAndroid Build Coastguard Worker    ":intrusive_multimap",
446*61c4878aSAndroid Build Coastguard Worker    ":intrusive_multiset",
447*61c4878aSAndroid Build Coastguard Worker    ":intrusive_set",
448*61c4878aSAndroid Build Coastguard Worker  ]
449*61c4878aSAndroid Build Coastguard Worker  negative_compilation_tests = true
450*61c4878aSAndroid Build Coastguard Worker}
451*61c4878aSAndroid Build Coastguard Worker
452*61c4878aSAndroid Build Coastguard Workerpw_doc_group("docs") {
453*61c4878aSAndroid Build Coastguard Worker  inputs = [
454*61c4878aSAndroid Build Coastguard Worker    "Kconfig",
455*61c4878aSAndroid Build Coastguard Worker    "examples/flat_map.cc",
456*61c4878aSAndroid Build Coastguard Worker    "examples/intrusive_forward_list.cc",
457*61c4878aSAndroid Build Coastguard Worker    "examples/intrusive_list.cc",
458*61c4878aSAndroid Build Coastguard Worker    "examples/intrusive_map.cc",
459*61c4878aSAndroid Build Coastguard Worker    "examples/intrusive_multimap.cc",
460*61c4878aSAndroid Build Coastguard Worker    "examples/intrusive_multiset.cc",
461*61c4878aSAndroid Build Coastguard Worker    "examples/intrusive_set.cc",
462*61c4878aSAndroid Build Coastguard Worker    "examples/multiple_containers.cc",
463*61c4878aSAndroid Build Coastguard Worker    "examples/wrapped_iterator.cc",
464*61c4878aSAndroid Build Coastguard Worker  ]
465*61c4878aSAndroid Build Coastguard Worker  sources = [ "docs.rst" ]
466*61c4878aSAndroid Build Coastguard Worker  report_deps = [ ":intrusive_list_size_report" ]
467*61c4878aSAndroid Build Coastguard Worker}
468*61c4878aSAndroid Build Coastguard Worker
469*61c4878aSAndroid Build Coastguard Workerpw_size_diff("intrusive_list_size_report") {
470*61c4878aSAndroid Build Coastguard Worker  title = "Pigweed containers size report"
471*61c4878aSAndroid Build Coastguard Worker  binaries = [
472*61c4878aSAndroid Build Coastguard Worker    {
473*61c4878aSAndroid Build Coastguard Worker      target = "size_report:linked_list_one_item"
474*61c4878aSAndroid Build Coastguard Worker      base = "size_report:base"
475*61c4878aSAndroid Build Coastguard Worker      label = "linked list one item"
476*61c4878aSAndroid Build Coastguard Worker    },
477*61c4878aSAndroid Build Coastguard Worker    {
478*61c4878aSAndroid Build Coastguard Worker      target = "size_report:linked_list_two_item"
479*61c4878aSAndroid Build Coastguard Worker      base = "size_report:base"
480*61c4878aSAndroid Build Coastguard Worker      label = "linked list two item"
481*61c4878aSAndroid Build Coastguard Worker    },
482*61c4878aSAndroid Build Coastguard Worker    {
483*61c4878aSAndroid Build Coastguard Worker      target = "size_report:linked_list_four_item"
484*61c4878aSAndroid Build Coastguard Worker      base = "size_report:base"
485*61c4878aSAndroid Build Coastguard Worker      label = "linked list four item"
486*61c4878aSAndroid Build Coastguard Worker    },
487*61c4878aSAndroid Build Coastguard Worker    {
488*61c4878aSAndroid Build Coastguard Worker      target = "size_report:intrusive_forward_list_one_item"
489*61c4878aSAndroid Build Coastguard Worker      base = "size_report:base"
490*61c4878aSAndroid Build Coastguard Worker      label = "intrusive list one item"
491*61c4878aSAndroid Build Coastguard Worker    },
492*61c4878aSAndroid Build Coastguard Worker    {
493*61c4878aSAndroid Build Coastguard Worker      target = "size_report:intrusive_forward_list_two_item"
494*61c4878aSAndroid Build Coastguard Worker      base = "size_report:base"
495*61c4878aSAndroid Build Coastguard Worker      label = "intrusive list two item"
496*61c4878aSAndroid Build Coastguard Worker    },
497*61c4878aSAndroid Build Coastguard Worker    {
498*61c4878aSAndroid Build Coastguard Worker      target = "size_report:intrusive_forward_list_four_item"
499*61c4878aSAndroid Build Coastguard Worker      base = "size_report:base"
500*61c4878aSAndroid Build Coastguard Worker      label = "intrusive list four item"
501*61c4878aSAndroid Build Coastguard Worker    },
502*61c4878aSAndroid Build Coastguard Worker  ]
503*61c4878aSAndroid Build Coastguard Worker}
504