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