| # Copyright 2023 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) |
| include($ENV{PW_ROOT}/pw_async2/backend.cmake) |
| |
| pw_add_module_config(pw_async2_CONFIG) |
| |
| pw_add_library(pw_async2.config INTERFACE |
| HEADERS |
| public/pw_async2/internal/config.h |
| PUBLIC_INCLUDES |
| public |
| PUBLIC_DEPS |
| ${pw_async2_CONFIG} |
| ) |
| |
| # TODO: b/481069684 - Remove deprecated alias. |
| pw_add_library(pw_async2.poll INTERFACE |
| PUBLIC_DEPS |
| pw_async2 |
| ) |
| |
| pw_add_test(pw_async2.poll_test |
| SOURCES |
| poll_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.testing |
| ) |
| |
| pw_add_library(pw_async2 STATIC |
| HEADERS |
| public/pw_async2/await.h |
| public/pw_async2/context.h |
| public/pw_async2/dispatcher.h |
| public/pw_async2/future.h |
| public/pw_async2/future_task.h |
| public/pw_async2/internal/lock.h |
| public/pw_async2/internal/logging.h |
| public/pw_async2/runnable_dispatcher.h |
| public/pw_async2/task.h |
| public/pw_async2/waker.h |
| public/pw_async2/poll.h |
| public/pw_async2/internal/poll_internal.h |
| public/pw_async2/try.h |
| public/pw_async2/func_task.h |
| PUBLIC_INCLUDES |
| public |
| PUBLIC_DEPS |
| pw_assert.assert |
| pw_async2.config |
| pw_allocator |
| pw_chrono.system_clock |
| pw_containers.intrusive_forward_list |
| pw_containers.intrusive_queue |
| pw_containers.intrusive_list |
| pw_containers.optional |
| pw_function |
| pw_log |
| pw_log.args |
| pw_memory |
| pw_polyfill |
| pw_preprocessor |
| pw_string.to_string |
| pw_sync.interrupt_spin_lock |
| pw_sync.lock_annotations |
| pw_tokenizer |
| pw_memory.no_destructor |
| pw_third_party.fuchsia.stdcompat |
| PRIVATE_DEPS |
| pw_assert.check |
| pw_async2._yield |
| pw_thread.sleep |
| SOURCES |
| dispatcher.cc |
| future.cc |
| runnable_dispatcher.cc |
| task.cc |
| waker.cc |
| ) |
| |
| pw_add_library(pw_async2._yield INTERFACE |
| HEADERS |
| private/pw_async2_private/yield.h |
| PUBLIC_INCLUDES |
| private |
| PUBLIC_DEPS |
| pw_chrono.system_clock |
| pw_thread.sleep |
| ) |
| |
| pw_add_library(pw_async2.dispatcher INTERFACE |
| PUBLIC_DEPS |
| pw_async2 |
| ) |
| |
| pw_add_library(pw_async2.testing STATIC |
| HEADERS |
| public/pw_async2/dispatcher_for_test.h |
| PUBLIC_DEPS |
| pw_async2 |
| ${pw_async2.dispatcher_for_test_BACKEND} |
| PUBLIC_INCLUDES |
| public |
| SOURCES |
| dispatcher_for_test.cc |
| ) |
| |
| pw_add_test(pw_async2.dispatcher_test |
| SOURCES |
| dispatcher_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.testing |
| pw_containers.vector |
| ) |
| |
| pw_add_library(pw_async2.basic_dispatcher INTERFACE |
| HEADERS |
| public/pw_async2/basic_dispatcher.h |
| PUBLIC_DEPS |
| pw_async2 |
| pw_sync.thread_notification |
| PUBLIC_INCLUDES |
| public |
| ) |
| |
| pw_add_library(pw_async2.notified_dispatcher INTERFACE |
| HEADERS |
| public/pw_async2/notified_dispatcher.h |
| PUBLIC_DEPS |
| pw_async2 |
| pw_sync.thread_notification |
| PUBLIC_INCLUDES |
| public |
| ) |
| |
| pw_add_library(pw_async2.basic_dispatcher_for_test INTERFACE |
| HEADERS |
| dispatcher_for_test_public_overrides/pw_async2_backend/native_dispatcher_for_test.h |
| PUBLIC_DEPS |
| pw_async2.basic_dispatcher |
| PUBLIC_INCLUDES |
| dispatcher_for_test_public_overrides |
| ) |
| |
| pw_add_library(pw_async2.epoll_dispatcher STATIC |
| HEADERS |
| public/pw_async2/epoll_dispatcher.h |
| SOURCES |
| epoll_dispatcher.cc |
| PUBLIC_INCLUDES |
| public |
| PUBLIC_DEPS |
| pw_assert |
| pw_async2 |
| pw_status |
| PRIVATE_DEPS |
| pw_log |
| ) |
| |
| pw_add_library(pw_async2.epoll_dispatcher_for_test INTERFACE |
| HEADERS |
| epoll_dispatcher_for_test_public_overrides/pw_async2_backend/native_dispatcher_for_test.h |
| PUBLIC_DEPS |
| pw_async2.epoll_dispatcher |
| PUBLIC_INCLUDES |
| epoll_dispatcher_for_test_public_overrides |
| ) |
| |
| pw_add_test(pw_async2.future_test |
| SOURCES |
| future_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.select |
| pw_async2.testing |
| pw_compilation_testing._pigweed_only_negative_compilation |
| ) |
| |
| pw_add_test(pw_async2.future_task_test |
| SOURCES |
| future_task_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.testing |
| pw_async2.value_future |
| ) |
| |
| pw_add_library(pw_async2.future_timeout INTERFACE |
| HEADERS |
| public/pw_async2/future_timeout.h |
| PUBLIC_DEPS |
| pw_assert.assert |
| pw_async2.channel |
| pw_async2 |
| pw_async2.system_time_provider |
| pw_async2.time_provider |
| pw_async2.value_future |
| pw_chrono.system_clock |
| pw_function |
| pw_preprocessor |
| pw_status |
| pw_third_party.fuchsia.stdcompat |
| PUBLIC_INCLUDES |
| public |
| ) |
| |
| pw_add_test(pw_async2.future_timeout_test |
| SOURCES |
| future_timeout_test.cc |
| PRIVATE_DEPS |
| pw_async2.channel |
| pw_async2 |
| pw_async2.future_timeout |
| pw_async2.simulated_time_provider |
| pw_async2.testing |
| pw_async2.value_future |
| pw_chrono.system_clock |
| pw_compilation_testing._pigweed_only_negative_compilation |
| ) |
| |
| pw_add_library(pw_async2.value_future STATIC |
| SOURCES |
| value_future.cc |
| HEADERS |
| public/pw_async2/value_future.h |
| PUBLIC_INCLUDES |
| public |
| PUBLIC_DEPS |
| pw_async2 |
| PRIVATE_DEPS |
| pw_assert.assert |
| pw_assert.check |
| pw_polyfill |
| pw_sync.interrupt_spin_lock |
| ) |
| |
| pw_add_test(pw_async2.value_future_test |
| SOURCES |
| value_future_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.testing |
| pw_async2.value_future |
| ) |
| |
| pw_add_test(pw_async2.value_future_thread_test |
| SOURCES |
| value_future_thread_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.callback_task |
| pw_async2.testing |
| pw_async2.value_future |
| pw_thread.sleep |
| pw_thread.test_thread_context |
| pw_thread.thread |
| pw_thread.yield |
| ) |
| |
| pw_add_library(pw_async2.box INTERFACE |
| HEADERS |
| public/pw_async2/box.h |
| PUBLIC_DEPS |
| pw_allocator |
| pw_async2 |
| PUBLIC_INCLUDES |
| public |
| ) |
| |
| pw_add_test(pw_async2.box_test |
| SOURCES |
| box_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.box |
| pw_async2.channel |
| pw_async2.select |
| pw_async2.testing |
| pw_async2.transform |
| pw_async2.value_future |
| pw_allocator.testing |
| ) |
| |
| pw_add_library(pw_async2.transform INTERFACE |
| HEADERS |
| public/pw_async2/transform.h |
| PUBLIC_DEPS |
| pw_async2 |
| pw_async2.value_future |
| PUBLIC_INCLUDES |
| public |
| ) |
| |
| pw_add_test(pw_async2.transform_test |
| SOURCES |
| transform_test.cc |
| PRIVATE_DEPS |
| pw_async2.channel |
| pw_async2 |
| pw_async2.select |
| pw_async2.testing |
| pw_async2.transform |
| pw_async2.value_future |
| ) |
| |
| # TODO: b/481069684 - Remove deprecated alias. |
| pw_add_library(pw_async2.func_task INTERFACE |
| PUBLIC_DEPS |
| pw_async2 |
| ) |
| |
| pw_add_library(pw_async2.pend_func_task INTERFACE |
| PUBLIC_DEPS |
| pw_async2 |
| ) |
| |
| pw_add_test(pw_async2.func_task_test |
| SOURCES |
| func_task_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.testing |
| ) |
| |
| pw_add_library(pw_async2.callback_task INTERFACE |
| HEADERS |
| public/pw_async2/callback_task.h |
| PUBLIC_DEPS |
| pw_async2 |
| pw_function |
| PUBLIC_INCLUDES |
| public |
| ) |
| |
| pw_add_test(pw_async2.callback_task_test |
| SOURCES |
| callback_task_test.cc |
| PRIVATE_DEPS |
| pw_async2.callback_task |
| pw_async2.testing |
| pw_async2.value_future |
| pw_function |
| ) |
| |
| pw_add_test(pw_async2.allocate_task_test |
| SOURCES |
| allocate_task_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.testing |
| pw_async2.value_future |
| pw_allocator.testing |
| pw_function |
| pw_status |
| ) |
| |
| pw_add_library(pw_async2.notification INTERFACE |
| HEADERS |
| public/pw_async2/notification.h |
| PUBLIC_DEPS |
| pw_async2.value_future |
| PUBLIC_INCLUDES |
| public |
| ) |
| |
| pw_add_test(pw_async2.notification_test |
| SOURCES |
| notification_test.cc |
| PRIVATE_DEPS |
| pw_async2.notification |
| pw_async2.testing |
| pw_async2 |
| ) |
| |
| if("cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES) |
| pw_add_library(pw_async2.coro STATIC |
| HEADERS |
| public/pw_async2/coro.h |
| public/pw_async2/coro_task.h |
| public/pw_async2/fallible_coro_task.h |
| SOURCES |
| coro.cc |
| coro_task.cc |
| PRIVATE_DEPS |
| pw_assert.check |
| pw_bytes.alignment |
| pw_log |
| PUBLIC_DEPS |
| pw_allocator |
| pw_assert.assert |
| pw_async2 |
| pw_containers.optional |
| pw_function |
| PUBLIC_INCLUDES |
| public |
| ) |
| |
| pw_add_test(pw_async2.coro_test |
| SOURCES |
| coro_test.cc |
| PRIVATE_DEPS |
| pw_allocator.null_allocator |
| pw_allocator.testing |
| pw_async2.coro |
| pw_async2.testing |
| pw_async2.value_future |
| pw_containers._test_helpers |
| pw_status |
| pw_compilation_testing._pigweed_only_negative_compilation |
| ) |
| |
| pw_add_test(pw_async2.fallible_coro_task_test |
| SOURCES |
| fallible_coro_task_test.cc |
| PRIVATE_DEPS |
| pw_allocator.null_allocator |
| pw_allocator.testing |
| pw_async2 |
| pw_async2.coro |
| pw_async2.testing |
| pw_async2.value_future |
| pw_containers._test_helpers |
| pw_status |
| ) |
| |
| pw_add_test(pw_async2.coro_task_test |
| SOURCES |
| coro_task_test.cc |
| PRIVATE_DEPS |
| pw_async2.coro |
| pw_async2 |
| pw_async2.testing |
| pw_allocator.testing |
| pw_status |
| ) |
| |
| pw_add_test(pw_async2.allocate_task_coro_test |
| SOURCES |
| allocate_task_coro_test.cc |
| PRIVATE_DEPS |
| pw_async2.coro |
| pw_async2 |
| pw_async2.testing |
| pw_allocator.testing |
| ) |
| endif() |
| |
| pw_add_library(pw_async2.time_provider STATIC |
| HEADERS |
| public/pw_async2/time_provider.h |
| SOURCES |
| time_provider.cc |
| PUBLIC_DEPS |
| pw_async2 |
| pw_chrono.virtual_clock |
| pw_containers.intrusive_list |
| pw_function |
| pw_memory |
| pw_sync.interrupt_spin_lock |
| pw_memory.no_destructor |
| PUBLIC_INCLUDES |
| public |
| ) |
| |
| pw_add_library(pw_async2.system_time_provider STATIC |
| HEADERS |
| public/pw_async2/system_time_provider.h |
| SOURCES |
| system_time_provider.cc |
| PUBLIC_DEPS |
| pw_chrono.system_clock |
| pw_async2.time_provider |
| PRIVATE_DEPS |
| pw_chrono.system_timer |
| pw_memory.no_destructor |
| PUBLIC_INCLUDES |
| public |
| ) |
| |
| if((NOT "${pw_chrono.system_clock_BACKEND}" STREQUAL "") AND |
| (NOT "${pw_sync.interrupt_spin_lock_BACKEND}" STREQUAL "")) |
| pw_add_test(pw_async2.system_time_provider_test |
| SOURCES |
| system_time_provider_test.cc |
| PRIVATE_DEPS |
| pw_async2.system_time_provider |
| pw_async2.testing |
| pw_chrono.system_clock |
| GROUPS |
| modules |
| pw_async2 |
| ) |
| endif() |
| |
| pw_add_library(pw_async2.simulated_time_provider INTERFACE |
| HEADERS |
| public/pw_async2/simulated_time_provider.h |
| PUBLIC_INCLUDES |
| public |
| PUBLIC_DEPS |
| pw_async2.time_provider |
| pw_sync.interrupt_spin_lock |
| ) |
| |
| if((NOT "${pw_chrono.system_clock_BACKEND}" STREQUAL "") AND |
| (NOT "${pw_sync.interrupt_spin_lock_BACKEND}" STREQUAL "")) |
| pw_add_test(pw_async2.simulated_time_provider_test |
| SOURCES |
| simulated_time_provider_test.cc |
| PRIVATE_DEPS |
| pw_async2.simulated_time_provider |
| pw_async2.testing |
| pw_chrono.system_clock |
| GROUPS |
| modules |
| pw_async2 |
| ) |
| endif() |
| |
| pw_add_library(pw_async2.join INTERFACE |
| HEADERS |
| public/pw_async2/join.h |
| PUBLIC_DEPS |
| pw_async2 |
| PUBLIC_INCLUDES |
| public |
| ) |
| |
| pw_add_test(pw_async2.join_test |
| SOURCES |
| join_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.join |
| pw_async2.testing |
| pw_async2.value_future |
| pw_compilation_testing._pigweed_only_negative_compilation |
| GROUPS |
| modules |
| pw_async2 |
| ) |
| |
| pw_add_library(pw_async2.select INTERFACE |
| HEADERS |
| public/pw_async2/select.h |
| PUBLIC_INCLUDES |
| public |
| PUBLIC_DEPS |
| pw_async2 |
| pw_containers.optional_tuple |
| ) |
| |
| pw_add_test(pw_async2.select_test |
| SOURCES |
| select_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.select |
| pw_async2.testing |
| pw_async2.value_future |
| pw_unit_test.constexpr |
| GROUPS |
| modules |
| pw_async2 |
| ) |
| |
| pw_add_library(pw_async2.cancellable_task INTERFACE |
| HEADERS |
| public/pw_async2/cancellable_task.h |
| PUBLIC_DEPS |
| pw_async2 |
| PUBLIC_INCLUDES |
| public |
| ) |
| |
| pw_add_test(pw_async2.cancellable_task_test |
| SOURCES |
| cancellable_task_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.cancellable_task |
| pw_async2.testing |
| pw_function |
| ) |
| |
| pw_add_library(pw_async2.channel STATIC |
| HEADERS |
| public/pw_async2/channel.h |
| SOURCES |
| channel.cc |
| PUBLIC_DEPS |
| pw_assert |
| pw_async2 |
| pw_async2.callback_task |
| pw_allocator |
| pw_containers.deque |
| pw_numeric.checked_arithmetic |
| pw_sync.interrupt_spin_lock |
| pw_sync.timed_thread_notification |
| pw_third_party.fuchsia.stdcompat |
| PUBLIC_INCLUDES |
| public |
| ) |
| |
| pw_add_test(pw_async2.channel_test |
| SOURCES |
| channel_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.channel |
| pw_async2.testing |
| pw_allocator.testing |
| pw_containers.vector |
| ) |
| |
| pw_add_test(pw_async2.channel_thread_test |
| SOURCES |
| channel_thread_test.cc |
| PRIVATE_DEPS |
| pw_async2.channel |
| pw_async2 |
| pw_async2.testing |
| pw_containers.vector |
| pw_thread.test_thread_context |
| pw_thread.thread |
| ) |
| |
| if((NOT "${pw_unit_test_BACKEND}" STREQUAL "") AND |
| (NOT "${pw_unit_test_BACKEND}" STREQUAL "pw_unit_test:light")) |
| pw_add_test(pw_async2.channel_typed_test |
| SOURCES |
| channel_typed_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.channel |
| pw_async2.testing |
| pw_allocator.testing |
| pw_containers.vector |
| ) |
| endif() |
| |
| pw_add_test(pw_async2.task_test |
| SOURCES |
| task_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.testing |
| pw_sync.binary_semaphore |
| pw_sync.mutex |
| pw_thread.sleep |
| pw_thread.test_thread_context |
| pw_thread.thread |
| ) |
| |
| pw_add_test(pw_async2.dispatcher_thread_test |
| SOURCES |
| dispatcher_thread_test.cc |
| PRIVATE_DEPS |
| pw_async2 |
| pw_async2.testing |
| pw_sync.thread_notification |
| pw_thread.sleep |
| pw_thread.test_thread_context |
| pw_thread.thread |
| ) |
| |
| pw_add_test(pw_async2.dispatcher_stress_test |
| SOURCES |
| dispatcher_stress_test.cc |
| PRIVATE_DEPS |
| pw_assert |
| pw_async2 |
| pw_async2.notified_dispatcher |
| pw_allocator.libc_allocator |
| pw_containers.dynamic_queue |
| pw_containers.dynamic_vector |
| pw_log |
| pw_sync.lock_annotations |
| pw_sync.mutex |
| pw_sync.thread_notification |
| pw_thread.test_thread_context |
| pw_thread.thread |
| pw_thread.yield |
| ) |
| |
| if("cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES) |
| pw_add_test(pw_async2.channel_coro_test |
| SOURCES |
| channel_coro_test.cc |
| PRIVATE_DEPS |
| pw_async2.channel |
| pw_async2.coro |
| pw_async2 |
| pw_async2.testing |
| pw_allocator.testing |
| pw_containers.vector |
| ) |
| endif() |