1# Copyright 2022 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 15import("//build_overrides/pigweed.gni") 16import("$dir_pw_build/target_types.gni") 17 18config("public_include_path") { 19 include_dirs = [ "public" ] 20 visibility = [ ":*" ] 21} 22 23pw_source_set("size_report") { 24 public_configs = [ ":public_include_path" ] 25 public = [ "public/pw_containers/size_report/size_report.h" ] 26 public_deps = [ "$dir_pw_bloat:bloat_this_binary" ] 27} 28 29pw_source_set("flat_map") { 30 public_configs = [ ":public_include_path" ] 31 public = [ "public/pw_containers/size_report/flat_map.h" ] 32 public_deps = [ 33 ":size_report", 34 "$dir_pw_bloat:bloat_this_binary", 35 "$dir_pw_containers:flat_map", 36 ] 37} 38 39pw_source_set("inline_deque") { 40 public_configs = [ ":public_include_path" ] 41 public = [ "public/pw_containers/size_report/inline_deque.h" ] 42 public_deps = [ 43 ":size_report", 44 "$dir_pw_bloat:bloat_this_binary", 45 "$dir_pw_containers:inline_deque", 46 ] 47} 48 49pw_source_set("inline_queue") { 50 public_configs = [ ":public_include_path" ] 51 public = [ "public/pw_containers/size_report/inline_queue.h" ] 52 public_deps = [ 53 ":size_report", 54 "$dir_pw_bloat:bloat_this_binary", 55 "$dir_pw_containers:inline_queue", 56 ] 57} 58 59pw_source_set("intrusive_forward_list") { 60 public_configs = [ ":public_include_path" ] 61 public = [ "public/pw_containers/size_report/intrusive_forward_list.h" ] 62 public_deps = [ 63 ":size_report", 64 "$dir_pw_bloat:bloat_this_binary", 65 "$dir_pw_containers:intrusive_forward_list", 66 ] 67} 68 69pw_source_set("intrusive_list") { 70 public_configs = [ ":public_include_path" ] 71 public = [ "public/pw_containers/size_report/intrusive_list.h" ] 72 public_deps = [ 73 ":size_report", 74 "$dir_pw_bloat:bloat_this_binary", 75 "$dir_pw_containers:intrusive_list", 76 ] 77} 78 79pw_source_set("intrusive_map") { 80 public_configs = [ ":public_include_path" ] 81 public = [ "public/pw_containers/size_report/intrusive_map.h" ] 82 public_deps = [ 83 ":size_report", 84 "$dir_pw_bloat:bloat_this_binary", 85 "$dir_pw_containers:intrusive_map", 86 ] 87} 88 89pw_source_set("intrusive_multimap") { 90 public_configs = [ ":public_include_path" ] 91 public = [ "public/pw_containers/size_report/intrusive_multimap.h" ] 92 public_deps = [ 93 ":size_report", 94 "$dir_pw_bloat:bloat_this_binary", 95 "$dir_pw_containers:intrusive_multimap", 96 ] 97} 98 99pw_source_set("intrusive_multiset") { 100 public_configs = [ ":public_include_path" ] 101 public = [ "public/pw_containers/size_report/intrusive_multiset.h" ] 102 public_deps = [ 103 ":size_report", 104 "$dir_pw_bloat:bloat_this_binary", 105 "$dir_pw_containers:intrusive_multiset", 106 ] 107} 108 109pw_source_set("intrusive_set") { 110 public_configs = [ ":public_include_path" ] 111 public = [ "public/pw_containers/size_report/intrusive_set.h" ] 112 public_deps = [ 113 ":size_report", 114 "$dir_pw_bloat:bloat_this_binary", 115 "$dir_pw_containers:intrusive_set", 116 ] 117} 118 119pw_source_set("vector") { 120 public_configs = [ ":public_include_path" ] 121 public = [ "public/pw_containers/size_report/vector.h" ] 122 public_deps = [ 123 ":size_report", 124 "$dir_pw_bloat:bloat_this_binary", 125 "$dir_pw_containers:vector", 126 ] 127} 128 129pw_executable("base") { 130 sources = [ "base.cc" ] 131 deps = [ 132 ":size_report", 133 "$dir_pw_bloat:bloat_this_binary", 134 ] 135} 136 137pw_executable("flat_map_base") { 138 sources = [ "flat_map.cc" ] 139 deps = [ 140 ":flat_map", 141 "$dir_pw_bloat:bloat_this_binary", 142 ] 143} 144 145pw_executable("flat_map_alternate_types") { 146 sources = [ "flat_map.cc" ] 147 defines = [ 148 "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_KEY", 149 "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_VALUE", 150 ] 151 deps = [ 152 ":flat_map", 153 "$dir_pw_bloat:bloat_this_binary", 154 ] 155} 156 157pw_executable("inline_deque_base") { 158 sources = [ "inline_deque.cc" ] 159 deps = [ 160 ":inline_deque", 161 "$dir_pw_bloat:bloat_this_binary", 162 ] 163} 164 165pw_executable("inline_deque_alternate_type") { 166 sources = [ "inline_deque.cc" ] 167 defines = [ "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_VALUE" ] 168 deps = [ 169 ":inline_deque", 170 "$dir_pw_bloat:bloat_this_binary", 171 ] 172} 173 174pw_executable("inline_queue_base") { 175 sources = [ "inline_queue.cc" ] 176 deps = [ 177 ":inline_queue", 178 "$dir_pw_bloat:bloat_this_binary", 179 ] 180} 181 182pw_executable("inline_queue_alternate_type") { 183 sources = [ "inline_queue.cc" ] 184 defines = [ "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_VALUE" ] 185 deps = [ 186 ":inline_queue", 187 "$dir_pw_bloat:bloat_this_binary", 188 ] 189} 190 191pw_executable("inline_deque_and_queue") { 192 sources = [ "inline_deque_and_queue.cc" ] 193 deps = [ 194 ":inline_deque", 195 ":inline_queue", 196 "$dir_pw_bloat:bloat_this_binary", 197 ] 198} 199 200pw_executable("intrusive_forward_list_base") { 201 sources = [ "intrusive_forward_list.cc" ] 202 deps = [ 203 ":intrusive_forward_list", 204 "$dir_pw_bloat:bloat_this_binary", 205 ] 206} 207 208pw_executable("intrusive_forward_list_alternate_type") { 209 sources = [ "intrusive_forward_list.cc" ] 210 defines = [ "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_VALUE" ] 211 deps = [ 212 ":intrusive_forward_list", 213 "$dir_pw_bloat:bloat_this_binary", 214 ] 215} 216 217pw_executable("intrusive_list_base") { 218 sources = [ "intrusive_list.cc" ] 219 deps = [ 220 ":intrusive_list", 221 "$dir_pw_bloat:bloat_this_binary", 222 ] 223} 224 225pw_executable("intrusive_list_alternate_type") { 226 sources = [ "intrusive_list.cc" ] 227 defines = [ "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_VALUE" ] 228 deps = [ 229 ":intrusive_list", 230 "$dir_pw_bloat:bloat_this_binary", 231 ] 232} 233 234pw_executable("intrusive_list_and_forward_list") { 235 sources = [ "intrusive_list_and_forward_list.cc" ] 236 deps = [ 237 ":intrusive_forward_list", 238 ":intrusive_list", 239 "$dir_pw_bloat:bloat_this_binary", 240 ] 241} 242 243pw_executable("intrusive_map_base") { 244 sources = [ "intrusive_map.cc" ] 245 deps = [ 246 ":intrusive_map", 247 "$dir_pw_bloat:bloat_this_binary", 248 ] 249} 250 251pw_executable("intrusive_map_alternate_key") { 252 sources = [ "intrusive_map.cc" ] 253 defines = [ "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_KEY" ] 254 deps = [ 255 ":intrusive_map", 256 "$dir_pw_bloat:bloat_this_binary", 257 ] 258} 259 260pw_executable("intrusive_map_alternate_types") { 261 sources = [ "intrusive_map.cc" ] 262 defines = [ 263 "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_KEY", 264 "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_VALUE", 265 ] 266 deps = [ 267 ":intrusive_map", 268 "$dir_pw_bloat:bloat_this_binary", 269 ] 270} 271 272pw_executable("intrusive_multimap_base") { 273 sources = [ "intrusive_multimap.cc" ] 274 deps = [ 275 ":intrusive_multimap", 276 "$dir_pw_bloat:bloat_this_binary", 277 ] 278} 279 280pw_executable("intrusive_multimap_alternate_key") { 281 sources = [ "intrusive_multimap.cc" ] 282 defines = [ "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_KEY" ] 283 deps = [ 284 ":intrusive_multimap", 285 "$dir_pw_bloat:bloat_this_binary", 286 ] 287} 288 289pw_executable("intrusive_multimap_alternate_types") { 290 sources = [ "intrusive_multimap.cc" ] 291 defines = [ 292 "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_KEY", 293 "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_VALUE", 294 ] 295 deps = [ 296 ":intrusive_multimap", 297 "$dir_pw_bloat:bloat_this_binary", 298 ] 299} 300 301pw_executable("intrusive_map_and_multimap") { 302 sources = [ "intrusive_map_and_multimap.cc" ] 303 deps = [ 304 ":intrusive_map", 305 ":intrusive_multimap", 306 "$dir_pw_bloat:bloat_this_binary", 307 ] 308} 309 310pw_executable("intrusive_set_base") { 311 sources = [ "intrusive_set.cc" ] 312 deps = [ 313 ":intrusive_set", 314 "$dir_pw_bloat:bloat_this_binary", 315 ] 316} 317 318pw_executable("intrusive_set_alternate_type") { 319 sources = [ "intrusive_set.cc" ] 320 defines = [ "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_VALUE" ] 321 deps = [ 322 ":intrusive_set", 323 "$dir_pw_bloat:bloat_this_binary", 324 ] 325} 326 327pw_executable("intrusive_multiset_base") { 328 sources = [ "intrusive_multiset.cc" ] 329 deps = [ 330 ":intrusive_multiset", 331 "$dir_pw_bloat:bloat_this_binary", 332 ] 333} 334 335pw_executable("intrusive_multiset_alternate_type") { 336 sources = [ "intrusive_multiset.cc" ] 337 defines = [ "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_VALUE" ] 338 deps = [ 339 ":intrusive_multiset", 340 "$dir_pw_bloat:bloat_this_binary", 341 ] 342} 343 344pw_executable("intrusive_set_and_multiset") { 345 sources = [ "intrusive_set_and_multiset.cc" ] 346 deps = [ 347 ":intrusive_multiset", 348 ":intrusive_set", 349 "$dir_pw_bloat:bloat_this_binary", 350 ] 351} 352 353pw_executable("vector_base") { 354 sources = [ "vector.cc" ] 355 deps = [ 356 ":vector", 357 "$dir_pw_bloat:bloat_this_binary", 358 ] 359} 360 361pw_executable("vector_alternate_size") { 362 sources = [ "vector.cc" ] 363 defines = [ "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_SIZE" ] 364 deps = [ 365 ":vector", 366 "$dir_pw_bloat:bloat_this_binary", 367 ] 368} 369 370pw_executable("vector_alternate_type") { 371 sources = [ "vector.cc" ] 372 defines = [ "PW_CONTAINERS_SIZE_REPORT_ALTERNATE_VALUE" ] 373 deps = [ 374 ":vector", 375 "$dir_pw_bloat:bloat_this_binary", 376 ] 377} 378