targets/host: reduce win_incompatible_config - Mingw64 10.2.0 builds pw_sync and pw_thread successfully. - Continues to leave thread sleep disabled on Windows, but removes all other win_incompatible_config options. No-Docs-Update-Reason: gni cleanup Change-Id: I0c684652ae3a462f34d71c264cf637f1d98c0300 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/43021 Commit-Queue: Anthony DiGirolamo <tonymd@google.com> Reviewed-by: Anthony DiGirolamo <tonymd@google.com>
diff --git a/pw_thread_stl/BUILD.gn b/pw_thread_stl/BUILD.gn index 37ccf9b..637d2c6 100644 --- a/pw_thread_stl/BUILD.gn +++ b/pw_thread_stl/BUILD.gn
@@ -110,7 +110,8 @@ } pw_test("thread_backend_test") { - enable_if = pw_thread_THREAD_BACKEND == "$dir_pw_thread_stl:thread" + enable_if = pw_thread_THREAD_BACKEND == "$dir_pw_thread_stl:thread" && + pw_thread_SLEEP_BACKEND != "" deps = [ ":test_threads", "$dir_pw_thread:thread_facade_test",
diff --git a/targets/host/target_toolchains.gni b/targets/host/target_toolchains.gni index 07b769a..8980c45 100644 --- a/targets/host/target_toolchains.gni +++ b/targets/host/target_toolchains.gni
@@ -38,6 +38,11 @@ # Configure backends for pw_sync's facades. pw_sync_INTERRUPT_SPIN_LOCK_BACKEND = "$dir_pw_sync_stl:interrupt_spin_lock" + pw_sync_BINARY_SEMAPHORE_BACKEND = "$dir_pw_sync_stl:binary_semaphore_backend" + pw_sync_COUNTING_SEMAPHORE_BACKEND = + "$dir_pw_sync_stl:counting_semaphore_backend" + pw_sync_MUTEX_BACKEND = "$dir_pw_sync_stl:mutex_backend" + pw_sync_TIMED_MUTEX_BACKEND = "$dir_pw_sync_stl:timed_mutex_backend" # Configure backend for pw_sys_io facade. pw_sys_io_BACKEND = "$dir_pw_sys_io_stdio" @@ -54,6 +59,11 @@ # Configure backend for pw_chrono's system_clock facade. pw_chrono_SYSTEM_CLOCK_BACKEND = "$dir_pw_chrono_stl:system_clock" + # Configure backends for pw_thread's facades. + pw_thread_ID_BACKEND = "$dir_pw_thread_stl:id" + pw_thread_YIELD_BACKEND = "$dir_pw_thread_stl:yield" + pw_thread_THREAD_BACKEND = "$dir_pw_thread_stl:thread" + # Specify builtin GN variables. current_os = host_os current_cpu = host_cpu @@ -79,21 +89,10 @@ pw_unit_test_AUTOMATIC_RUNNER = get_path_info("run_test.bat", "abspath") } -# TODO(amontanez): figure out why std::mutex doesn't work on Windows. -# These current target configurations do not work on windows. +# TODO(ewout): figure out why MingGW's sleep doesn't work correctly or provide +# a wrapper which sleeps until our contract is met. _win_incompatible_config = { - # Configure backends for pw_sync's facades. - pw_sync_BINARY_SEMAPHORE_BACKEND = "$dir_pw_sync_stl:binary_semaphore_backend" - pw_sync_COUNTING_SEMAPHORE_BACKEND = - "$dir_pw_sync_stl:counting_semaphore_backend" - pw_sync_MUTEX_BACKEND = "$dir_pw_sync_stl:mutex_backend" - pw_sync_TIMED_MUTEX_BACKEND = "$dir_pw_sync_stl:timed_mutex_backend" - - # Configure backends for pw_thread's facades. - pw_thread_ID_BACKEND = "$dir_pw_thread_stl:id" pw_thread_SLEEP_BACKEND = "$dir_pw_thread_stl:sleep" - pw_thread_YIELD_BACKEND = "$dir_pw_thread_stl:yield" - pw_thread_THREAD_BACKEND = "$dir_pw_thread_stl:thread" } _os_specific_config = {