1# Copyright 2020 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 15load("@rules_cc//cc:cc_library.bzl", "cc_library") 16load("@rules_python//sphinxdocs:sphinx_docs_library.bzl", "sphinx_docs_library") 17load("//pw_bloat:pw_size_diff.bzl", "pw_size_diff") 18load("//pw_bloat:pw_size_table.bzl", "pw_size_table") 19load("//pw_build:compatibility.bzl", "incompatible_with_mcu") 20load("//pw_unit_test:pw_cc_test.bzl", "pw_cc_test") 21 22package(default_visibility = ["//visibility:public"]) 23 24licenses(["notice"]) 25 26# Module configuration 27 28cc_library( 29 name = "config", 30 hdrs = ["public/pw_containers/config.h"], 31 strip_include_prefix = "public", 32 deps = [":config_override"], 33) 34 35label_flag( 36 name = "config_override", 37 build_setting_default = "//pw_build:default_module_config", 38) 39 40# Libraries 41 42cc_library( 43 name = "pw_containers", 44 deprecation = "Depend on the individual single-header targets instead", 45 # Tagged manual so that we don't hit the deprecation warning when building 46 # upstream Pigweed itself. 47 tags = ["manual"], 48 deps = [ 49 ":algorithm", 50 ":flat_map", 51 ":inline_deque", 52 ":inline_queue", 53 ":intrusive_list", 54 ":vector", 55 ], 56) 57 58cc_library( 59 name = "algorithm", 60 hdrs = [ 61 "public/pw_containers/algorithm.h", 62 "public/pw_containers/internal/algorithm_internal.h", 63 ], 64 strip_include_prefix = "public", 65) 66 67cc_library( 68 name = "intrusive_item", 69 srcs = ["intrusive_item.cc"], 70 hdrs = ["public/pw_containers/internal/intrusive_item.h"], 71 implementation_deps = ["//pw_assert:check"], 72 strip_include_prefix = "public", 73) 74 75cc_library( 76 name = "intrusive_list_common", 77 hdrs = [ 78 "public/pw_containers/internal/intrusive_list.h", 79 "public/pw_containers/internal/intrusive_list_item.h", 80 "public/pw_containers/internal/intrusive_list_iterator.h", 81 ], 82 strip_include_prefix = "public", 83 deps = [":intrusive_item"], 84) 85 86cc_library( 87 name = "intrusive_forward_list", 88 hdrs = ["public/pw_containers/intrusive_forward_list.h"], 89 strip_include_prefix = "public", 90 deps = [ 91 ":config", 92 ":intrusive_list_common", 93 ], 94) 95 96cc_library( 97 name = "intrusive_list", 98 hdrs = ["public/pw_containers/intrusive_list.h"], 99 strip_include_prefix = "public", 100 deps = [ 101 ":config", 102 ":intrusive_list_common", 103 ":legacy_intrusive_list", 104 ], 105) 106 107cc_library( 108 name = "legacy_intrusive_list", 109 hdrs = ["public/pw_containers/internal/legacy_intrusive_list.h"], 110 strip_include_prefix = "public", 111 visibility = [":__subpackages__"], 112 deps = [":intrusive_forward_list"], 113) 114 115cc_library( 116 name = "aa_tree", 117 srcs = [ 118 "aa_tree.cc", 119 "aa_tree_item.cc", 120 ], 121 hdrs = [ 122 "public/pw_containers/internal/aa_tree.h", 123 "public/pw_containers/internal/aa_tree_item.h", 124 "public/pw_containers/internal/aa_tree_iterator.h", 125 ], 126 strip_include_prefix = "public", 127 visibility = [":__subpackages__"], 128 deps = [ 129 ":intrusive_item", 130 "//pw_assert:assert", 131 "//pw_bytes:packed_ptr", 132 "//pw_function", 133 ], 134) 135 136cc_library( 137 name = "intrusive_map", 138 hdrs = ["public/pw_containers/intrusive_map.h"], 139 strip_include_prefix = "public", 140 deps = [":aa_tree"], 141) 142 143cc_library( 144 name = "intrusive_multimap", 145 hdrs = ["public/pw_containers/intrusive_multimap.h"], 146 strip_include_prefix = "public", 147 deps = [":aa_tree"], 148) 149 150cc_library( 151 name = "intrusive_set", 152 hdrs = ["public/pw_containers/intrusive_set.h"], 153 strip_include_prefix = "public", 154 deps = [":aa_tree"], 155) 156 157cc_library( 158 name = "intrusive_multiset", 159 hdrs = ["public/pw_containers/intrusive_multiset.h"], 160 strip_include_prefix = "public", 161 deps = [":aa_tree"], 162) 163 164cc_library( 165 name = "iterator", 166 hdrs = ["public/pw_containers/iterator.h"], 167 strip_include_prefix = "public", 168 tags = ["noclangtidy"], 169) 170 171cc_library( 172 name = "inline_deque", 173 hdrs = [ 174 "public/pw_containers/inline_deque.h", 175 ], 176 strip_include_prefix = "public", 177 deps = [ 178 ":raw_storage", 179 "//pw_assert:assert", 180 "//pw_preprocessor", 181 "//pw_span", 182 "//pw_toolchain:constexpr_tag", 183 ], 184) 185 186cc_library( 187 name = "inline_queue", 188 hdrs = [ 189 "public/pw_containers/inline_queue.h", 190 ], 191 strip_include_prefix = "public", 192 deps = [":inline_deque"], 193) 194 195cc_library( 196 name = "inline_var_len_entry_queue", 197 srcs = ["inline_var_len_entry_queue.c"], 198 hdrs = ["public/pw_containers/inline_var_len_entry_queue.h"], 199 implementation_deps = ["//pw_assert:check"], 200 strip_include_prefix = "public", 201 tags = ["noclangtidy"], 202 deps = [ 203 ":raw_storage", 204 "//pw_preprocessor", 205 "//pw_toolchain:constexpr_tag", 206 "//pw_varint", 207 ], 208) 209 210cc_library( 211 name = "vector", 212 hdrs = [ 213 "public/pw_containers/vector.h", 214 ], 215 strip_include_prefix = "public", 216 deps = [ 217 "//pw_assert:assert", 218 "//pw_preprocessor", 219 "//pw_toolchain:constexpr_tag", 220 ], 221) 222 223cc_library( 224 name = "filtered_view", 225 hdrs = ["public/pw_containers/filtered_view.h"], 226 strip_include_prefix = "public", 227 deps = [ 228 "//pw_assert:assert", 229 "//pw_preprocessor", 230 ], 231) 232 233cc_library( 234 name = "flat_map", 235 hdrs = ["public/pw_containers/flat_map.h"], 236 strip_include_prefix = "public", 237 deps = ["//pw_assert:assert"], 238) 239 240cc_library( 241 name = "raw_storage", 242 hdrs = [ 243 "public/pw_containers/internal/raw_storage.h", 244 ], 245 strip_include_prefix = "public", 246 visibility = [":__subpackages__"], 247) 248 249cc_library( 250 name = "test_helpers", 251 srcs = ["test_helpers.cc"], 252 hdrs = ["pw_containers_private/test_helpers.h"], 253 implementation_deps = ["//pw_assert:check"], 254 visibility = [":__subpackages__"], 255) 256 257cc_library( 258 name = "to_array", 259 hdrs = ["public/pw_containers/to_array.h"], 260 strip_include_prefix = "public", 261) 262 263cc_library( 264 name = "wrapped_iterator", 265 hdrs = ["public/pw_containers/wrapped_iterator.h"], 266 strip_include_prefix = "public", 267) 268 269# Unit tests 270 271pw_cc_test( 272 name = "algorithm_test", 273 srcs = ["algorithm_test.cc"], 274 deps = [ 275 ":algorithm", 276 ":flat_map", 277 ":intrusive_list", 278 ":vector", 279 "//pw_span", 280 ], 281) 282 283pw_cc_test( 284 name = "filtered_view_test", 285 srcs = ["filtered_view_test.cc"], 286 deps = [ 287 ":algorithm", 288 ":filtered_view", 289 ":flat_map", 290 ":intrusive_list", 291 "//pw_span", 292 ], 293) 294 295pw_cc_test( 296 name = "flat_map_test", 297 srcs = [ 298 "flat_map_test.cc", 299 ], 300 deps = [ 301 ":flat_map", 302 "//pw_polyfill", 303 ], 304) 305 306pw_cc_test( 307 name = "inline_var_len_entry_queue_test", 308 srcs = [ 309 "inline_var_len_entry_queue_test.cc", 310 "pw_containers_private/inline_var_len_entry_queue_test_oracle.h", 311 ], 312 deps = [ 313 ":inline_var_len_entry_queue", 314 "//pw_assert:assert", 315 "//pw_bytes", 316 "//pw_varint", 317 ], 318) 319 320pw_cc_test( 321 name = "vector_test", 322 srcs = [ 323 "vector_test.cc", 324 ], 325 deps = [ 326 ":test_helpers", 327 ":vector", 328 "//pw_compilation_testing:negative_compilation_testing", 329 ], 330) 331 332pw_cc_test( 333 name = "inline_deque_test", 334 srcs = [ 335 "inline_deque_test.cc", 336 ], 337 deps = [ 338 ":algorithm", 339 ":inline_deque", 340 ":test_helpers", 341 "//pw_compilation_testing:negative_compilation_testing", 342 ], 343) 344 345pw_cc_test( 346 name = "inline_queue_test", 347 srcs = [ 348 "inline_queue_test.cc", 349 ], 350 deps = [ 351 ":algorithm", 352 ":inline_queue", 353 ":test_helpers", 354 "//pw_compilation_testing:negative_compilation_testing", 355 ], 356) 357 358pw_cc_test( 359 name = "raw_storage_test", 360 srcs = [ 361 "raw_storage_test.cc", 362 ], 363 deps = [ 364 ":raw_storage", 365 ":test_helpers", 366 ], 367) 368 369pw_cc_test( 370 name = "to_array_test", 371 srcs = ["to_array_test.cc"], 372 deps = [":to_array"], 373) 374 375pw_cc_test( 376 name = "wrapped_iterator_test", 377 srcs = ["wrapped_iterator_test.cc"], 378 deps = [":wrapped_iterator"], 379) 380 381pw_cc_test( 382 name = "intrusive_forward_list_test", 383 srcs = ["intrusive_forward_list_test.cc"], 384 deps = [ 385 ":intrusive_forward_list", 386 ":vector", 387 "//pw_compilation_testing:negative_compilation_testing", 388 "//pw_preprocessor", 389 ], 390) 391 392pw_cc_test( 393 name = "intrusive_list_test", 394 srcs = ["intrusive_list_test.cc"], 395 deps = [ 396 ":intrusive_list", 397 ":vector", 398 "//pw_compilation_testing:negative_compilation_testing", 399 "//pw_preprocessor", 400 ], 401) 402 403pw_cc_test( 404 name = "intrusive_map_test", 405 srcs = ["intrusive_map_test.cc"], 406 deps = [ 407 ":intrusive_map", 408 ":intrusive_multimap", 409 "//pw_compilation_testing:negative_compilation_testing", 410 "//pw_span", 411 ], 412) 413 414pw_cc_test( 415 name = "intrusive_multimap_test", 416 srcs = ["intrusive_multimap_test.cc"], 417 deps = [ 418 ":intrusive_map", 419 ":intrusive_multimap", 420 "//pw_compilation_testing:negative_compilation_testing", 421 "//pw_span", 422 ], 423) 424 425pw_cc_test( 426 name = "intrusive_set_test", 427 srcs = ["intrusive_set_test.cc"], 428 deps = [ 429 ":intrusive_multiset", 430 ":intrusive_set", 431 "//pw_compilation_testing:negative_compilation_testing", 432 "//pw_span", 433 ], 434) 435 436pw_cc_test( 437 name = "intrusive_multiset_test", 438 srcs = ["intrusive_multiset_test.cc"], 439 deps = [ 440 ":intrusive_multiset", 441 ":intrusive_set", 442 "//pw_compilation_testing:negative_compilation_testing", 443 "//pw_span", 444 ], 445) 446 447pw_cc_test( 448 name = "intrusive_item_test", 449 srcs = ["intrusive_item_test.cc"], 450 deps = [ 451 ":intrusive_forward_list", 452 ":intrusive_list", 453 ":intrusive_map", 454 ":intrusive_multimap", 455 ":intrusive_multiset", 456 ":intrusive_set", 457 "//pw_compilation_testing:negative_compilation_testing", 458 ], 459) 460 461filegroup( 462 name = "doxygen", 463 srcs = [ 464 "public/pw_containers/algorithm.h", 465 "public/pw_containers/filtered_view.h", 466 "public/pw_containers/inline_deque.h", 467 "public/pw_containers/inline_queue.h", 468 "public/pw_containers/inline_var_len_entry_queue.h", 469 "public/pw_containers/internal/aa_tree.h", 470 "public/pw_containers/internal/intrusive_list.h", 471 "public/pw_containers/intrusive_forward_list.h", 472 "public/pw_containers/intrusive_list.h", 473 "public/pw_containers/intrusive_map.h", 474 "public/pw_containers/intrusive_multimap.h", 475 "public/pw_containers/intrusive_multiset.h", 476 "public/pw_containers/intrusive_set.h", 477 "public/pw_containers/vector.h", 478 ], 479) 480 481sphinx_docs_library( 482 name = "docs", 483 srcs = [ 484 "Kconfig", 485 "docs.rst", 486 "lists.rst", 487 "maps.rst", 488 "multiple_containers.rst", 489 "queues.rst", 490 "sets.rst", 491 "utilities.rst", 492 "vectors.rst", 493 "//pw_containers/examples:docs", 494 ], 495 prefix = "pw_containers/", 496 target_compatible_with = incompatible_with_mcu(), 497) 498 499pw_size_diff( 500 name = "intrusive_list_size_report", 501 base = "//pw_containers/size_report:base", 502 bloaty_config = "//targets/rp2040:bloaty_config", 503 label = "IntrusiveList", 504 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 505 tags = ["manual"], 506 target = "//pw_containers/size_report:intrusive_list_base", 507) 508 509pw_size_diff( 510 name = "intrusive_list_size_report_alternate_type", 511 base = "//pw_containers/size_report:intrusive_list_base", 512 bloaty_config = "//targets/rp2040:bloaty_config", 513 label = "Additional IntrusiveList with different item type", 514 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 515 tags = ["manual"], 516 target = "//pw_containers/size_report:intrusive_list_alternate_type", 517) 518 519pw_size_diff( 520 name = "intrusive_forward_list_size_report", 521 base = "//pw_containers/size_report:base", 522 bloaty_config = "//targets/rp2040:bloaty_config", 523 label = "IntrusiveForwardList", 524 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 525 tags = ["manual"], 526 target = "//pw_containers/size_report:intrusive_forward_list_base", 527) 528 529pw_size_diff( 530 name = "intrusive_forward_list_size_report_alternate_type", 531 base = "//pw_containers/size_report:intrusive_forward_list_base", 532 bloaty_config = "//targets/rp2040:bloaty_config", 533 label = "Additional IntrusiveForwardList with different item type", 534 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 535 tags = ["manual"], 536 target = "//pw_containers/size_report:intrusive_forward_list_alternate_type", 537) 538 539pw_size_diff( 540 name = "intrusive_list_and_forward_list_size_report", 541 base = "//pw_containers/size_report:base", 542 bloaty_config = "//targets/rp2040:bloaty_config", 543 label = "IntrusiveForwardList and IntrusiveList", 544 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 545 tags = ["manual"], 546 target = "//pw_containers/size_report:intrusive_list_and_forward_list", 547) 548 549pw_size_table( 550 name = "lists_size_report", 551 reports = [ 552 ":intrusive_list_size_report", 553 ":intrusive_list_size_report_alternate_type", 554 ":intrusive_forward_list_size_report", 555 ":intrusive_forward_list_size_report_alternate_type", 556 ":intrusive_list_and_forward_list_size_report", 557 ], 558 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 559 tags = ["manual"], 560) 561 562pw_size_diff( 563 name = "flat_map_size_report", 564 base = "//pw_containers/size_report:base", 565 bloaty_config = "//targets/rp2040:bloaty_config", 566 label = "FlatMap", 567 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 568 tags = ["manual"], 569 target = "//pw_containers/size_report:flat_map_base", 570) 571 572pw_size_diff( 573 name = "flat_map_size_report_alternate_types", 574 base = "//pw_containers/size_report:flat_map_base", 575 bloaty_config = "//targets/rp2040:bloaty_config", 576 label = "Additional FlatMap with different key and value types", 577 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 578 tags = ["manual"], 579 target = "//pw_containers/size_report:flat_map_alternate_types", 580) 581 582pw_size_diff( 583 name = "intrusive_map_size_report", 584 base = "//pw_containers/size_report:base", 585 bloaty_config = "//targets/rp2040:bloaty_config", 586 label = "IntrusiveMap", 587 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 588 tags = ["manual"], 589 target = "//pw_containers/size_report:intrusive_map_base", 590) 591 592pw_size_diff( 593 name = "intrusive_map_size_report_alternate_key", 594 base = "//pw_containers/size_report:intrusive_map_base", 595 bloaty_config = "//targets/rp2040:bloaty_config", 596 label = "Additional IntrusiveMap with different key type", 597 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 598 tags = ["manual"], 599 target = "//pw_containers/size_report:intrusive_map_alternate_key", 600) 601 602pw_size_diff( 603 name = "intrusive_map_size_report_alternate_types", 604 base = "//pw_containers/size_report:intrusive_map_base", 605 bloaty_config = "//targets/rp2040:bloaty_config", 606 label = "Additional IntrusiveMap with different key and value types", 607 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 608 tags = ["manual"], 609 target = "//pw_containers/size_report:intrusive_map_alternate_types", 610) 611 612pw_size_diff( 613 name = "intrusive_multimap_size_report", 614 base = "//pw_containers/size_report:base", 615 bloaty_config = "//targets/rp2040:bloaty_config", 616 label = "IntrusiveMultiMap", 617 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 618 tags = ["manual"], 619 target = "//pw_containers/size_report:intrusive_multimap_base", 620) 621 622pw_size_diff( 623 name = "intrusive_multimap_size_report_alternate_key", 624 base = "//pw_containers/size_report:intrusive_multimap_base", 625 bloaty_config = "//targets/rp2040:bloaty_config", 626 label = "Additional IntrusiveMultiMap with different key type", 627 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 628 tags = ["manual"], 629 target = "//pw_containers/size_report:intrusive_multimap_alternate_key", 630) 631 632pw_size_diff( 633 name = "intrusive_multimap_size_report_alternate_types", 634 base = "//pw_containers/size_report:intrusive_multimap_base", 635 bloaty_config = "//targets/rp2040:bloaty_config", 636 label = "Additional IntrusiveMultiMap with different key and value types", 637 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 638 tags = ["manual"], 639 target = "//pw_containers/size_report:intrusive_multimap_alternate_types", 640) 641 642pw_size_diff( 643 name = "intrusive_map_and_multimap_size_report", 644 base = "//pw_containers/size_report:base", 645 bloaty_config = "//targets/rp2040:bloaty_config", 646 label = "IntrusiveMap and IntrusiveMultiMap", 647 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 648 tags = ["manual"], 649 target = "//pw_containers/size_report:intrusive_map_and_multimap", 650) 651 652pw_size_table( 653 name = "maps_size_report", 654 reports = [ 655 ":flat_map_size_report", 656 ":flat_map_size_report_alternate_types", 657 ":intrusive_map_size_report", 658 ":intrusive_map_size_report_alternate_key", 659 ":intrusive_map_size_report_alternate_types", 660 ":intrusive_multimap_size_report", 661 ":intrusive_multimap_size_report_alternate_key", 662 ":intrusive_multimap_size_report_alternate_types", 663 ":intrusive_map_and_multimap_size_report", 664 ], 665 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 666 tags = ["manual"], 667) 668 669pw_size_diff( 670 name = "inline_deque_size_report", 671 base = "//pw_containers/size_report:base", 672 bloaty_config = "//targets/rp2040:bloaty_config", 673 label = "InlineDeque", 674 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 675 tags = ["manual"], 676 target = "//pw_containers/size_report:inline_deque_base", 677) 678 679pw_size_diff( 680 name = "inline_deque_size_report_alternate_type", 681 base = "//pw_containers/size_report:inline_deque_base", 682 bloaty_config = "//targets/rp2040:bloaty_config", 683 label = "Additional InlineDeque with different item type", 684 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 685 tags = ["manual"], 686 target = "//pw_containers/size_report:inline_deque_alternate_type", 687) 688 689pw_size_diff( 690 name = "inline_queue_size_report", 691 base = "//pw_containers/size_report:base", 692 bloaty_config = "//targets/rp2040:bloaty_config", 693 label = "InlineQueue", 694 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 695 tags = ["manual"], 696 target = "//pw_containers/size_report:inline_queue_base", 697) 698 699pw_size_diff( 700 name = "inline_queue_size_report_alternate_type", 701 base = "//pw_containers/size_report:inline_queue_base", 702 bloaty_config = "//targets/rp2040:bloaty_config", 703 label = "Additional InlineQueue with different item type", 704 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 705 tags = ["manual"], 706 target = "//pw_containers/size_report:inline_queue_alternate_type", 707) 708 709pw_size_diff( 710 name = "inline_deque_and_queue_size_report", 711 base = "//pw_containers/size_report:base", 712 bloaty_config = "//targets/rp2040:bloaty_config", 713 label = "InlineDeque and InlineQueue", 714 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 715 tags = ["manual"], 716 target = "//pw_containers/size_report:inline_deque_and_queue", 717) 718 719pw_size_table( 720 name = "queues_size_report", 721 reports = [ 722 ":inline_deque_size_report", 723 ":inline_deque_size_report_alternate_type", 724 ":inline_queue_size_report", 725 ":inline_queue_size_report_alternate_type", 726 ":inline_deque_and_queue_size_report", 727 ], 728 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 729 tags = ["manual"], 730) 731 732pw_size_diff( 733 name = "intrusive_set_size_report", 734 base = "//pw_containers/size_report:base", 735 bloaty_config = "//targets/rp2040:bloaty_config", 736 label = "IntrusiveSet", 737 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 738 tags = ["manual"], 739 target = "//pw_containers/size_report:intrusive_set_base", 740) 741 742pw_size_diff( 743 name = "intrusive_set_size_report_alternate_type", 744 base = "//pw_containers/size_report:intrusive_set_base", 745 bloaty_config = "//targets/rp2040:bloaty_config", 746 label = "Additional IntrusiveSet with different item type", 747 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 748 tags = ["manual"], 749 target = "//pw_containers/size_report:intrusive_set_alternate_type", 750) 751 752pw_size_diff( 753 name = "intrusive_multiset_size_report", 754 base = "//pw_containers/size_report:base", 755 bloaty_config = "//targets/rp2040:bloaty_config", 756 label = "IntrusiveMultiSet", 757 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 758 tags = ["manual"], 759 target = "//pw_containers/size_report:intrusive_multiset_base", 760) 761 762pw_size_diff( 763 name = "intrusive_multiset_size_report_alternate_type", 764 base = "//pw_containers/size_report:intrusive_multiset_base", 765 bloaty_config = "//targets/rp2040:bloaty_config", 766 label = "Additional IntrusiveMultiSet with different item type", 767 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 768 tags = ["manual"], 769 target = "//pw_containers/size_report:intrusive_multiset_alternate_type", 770) 771 772pw_size_diff( 773 name = "intrusive_set_and_multiset_size_report", 774 base = "//pw_containers/size_report:base", 775 bloaty_config = "//targets/rp2040:bloaty_config", 776 label = "IntrusiveSet and IntrusiveMultiSet", 777 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 778 tags = ["manual"], 779 target = "//pw_containers/size_report:intrusive_set_and_multiset", 780) 781 782pw_size_table( 783 name = "sets_size_report", 784 reports = [ 785 ":intrusive_set_size_report", 786 ":intrusive_set_size_report_alternate_type", 787 ":intrusive_multiset_size_report", 788 ":intrusive_multiset_size_report_alternate_type", 789 ":intrusive_set_and_multiset_size_report", 790 ], 791 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 792 tags = ["manual"], 793) 794 795pw_size_diff( 796 name = "vector_size_report", 797 base = "//pw_containers/size_report:base", 798 bloaty_config = "//targets/rp2040:bloaty_config", 799 label = "Vector", 800 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 801 tags = ["manual"], 802 target = "//pw_containers/size_report:vector_base", 803) 804 805pw_size_diff( 806 name = "vector_size_report_alternate_size", 807 base = "//pw_containers/size_report:vector_base", 808 bloaty_config = "//targets/rp2040:bloaty_config", 809 label = "Additional Vector with the same item type but different size", 810 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 811 tags = ["manual"], 812 target = "//pw_containers/size_report:vector_alternate_size", 813) 814 815pw_size_diff( 816 name = "vector_size_report_alternate_type", 817 base = "//pw_containers/size_report:vector_base", 818 bloaty_config = "//targets/rp2040:bloaty_config", 819 label = "Additional Vector with different item type but same size", 820 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 821 tags = ["manual"], 822 target = "//pw_containers/size_report:vector_alternate_type", 823) 824 825pw_size_table( 826 name = "vectors_size_report", 827 reports = [ 828 ":vector_size_report", 829 ":vector_size_report_alternate_size", 830 ":vector_size_report_alternate_type", 831 ], 832 # TODO: https://pwbug.dev/388905812 - Make size reports always build. 833 tags = ["manual"], 834) 835