pw_toolchain/cmake: Update GCC & Clang toolchain backends

Extends the backend selection for the GCC and Clang CMake
toolchains to get closer to GN parity.

Change-Id: I245fb6fdb5e7aaf1dfea086c4d6d12c2fc42ac82
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/79964
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
diff --git a/pw_toolchain/host_clang/toolchain.cmake b/pw_toolchain/host_clang/toolchain.cmake
index b58cd8b..803287e 100644
--- a/pw_toolchain/host_clang/toolchain.cmake
+++ b/pw_toolchain/host_clang/toolchain.cmake
@@ -19,12 +19,47 @@
 set(CMAKE_C_COMPILER clang)
 set(CMAKE_CXX_COMPILER clang++)
 
-pw_set_backend(pw_assert pw_assert_log)
-pw_set_backend(pw_chrono.system_clock pw_chrono_stl.system_clock)
+# TODO(pwbug/606): set up this facade in CMake
+# Use logging-based test output on host.
+# pw_set_backend(pw_unit_test.main pw_unit_test.logging_main)
+
+# Configure backend for assert facade.
+pw_set_backend(pw_assert pw_assert_basic)
+
+# Configure backend for logging facade.
 pw_set_backend(pw_log pw_log_basic)
-pw_set_backend(pw_rpc.system_server targets.host.system_rpc_server)
+
+# Configure backends for pw_sync's facades.
+pw_set_backend(pw_sync.interrupt_spin_lock pw_sync_stl.interrupt_spin_lock)
+pw_set_backend(pw_sync.binary_semaphore pw_sync_stl.binary_semaphore_backend)
+pw_set_backend(pw_sync.counting_semaphore
+               pw_sync_stl.counting_semaphore_backend)
 pw_set_backend(pw_sync.mutex pw_sync_stl.mutex_backend)
+pw_set_backend(pw_sync.timed_mutex pw_sync_stl.timed_mutex_backend)
+pw_set_backend(pw_sync.thread_notification
+               pw_sync.binary_semaphore_thread_notification_backend)
+pw_set_backend(pw_sync.timed_thread_notification
+               pw_sync.binary_semaphore_timed_thread_notification_backend)
+
+# Configure backend for pw_sys_io facade.
 pw_set_backend(pw_sys_io pw_sys_io_stdio)
 
+# Configure backend for pw_rpc_system_server.
+pw_set_backend(pw_rpc.system_server targets.host.system_rpc_server)
+# TODO(hepler): set config to use global mutex
+
+# Configure backend for pw_chrono's facades.
+pw_set_backend(pw_chrono.system_clock pw_chrono_stl.system_clock)
+pw_set_backend(pw_chrono.system_timer pw_chrono_stl.system_timer)
+
+# Configure backends for pw_thread's facades.
+pw_set_backend(pw_thread.id pw_thread_stl.id)
+pw_set_backend(pw_thread.yield pw_thread_stl.yield)
+pw_set_backend(pw_thread.sleep pw_thread_stl.sleep)
+pw_set_backend(pw_thread.thread pw_thread_stl.thread)
+
+# TODO: Migrate this to match GN's tokenized trace setup.
+pw_set_backend(pw_trace pw_trace.null)
+
 set(pw_build_WARNINGS pw_build.strict_warnings pw_build.extra_strict_warnings
     CACHE STRING "" FORCE)
diff --git a/pw_toolchain/host_gcc/toolchain.cmake b/pw_toolchain/host_gcc/toolchain.cmake
index 38744fc..4529f69 100644
--- a/pw_toolchain/host_gcc/toolchain.cmake
+++ b/pw_toolchain/host_gcc/toolchain.cmake
@@ -19,12 +19,47 @@
 set(CMAKE_C_COMPILER gcc)
 set(CMAKE_CXX_COMPILER g++)
 
-pw_set_backend(pw_assert pw_assert_log)
-pw_set_backend(pw_chrono.system_clock pw_chrono_stl.system_clock)
+# TODO(pwbug/606): set up this facade in CMake
+# Use logging-based test output on host.
+# pw_set_backend(pw_unit_test.main pw_unit_test.logging_main)
+
+# Configure backend for assert facade.
+pw_set_backend(pw_assert pw_assert_basic)
+
+# Configure backend for logging facade.
 pw_set_backend(pw_log pw_log_basic)
-pw_set_backend(pw_rpc.system_server targets.host.system_rpc_server)
+
+# Configure backends for pw_sync's facades.
+pw_set_backend(pw_sync.interrupt_spin_lock pw_sync_stl.interrupt_spin_lock)
+pw_set_backend(pw_sync.binary_semaphore pw_sync_stl.binary_semaphore_backend)
+pw_set_backend(pw_sync.counting_semaphore
+               pw_sync_stl.counting_semaphore_backend)
 pw_set_backend(pw_sync.mutex pw_sync_stl.mutex_backend)
+pw_set_backend(pw_sync.timed_mutex pw_sync_stl.timed_mutex_backend)
+pw_set_backend(pw_sync.thread_notification
+               pw_sync.binary_semaphore_thread_notification_backend)
+pw_set_backend(pw_sync.timed_thread_notification
+               pw_sync.binary_semaphore_timed_thread_notification_backend)
+
+# Configure backend for pw_sys_io facade.
 pw_set_backend(pw_sys_io pw_sys_io_stdio)
 
+# Configure backend for pw_rpc_system_server.
+pw_set_backend(pw_rpc.system_server targets.host.system_rpc_server)
+# TODO(hepler): set config to use global mutex
+
+# Configure backend for pw_chrono's facades.
+pw_set_backend(pw_chrono.system_clock pw_chrono_stl.system_clock)
+pw_set_backend(pw_chrono.system_timer pw_chrono_stl.system_timer)
+
+# Configure backends for pw_thread's facades.
+pw_set_backend(pw_thread.id pw_thread_stl.id)
+pw_set_backend(pw_thread.yield pw_thread_stl.yield)
+pw_set_backend(pw_thread.sleep pw_thread_stl.sleep)
+pw_set_backend(pw_thread.thread pw_thread_stl.thread)
+
+# TODO: Migrate this to match GN's tokenized trace setup.
+pw_set_backend(pw_trace pw_trace.null)
+
 set(pw_build_WARNINGS pw_build.strict_warnings pw_build.extra_strict_warnings
     CACHE STRING "" FORCE)