# Copyright 2024 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. include($ENV{PW_ROOT}/pw_build/pigweed.cmake) pw_add_library(pw_multibuf.chunk STATIC HEADERS public/pw_multibuf/chunk.h PUBLIC_INCLUDES public PUBLIC_DEPS pw_assert pw_bytes pw_preprocessor pw_span pw_sync.interrupt_spin_lock PRIVATE_DEPS pw_assert.check SOURCES chunk.cc ) pw_add_library(pw_multibuf.header_chunk_region_tracker INTERFACE HEADERS public/pw_multibuf/header_chunk_region_tracker.h PUBLIC_INCLUDES public PUBLIC_DEPS pw_allocator.allocator pw_bytes pw_multibuf.chunk ) pw_add_library(pw_multibuf.single_chunk_region_tracker INTERFACE HEADERS public/pw_multibuf/single_chunk_region_tracker.h PUBLIC_INCLUDES public PUBLIC_DEPS pw_assert pw_bytes pw_multibuf.chunk ) pw_add_test(pw_multibuf.chunk_test SOURCES chunk_test.cc PRIVATE_DEPS pw_allocator.testing pw_multibuf.chunk pw_multibuf.header_chunk_region_tracker GROUPS modules pw_multibuf ) pw_add_test(pw_multibuf.header_chunk_region_tracker_test SOURCES header_chunk_region_tracker_test.cc PRIVATE_DEPS pw_allocator.testing pw_multibuf.chunk pw_multibuf.header_chunk_region_tracker pw_status GROUPS modules pw_multibuf ) pw_add_test(pw_multibuf.single_chunk_region_tracker_test SOURCES single_chunk_region_tracker_test.cc PRIVATE_DEPS pw_multibuf.chunk pw_multibuf.single_chunk_region_tracker GROUPS modules pw_multibuf ) pw_add_library(pw_multibuf STATIC HEADERS public/pw_multibuf/multibuf.h PUBLIC_INCLUDES public PUBLIC_DEPS pw_multibuf.chunk pw_preprocessor SOURCES multibuf.cc ) pw_add_test(pw_multibuf.multibuf_test SOURCES multibuf_test.cc PRIVATE_DEPS pw_multibuf pw_multibuf._internal_test_utils GROUPS modules pw_multibuf ) pw_add_library(pw_multibuf.allocator STATIC HEADERS public/pw_multibuf/allocator.h PUBLIC_INCLUDES public PUBLIC_DEPS pw_async2.dispatcher pw_async2.poll pw_multibuf pw_result SOURCES allocator.cc ) pw_add_test(pw_multibuf.allocator_test SOURCES allocator_test.cc PRIVATE_DEPS pw_async2.dispatcher pw_async2.poll pw_multibuf.allocator GROUPS modules pw_multibuf ) pw_add_library(pw_multibuf.simple_allocator STATIC HEADERS public/pw_multibuf/simple_allocator.h PUBLIC_INCLUDES public PUBLIC_DEPS pw_allocator.allocator pw_containers.intrusive_list pw_multibuf pw_multibuf.allocator SOURCES simple_allocator.cc ) pw_add_test(pw_multibuf.simple_allocator_test SOURCES simple_allocator_test.cc PRIVATE_DEPS pw_multibuf.simple_allocator pw_allocator.testing pw_allocator.null_allocator GROUPS modules pw_multibuf ) pw_add_library(pw_multibuf.stream STATIC HEADERS public/pw_multibuf/stream.h PUBLIC_INCLUDES public PUBLIC_DEPS pw_multibuf pw_stream SOURCES stream.cc ) pw_add_test(pw_multibuf.stream_test SOURCES stream_test.cc PRIVATE_DEPS pw_allocator.testing pw_bytes pw_multibuf.stream pw_multibuf._internal_test_utils GROUPS modules pw_multibuf ) pw_add_library(pw_multibuf.testing INTERFACE HEADERS public/pw_multibuf/simple_allocator_for_test.h PUBLIC_INCLUDES public PUBLIC_DEPS pw_assert pw_allocator.testing pw_multibuf.simple_allocator ) pw_add_library(pw_multibuf._internal_test_utils INTERFACE HEADERS pw_multibuf_private/test_utils.h PUBLIC_DEPS pw_assert pw_allocator.testing pw_bytes pw_multibuf.chunk pw_multibuf.header_chunk_region_tracker )