pw_stream: Extend CMake support

Change-Id: Iea6dde98cdd76ffefe931817a22ddfb1470c7c8f
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/79961
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Ewout van Bekkum <ewout@google.com>
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
diff --git a/pw_stream/CMakeLists.txt b/pw_stream/CMakeLists.txt
index 430dd4b..a149210 100644
--- a/pw_stream/CMakeLists.txt
+++ b/pw_stream/CMakeLists.txt
@@ -15,13 +15,21 @@
 include($ENV{PW_ROOT}/pw_build/pigweed.cmake)
 
 pw_add_module_library(pw_stream
+  HEADERS
+    public/pw_stream/memory_stream.h
+    public/pw_stream/null_stream.h
+    public/pw_stream/seek.h
+    public/pw_stream/stream.h
+  PUBLIC_INCLUDES
+    public
   SOURCES
     memory_stream.cc
   PUBLIC_DEPS
     pw_assert
     pw_bytes
+    pw_polyfill
+    pw_polyfill.span
     pw_result
-    pw_span
     pw_status
 )
 if(Zephyr_FOUND AND CONFIG_PIGWEED_STREAM)
@@ -29,23 +37,50 @@
 endif()
 
 pw_add_module_library(pw_stream.socket_stream
-  SOURCES
-    socket_stream.cc
+  HEADERS
+    public/pw_stream/socket_stream.h
+  PUBLIC_INCLUDES
+    public
   PUBLIC_DEPS
     pw_stream
+  SOURCES
+    socket_stream.cc
+  PRIVATE_DEPS
+    pw_log
 )
 
 pw_add_module_library(pw_stream.sys_io_stream
+  HEADERS
+    public/pw_stream/sys_io_stream.h
+  PUBLIC_INCLUDES
+    public
   PUBLIC_DEPS
     pw_stream
     pw_sys_io
 )
 
 pw_add_module_library(pw_stream.std_file_stream
-  SOURCES
-    std_file_stream.cc
+  HEADERS
+    public/pw_stream/std_file_stream.h
+  PUBLIC_INCLUDES
+    public
   PUBLIC_DEPS
     pw_stream
+  SOURCES
+    std_file_stream.cc
+)
+
+pw_add_module_library(pw_stream.interval_reader
+  HEADERS
+    public/pw_stream/interval_reader.h
+  PUBLIC_INCLUDES
+    public
+  PUBLIC_DEPS
+    pw_assert
+    pw_status
+    pw_stream
+  SOURCES
+    interval_reader.cc
 )
 
 pw_add_test(pw_stream.memory_stream_test
@@ -57,3 +92,33 @@
     modules
     pw_stream
 )
+
+pw_add_test(pw_stream.seek_test
+  SOURCES
+    seek_test.cc
+  DEPS
+    pw_stream
+  GROUPS
+    modules
+    pw_stream
+)
+
+pw_add_test(pw_stream.stream_test
+  SOURCES
+    stream_test.cc
+  DEPS
+    pw_stream
+  GROUPS
+    modules
+    pw_stream
+)
+
+pw_add_test(pw_stream.interval_reader_test
+  SOURCES
+    interval_reader_test.cc
+  DEPS
+    pw_stream.interval_reader
+  GROUPS
+    modules
+    pw_stream
+)