xref: /aosp_15_r20/external/pigweed/pw_async/CMakeLists.txt (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1# Copyright 2023 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
15include($ENV{PW_ROOT}/pw_build/pigweed.cmake)
16include($ENV{PW_ROOT}/pw_async/backend.cmake)
17
18pw_add_library(pw_async.types INTERFACE
19  HEADERS
20    public/pw_async/context.h
21    public/pw_async/task_function.h
22  PUBLIC_INCLUDES
23    public
24  PUBLIC_DEPS
25    pw_function
26    pw_status
27)
28
29pw_add_facade(pw_async.task INTERFACE
30  BACKEND
31    pw_async.task_BACKEND
32  HEADERS
33    public/pw_async/task.h
34  PUBLIC_INCLUDES
35    public
36  PUBLIC_DEPS
37    pw_async.types
38    pw_function
39    pw_status
40)
41
42pw_add_facade(pw_async.dispatcher INTERFACE
43  BACKEND
44    pw_async.dispatcher_BACKEND
45  HEADERS
46    public/pw_async/dispatcher.h
47    public/pw_async/function_dispatcher.h
48  PUBLIC_INCLUDES
49    public
50  PUBLIC_DEPS
51    pw_async.types
52    pw_chrono.system_clock
53    pw_function
54    pw_status
55)
56
57pw_add_facade(pw_async.fake_dispatcher INTERFACE
58  BACKEND
59    pw_async.fake_dispatcher_BACKEND
60  HEADERS
61    public/pw_async/fake_dispatcher.h
62  PUBLIC_INCLUDES
63    public
64  PUBLIC_DEPS
65    pw_async.dispatcher
66)
67
68pw_add_library(pw_async.heap_dispatcher STATIC
69  HEADERS
70    public/pw_async/heap_dispatcher.h
71  SOURCES
72    heap_dispatcher.cc
73  PRIVATE_DEPS
74    pw_result
75  PUBLIC_DEPS
76    pw_async.dispatcher
77    pw_async.task
78    pw_async.types
79)
80