pw_stream: Update CMake build

- Split the CMake build into separate libraries so that the socket
  stream code is not automatically built.
- Fix public/private deps in the GN build.
- Add pw_rpc/system_server/CMakeLists.txt.
- In the CMake presubmit step, install Nanopb and build CMake's pw_apps.

Change-Id: Id29673d5d26e30e1b196768b8667805ec3094e3e
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/27581
Reviewed-by: Armando Montanez <amontanez@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
diff --git a/pw_stream/CMakeLists.txt b/pw_stream/CMakeLists.txt
index 27e58f6..55a9f96 100644
--- a/pw_stream/CMakeLists.txt
+++ b/pw_stream/CMakeLists.txt
@@ -14,15 +14,26 @@
 
 include($ENV{PW_ROOT}/pw_build/pigweed.cmake)
 
-pw_auto_add_simple_module(pw_stream
+pw_add_module_library(pw_stream
+  SOURCES
+    memory_stream.cc
   PUBLIC_DEPS
+    pw_assert
     pw_bytes
-    pw_containers
-    pw_log
     pw_result
     pw_span
     pw_status
+)
+
+pw_add_module_library(pw_stream.socket_stream
+  SOURCES
+    socket_stream.cc
   PRIVATE_DEPS
-    pw_assert
-    pw_string
+    pw_stream
+)
+
+pw_add_module_library(pw_stream.sys_io_stream
+  PRIVATE_DEPS
+    pw_stream
+    pw_sys_io
 )