# Copyright 2019 The Pigweed Authors # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy of # the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations under # the License. import("//build_overrides/pigweed.gni") import("$dir_pw_bloat/bloat.gni") import("$dir_pw_build/target_types.gni") import("$dir_pw_docgen/docs.gni") import("$dir_pw_toolchain/traits.gni") import("$dir_pw_unit_test/test.gni") config("public_include_path") { include_dirs = [ "public" ] } group("pw_containers") { public_deps = [ ":algorithm", ":flat_map", ":inline_deque", ":inline_queue", ":intrusive_list", ":vector", ] } pw_source_set("algorithm") { public_configs = [ ":public_include_path" ] public = [ "public/pw_containers/algorithm.h", "public/pw_containers/internal/algorithm_internal.h", ] } pw_source_set("filtered_view") { public_configs = [ ":public_include_path" ] public = [ "public/pw_containers/filtered_view.h" ] public_deps = [ dir_pw_assert, dir_pw_preprocessor, ] } pw_source_set("flat_map") { public_configs = [ ":public_include_path" ] public = [ "public/pw_containers/flat_map.h" ] public_deps = [ "$dir_pw_assert:assert" ] } pw_source_set("inline_deque") { public_configs = [ ":public_include_path" ] public_deps = [ ":raw_storage", dir_pw_assert, dir_pw_preprocessor, dir_pw_span, ] public = [ "public/pw_containers/inline_deque.h" ] } pw_source_set("inline_queue") { public_configs = [ ":public_include_path" ] public_deps = [ ":inline_deque" ] public = [ "public/pw_containers/inline_queue.h" ] } pw_source_set("iterator") { public_configs = [ ":public_include_path" ] public_deps = [ dir_pw_polyfill ] public = [ "public/pw_containers/iterator.h" ] } pw_source_set("raw_storage") { public_configs = [ ":public_include_path" ] public = [ "public/pw_containers/internal/raw_storage.h" ] visibility = [ ":*" ] } pw_source_set("test_helpers") { public = [ "pw_containers_private/test_helpers.h" ] sources = [ "test_helpers.cc" ] visibility = [ ":*" ] } pw_source_set("to_array") { public_configs = [ ":public_include_path" ] public = [ "public/pw_containers/to_array.h" ] } pw_source_set("inline_var_len_entry_queue") { public_configs = [ ":public_include_path" ] public_deps = [ dir_pw_varint ] deps = [ dir_pw_assert ] public = [ "public/pw_containers/inline_var_len_entry_queue.h" ] sources = [ "inline_var_len_entry_queue.c" ] # TODO: b/259746255 - Remove this when everything compiles with -Wconversion. configs = [ "$dir_pw_build:conversion_warnings" ] } pw_source_set("vector") { public_configs = [ ":public_include_path" ] public_deps = [ dir_pw_assert, dir_pw_preprocessor, ] public = [ "public/pw_containers/vector.h" ] } pw_source_set("wrapped_iterator") { public_configs = [ ":public_include_path" ] public = [ "public/pw_containers/wrapped_iterator.h" ] } pw_source_set("intrusive_list") { public_configs = [ ":public_include_path" ] public = [ "public/pw_containers/internal/intrusive_list_impl.h", "public/pw_containers/intrusive_list.h", ] sources = [ "intrusive_list.cc" ] deps = [ dir_pw_assert ] } pw_test_group("tests") { tests = [ ":algorithm_test", ":filtered_view_test", ":flat_map_test", ":inline_deque_test", ":inline_queue_test", ":intrusive_list_test", ":raw_storage_test", ":to_array_test", ":inline_var_len_entry_queue_test", ":vector_test", ":wrapped_iterator_test", ] } pw_test("algorithm_test") { sources = [ "algorithm_test.cc" ] deps = [ ":algorithm", ":flat_map", ":intrusive_list", ":vector", dir_pw_span, ] # TODO: b/259746255 - Remove this when everything compiles with -Wconversion. configs = [ "$dir_pw_build:conversion_warnings" ] } pw_test("filtered_view_test") { sources = [ "filtered_view_test.cc" ] deps = [ ":algorithm", ":filtered_view", ":flat_map", ":intrusive_list", dir_pw_span, ] # TODO: b/259746255 - Remove this when everything compiles with -Wconversion. configs = [ "$dir_pw_build:conversion_warnings" ] } pw_test("flat_map_test") { sources = [ "flat_map_test.cc" ] deps = [ ":flat_map", dir_pw_polyfill, ] # TODO: b/259746255 - Remove this when everything compiles with -Wconversion. configs = [ "$dir_pw_build:conversion_warnings" ] } pw_test("inline_deque_test") { sources = [ "inline_deque_test.cc" ] deps = [ ":algorithm", ":inline_deque", ":test_helpers", ] negative_compilation_tests = true # TODO: b/259746255 - Remove this when everything compiles with -Wconversion. configs = [ "$dir_pw_build:conversion_warnings" ] } pw_test("inline_queue_test") { sources = [ "inline_queue_test.cc" ] deps = [ ":algorithm", ":inline_queue", ":test_helpers", ] negative_compilation_tests = true # TODO: b/259746255 - Remove this when everything compiles with -Wconversion. configs = [ "$dir_pw_build:conversion_warnings" ] } pw_test("raw_storage_test") { sources = [ "raw_storage_test.cc" ] deps = [ ":raw_storage", ":test_helpers", ] # TODO: b/259746255 - Remove this when everything compiles with -Wconversion. configs = [ "$dir_pw_build:conversion_warnings" ] } pw_test("to_array_test") { sources = [ "to_array_test.cc" ] deps = [ ":to_array" ] # TODO: b/259746255 - Remove this when everything compiles with -Wconversion. configs = [ "$dir_pw_build:conversion_warnings" ] } pw_test("inline_var_len_entry_queue_test") { sources = [ "inline_var_len_entry_queue_test.cc", "pw_containers_private/inline_var_len_entry_queue_test_oracle.h", ] deps = [ ":inline_var_len_entry_queue", dir_pw_bytes, ] # TODO: b/259746255 - Remove this when everything compiles with -Wconversion. configs = [ "$dir_pw_build:conversion_warnings" ] } pw_test("vector_test") { sources = [ "vector_test.cc" ] deps = [ ":test_helpers", ":vector", ] negative_compilation_tests = true # TODO: b/259746255 - Remove this when everything compiles with -Wconversion. configs = [ "$dir_pw_build:conversion_warnings" ] } pw_test("wrapped_iterator_test") { sources = [ "wrapped_iterator_test.cc" ] deps = [ ":wrapped_iterator" ] # TODO: b/259746255 - Remove this when everything compiles with -Wconversion. configs = [ "$dir_pw_build:conversion_warnings" ] } pw_test("intrusive_list_test") { sources = [ "intrusive_list_test.cc" ] deps = [ ":intrusive_list", ":vector", "$dir_pw_preprocessor", ] negative_compilation_tests = true # TODO: b/259746255 - Remove this when everything compiles with -Wconversion. configs = [ "$dir_pw_build:conversion_warnings" ] } pw_doc_group("docs") { sources = [ "docs.rst" ] report_deps = [ ":containers_size_report" ] } pw_size_diff("containers_size_report") { title = "Pigweed containers size report" binaries = [ { target = "size_report:linked_list_one_item" base = "size_report:base" label = "linked list one item" }, { target = "size_report:linked_list_two_item" base = "size_report:base" label = "linked list two item" }, { target = "size_report:linked_list_four_item" base = "size_report:base" label = "linked list four item" }, { target = "size_report:intrusive_list_one_item" base = "size_report:base" label = "intrusive list one item" }, { target = "size_report:intrusive_list_two_item" base = "size_report:base" label = "intrusive list two item" }, { target = "size_report:intrusive_list_four_item" base = "size_report:base" label = "intrusive list four item" }, ] }