Fix the bazel build

With this commit, `pw presubmit --step bazel_build --full` passes.

Bug: 598
Change-Id: I708648882df74ab0fc9b61fd3941ee8c5c5308c0
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/78900
Reviewed-by: Armando Montanez <amontanez@google.com>
Commit-Queue: Ted Pudlik <tpudlik@google.com>
diff --git a/BUILD.bazel b/BUILD.bazel
index 93e3622..9d4cb4f 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -22,7 +22,7 @@
 
 exports_files(
     ["tsconfig.json"],
-    visibility = ["//:__subpackages__"],
+    visibility = [":__subpackages__"],
 )
 
 # Fix all Bazel relevant files.
diff --git a/pw_boot_cortex_m/BUILD.bazel b/pw_boot_cortex_m/BUILD.bazel
index 33220df..362b0f0 100644
--- a/pw_boot_cortex_m/BUILD.bazel
+++ b/pw_boot_cortex_m/BUILD.bazel
@@ -37,7 +37,7 @@
     deps = [
         "//pw_boot:facade",
         "//pw_preprocessor",
-        "//pw_preprocessor:arch",
+        "//pw_preprocessor:cortex_m",
     ],
 )
 
diff --git a/pw_build/constraints/board/BUILD.bazel b/pw_build/constraints/board/BUILD.bazel
index efc16e9..4696f87 100644
--- a/pw_build/constraints/board/BUILD.bazel
+++ b/pw_build/constraints/board/BUILD.bazel
@@ -23,3 +23,8 @@
     name = "stm32f429i-disc1",
     constraint_setting = ":board",
 )
+
+constraint_value(
+    name = "mimxrt595_evk",
+    constraint_setting = ":board",
+)
diff --git a/pw_interrupt_cortex_m/BUILD.bazel b/pw_interrupt_cortex_m/BUILD.bazel
index 8020084..153af39 100644
--- a/pw_interrupt_cortex_m/BUILD.bazel
+++ b/pw_interrupt_cortex_m/BUILD.bazel
@@ -32,7 +32,7 @@
         "public_overrides",
     ],
     deps = [
-        "//pw_preprocessor:arch",
+        "//pw_preprocessor:cortex_m",
     ],
 )
 
diff --git a/pw_rpc/BUILD.bazel b/pw_rpc/BUILD.bazel
index 08b2bc6..f8a9a81 100644
--- a/pw_rpc/BUILD.bazel
+++ b/pw_rpc/BUILD.bazel
@@ -115,7 +115,6 @@
         "//pw_function",
         "//pw_log",
         "//pw_result",
-        "//pw_rpc/system_server",
         "//pw_span",
         "//pw_status",
         "//pw_sync:lock_annotations",
diff --git a/pw_rpc/system_server/BUILD.bazel b/pw_rpc/system_server/BUILD.bazel
index d9177c9..04b378a 100644
--- a/pw_rpc/system_server/BUILD.bazel
+++ b/pw_rpc/system_server/BUILD.bazel
@@ -41,5 +41,16 @@
         ":facade",
         "//pw_span",
         "//pw_status",
+        "@pigweed_config//:pw_rpc_system_server_backend",
     ],
 )
+
+pw_cc_library(
+    name = "system_server_backend_multiplexer",
+    visibility = ["@pigweed_config//:__pkg__"],
+    deps = select({
+        "//pw_build/constraints/board:stm32f429i-disc1": ["//targets/stm32f429i_disc1:system_rpc_server"],
+        "//pw_build/constraints/board:mimxrt595_evk": ["//targets/mimxrt595_evk:system_rpc_server"],
+        "//conditions:default": ["//targets/host:system_rpc_server"],
+    }),
+)
diff --git a/pw_sync/BUILD.bazel b/pw_sync/BUILD.bazel
index bead397..0b6da70 100644
--- a/pw_sync/BUILD.bazel
+++ b/pw_sync/BUILD.bazel
@@ -311,9 +311,7 @@
         "public_overrides",
     ],
     target_compatible_with = select(TARGET_COMPATIBLE_WITH_HOST_SELECT),
-    deps = [
-        ":binary_semaphore_headers",
-    ],
+    deps = [":binary_semaphore"],
 )
 
 pw_cc_library(
@@ -321,7 +319,7 @@
     target_compatible_with = select(TARGET_COMPATIBLE_WITH_HOST_SELECT),
     deps = [
         ":binary_semaphore_facade",
-        ":binary_semaphore_thread_notification_headers",
+        ":binary_semaphore_thread_notification_backend_headers",
         ":thread_notification_facade",
     ],
 )
diff --git a/pw_tokenizer/BUILD.bazel b/pw_tokenizer/BUILD.bazel
index 921f010..cafab2c 100644
--- a/pw_tokenizer/BUILD.bazel
+++ b/pw_tokenizer/BUILD.bazel
@@ -48,6 +48,7 @@
     ],
     includes = ["public"],
     deps = [
+        "//pw_containers:to_array",
         "//pw_polyfill",
         "//pw_preprocessor",
         "//pw_span",
diff --git a/pw_transfer/BUILD.bazel b/pw_transfer/BUILD.bazel
index fbc4b84..ad9673c 100644
--- a/pw_transfer/BUILD.bazel
+++ b/pw_transfer/BUILD.bazel
@@ -12,7 +12,7 @@
 # License for the specific language governing permissions and limitations under
 # the License.
 
-load("//pw_build:pigweed.bzl", "pw_cc_library", "pw_cc_test")
+load("//pw_build:pigweed.bzl", "pw_cc_binary", "pw_cc_library", "pw_cc_test")
 load("//pw_protobuf_compiler:proto.bzl", "pw_proto_library")
 load("@com_google_protobuf//:protobuf.bzl", "py_proto_library")
 load("@rules_proto//proto:defs.bzl", "proto_library")
@@ -47,20 +47,18 @@
     includes = ["public"],
     deps = [
         ":context",
+        ":transfer_pwpb",
         "//pw_assert",
         "//pw_bytes",
         "//pw_containers:intrusive_list",
         "//pw_log",
         "//pw_protobuf",
         "//pw_result",
+        "//pw_rpc:internal_packet_pwpb",
+        "//pw_rpc/raw:client_api",
+        "//pw_rpc/raw:server_api",
         "//pw_status",
         "//pw_stream",
-        ":transfer_pwpb",
-        "//pw_rpc:internal_packet_pwpb",
-        # "//pw_rpc",
-        "//pw_rpc/raw:server_api",
-        # "//pw_rpc/raw:test_method_context",
-        "//pw_rpc:internal_test_utils",
     ],
 )
 
@@ -80,6 +78,8 @@
         "//pw_assert",
         "//pw_function",
         "//pw_log",
+        "//pw_rpc/raw:client_api",
+        "//pw_rpc/raw:server_api",
         "//pw_stream",
         "//pw_sync:lock_annotations",
         "//pw_sync:mutex",
@@ -101,10 +101,12 @@
     includes = ["public"],
     deps = [
         ":config",
+        ":transfer_pwpb",
         "//pw_bytes",
+        "//pw_chrono:system_timer",
         "//pw_protobuf",
         "//pw_result",
-        "//pw_rpc:client",
+        "//pw_rpc:client_server",
         "//pw_status",
         "//pw_stream",
         "//pw_sync:interrupt_spin_lock",
@@ -164,14 +166,17 @@
     ],
 )
 
-cc_binary(
+pw_cc_binary(
     name = "test_rpc_server",
     srcs = ["test_rpc_server.cc"],
     deps = [
         ":pw_transfer",
+        ":test_server_pwpb",
         "//pw_log",
         "//pw_rpc/system_server",
+        "//pw_stream:std_file_stream",
         "//pw_thread:thread",
+        "//pw_work_queue",
     ],
 )
 
@@ -196,3 +201,20 @@
     name = "transfer_proto_tspb",
     protos = [":transfer_proto"],
 )
+
+proto_library(
+    name = "test_server",
+    srcs = [
+        "test_server.proto",
+    ],
+    import_prefix = "pw_transfer_test",
+    strip_import_prefix = "//pw_transfer",
+    deps = [
+        "//pw_protobuf:common_protos",
+    ],
+)
+
+pw_proto_library(
+    name = "test_server_pwpb",
+    deps = [":test_server"],
+)
diff --git a/pw_transfer/BUILD.gn b/pw_transfer/BUILD.gn
index 4c019f3..0ecf041 100644
--- a/pw_transfer/BUILD.gn
+++ b/pw_transfer/BUILD.gn
@@ -200,6 +200,7 @@
     "$dir_pw_stream:std_file_stream",
     "$dir_pw_thread:thread",
     dir_pw_log,
+    dir_pw_work_queue,
   ]
 }
 
diff --git a/pw_transfer/test_rpc_server.cc b/pw_transfer/test_rpc_server.cc
index 59621b4..6b595e0 100644
--- a/pw_transfer/test_rpc_server.cc
+++ b/pw_transfer/test_rpc_server.cc
@@ -32,6 +32,7 @@
 #include "pw_thread_stl/options.h"
 #include "pw_transfer/transfer.h"
 #include "pw_transfer_test/test_server.raw_rpc.pb.h"
+#include "pw_work_queue/work_queue.h"
 
 namespace pw::transfer {
 namespace {
diff --git a/pw_unit_test/BUILD.bazel b/pw_unit_test/BUILD.bazel
index 10b2a1a..b0f8838 100644
--- a/pw_unit_test/BUILD.bazel
+++ b/pw_unit_test/BUILD.bazel
@@ -137,6 +137,7 @@
         "//pw_hdlc:pw_rpc",
         "//pw_log",
         "//pw_rpc",
+        "//pw_rpc/system_server",
     ],
 )
 
diff --git a/pw_work_queue/BUILD.bazel b/pw_work_queue/BUILD.bazel
index 09f1217..3f29327 100644
--- a/pw_work_queue/BUILD.bazel
+++ b/pw_work_queue/BUILD.bazel
@@ -36,7 +36,7 @@
     includes = ["public"],
     deps = [
         "//pw_function",
-        "//pw_metric",
+        "//pw_metric:metric",
         "//pw_status",
         "//pw_sync:interrupt_spin_lock",
         "//pw_sync:lock_annotations",
diff --git a/targets/default_config.BUILD b/targets/default_config.BUILD
index dd3e923..fd1a1e7 100644
--- a/targets/default_config.BUILD
+++ b/targets/default_config.BUILD
@@ -40,6 +40,11 @@
 )
 
 label_flag(
+    name = "pw_rpc_system_server_backend",
+    build_setting_default = "@pigweed//pw_rpc/system_server:system_server_backend_multiplexer",
+)
+
+label_flag(
     name = "pw_sync_binary_semaphore_backend",
     build_setting_default = "@pigweed//pw_sync:binary_semaphore_backend_multiplexer",
 )
diff --git a/targets/host/BUILD.bazel b/targets/host/BUILD.bazel
index 58446b8..282e4da 100644
--- a/targets/host/BUILD.bazel
+++ b/targets/host/BUILD.bazel
@@ -26,6 +26,9 @@
     srcs = ["system_rpc_server.cc"],
     deps = [
         "//pw_hdlc:pw_rpc",
+        "//pw_hdlc:rpc_channel_output",
+        "//pw_rpc:synchronized_channel_output",
         "//pw_rpc/system_server:facade",
+        "//pw_stream:socket_stream",
     ],
 )