xref: /aosp_15_r20/external/pigweed/pw_stream/CMakeLists.txt (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1# Copyright 2020 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)
16
17pw_add_library(pw_stream STATIC
18  HEADERS
19    public/pw_stream/memory_stream.h
20    public/pw_stream/null_stream.h
21    public/pw_stream/seek.h
22    public/pw_stream/stream.h
23  PUBLIC_INCLUDES
24    public
25  SOURCES
26    memory_stream.cc
27  PUBLIC_DEPS
28    pw_assert
29    pw_bytes
30    pw_polyfill
31    pw_result
32    pw_span
33    pw_status
34    pw_toolchain._sibling_cast
35)
36
37pw_add_library(pw_stream.socket_stream STATIC
38  HEADERS
39    public/pw_stream/socket_stream.h
40  PUBLIC_INCLUDES
41    public
42  PUBLIC_DEPS
43    pw_stream
44    pw_sync.mutex
45  SOURCES
46    socket_stream.cc
47  PRIVATE_DEPS
48    pw_log
49    pw_string
50)
51
52pw_add_library(pw_stream.sys_io_stream INTERFACE
53  HEADERS
54    public/pw_stream/sys_io_stream.h
55  PUBLIC_INCLUDES
56    public
57  PUBLIC_DEPS
58    pw_stream
59    pw_sys_io
60)
61
62pw_add_library(pw_stream.std_file_stream STATIC
63  HEADERS
64    public/pw_stream/std_file_stream.h
65  PUBLIC_INCLUDES
66    public
67  PUBLIC_DEPS
68    pw_stream
69  SOURCES
70    std_file_stream.cc
71)
72
73pw_add_library(pw_stream.interval_reader STATIC
74  HEADERS
75    public/pw_stream/interval_reader.h
76  PUBLIC_INCLUDES
77    public
78  PUBLIC_DEPS
79    pw_assert
80    pw_status
81    pw_stream
82  SOURCES
83    interval_reader.cc
84)
85
86pw_add_library(pw_stream.mpsc_stream STATIC
87  HEADERS
88    public/pw_stream/mpsc_stream.h
89  PUBLIC_INCLUDES
90    public
91  PUBLIC_DEPS
92    pw_assert
93    pw_bytes
94    pw_chrono.system_clock
95    pw_containers.intrusive_list
96    pw_function
97    pw_status
98    pw_stream
99    pw_sync.lock_annotations
100    pw_sync.mutex
101    pw_sync.timed_thread_notification
102  SOURCES
103    mpsc_stream.cc
104)
105
106pw_add_test(pw_stream.memory_stream_test
107  SOURCES
108    memory_stream_test.cc
109  PRIVATE_DEPS
110    pw_stream
111  GROUPS
112    modules
113    pw_stream
114)
115
116pw_add_test(pw_stream.null_stream_test
117  SOURCES
118    null_stream_test.cc
119  PRIVATE_DEPS
120    pw_stream
121  GROUPS
122    modules
123    pw_stream
124)
125
126pw_add_test(pw_stream.seek_test
127  SOURCES
128    seek_test.cc
129  PRIVATE_DEPS
130    pw_stream
131  GROUPS
132    modules
133    pw_stream
134)
135
136pw_add_test(pw_stream.stream_test
137  SOURCES
138    stream_test.cc
139  PRIVATE_DEPS
140    pw_stream
141  GROUPS
142    modules
143    pw_stream
144)
145
146pw_add_test(pw_stream.interval_reader_test
147  SOURCES
148    interval_reader_test.cc
149  PRIVATE_DEPS
150    pw_stream.interval_reader
151  GROUPS
152    modules
153    pw_stream
154)
155
156pw_add_test(pw_stream.mpsc_stream_test
157  SOURCES
158    mpsc_stream_test.cc
159  PRIVATE_DEPS
160    pw_stream.mpsc_stream
161    pw_containers.vector
162    pw_fuzzer.fuzztest
163    pw_random
164    pw_thread.thread
165    pw_thread.test_thread_context
166  GROUPS
167    modules
168    pw_stream
169)
170