pw_sync_stl: Extend CMake support
Change-Id: If7e2add8c5cb19f0cd1a7de8b1a5d891396060ad
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/79474
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_sync_stl/CMakeLists.txt b/pw_sync_stl/CMakeLists.txt
index b50bb38..e2d4433 100644
--- a/pw_sync_stl/CMakeLists.txt
+++ b/pw_sync_stl/CMakeLists.txt
@@ -14,11 +14,88 @@
include($ENV{PW_ROOT}/pw_build/pigweed.cmake)
+# This target provides the backend for pw::sync::BinarySemaphore.
+pw_add_module_library(pw_sync_stl.binary_semaphore_backend
+ IMPLEMENTS_FACADES
+ pw_sync.binary_semaphore
+ HEADERS
+ public/pw_sync_stl/binary_semaphore_inline.h
+ public/pw_sync_stl/binary_semaphore_native.h
+ public_overrides/pw_sync_backend/binary_semaphore_inline.h
+ public_overrides/pw_sync_backend/binary_semaphore_native.h
+ PUBLIC_INCLUDES
+ public
+ public_overrides
+ SOURCES
+ binary_semaphore.cc
+ PRIVATE_DEPS
+ pw_assert
+ pw_chrono.system_clock
+)
+
+# This target provides the backend for pw::sync::CountingSemaphore.
+pw_add_module_library(pw_sync_stl.counting_semaphore_backend
+ IMPLEMENTS_FACADES
+ pw_sync.counting_semaphore
+ HEADERS
+ public/pw_sync_stl/counting_semaphore_inline.h
+ public/pw_sync_stl/counting_semaphore_native.h
+ public_overrides/pw_sync_backend/counting_semaphore_inline.h
+ public_overrides/pw_sync_backend/counting_semaphore_native.h
+ PUBLIC_INCLUDES
+ public
+ public_overrides
+ SOURCES
+ counting_semaphore.cc
+ PRIVATE_DEPS
+ pw_assert
+ pw_chrono.system_clock
+)
+
+# This target provides the backend for pw::sync::Mutex.
pw_add_module_library(pw_sync_stl.mutex_backend
IMPLEMENTS_FACADES
pw_sync.mutex
- PUBLIC_DEPS
- pw_assert
+ HEADERS
+ public/pw_sync_stl/mutex_inline.h
+ public/pw_sync_stl/mutex_native.h
+ public_overrides/pw_sync_backend/mutex_inline.h
+ public_overrides/pw_sync_backend/mutex_native.h
+ PUBLIC_INCLUDES
+ public
+ public_overrides
SOURCES
mutex.cc
+ PRIVATE_DEPS
+ pw_assert
+)
+
+# This target provides the backend for pw::sync::TimedMutex.
+pw_add_module_library(pw_sync_stl.timed_mutex_backend
+ IMPLEMENTS_FACADES
+ pw_sync.timed_mutex
+ HEADERS
+ public/pw_sync_stl/timed_mutex_inline.h
+ public_overrides/pw_sync_backend/timed_mutex_inline.h
+ PUBLIC_INCLUDES
+ public
+ public_overrides
+ PUBLIC_DEPS
+ pw_sync.mutex
+ pw_chrono.system_clock
+)
+
+pw_add_module_library(pw_sync_stl.interrupt_spin_lock
+ IMPLEMENTS_FACADES
+ pw_sync.interrupt_spin_lock
+ HEADERS
+ public/pw_sync_stl/interrupt_spin_lock_inline.h
+ public/pw_sync_stl/interrupt_spin_lock_native.h
+ public_overrides/pw_sync_backend/interrupt_spin_lock_inline.h
+ public_overrides/pw_sync_backend/interrupt_spin_lock_native.h
+ PUBLIC_INCLUDES
+ public
+ public_overrides
+ PUBLIC_DEPS
+ pw_sync.yield_core
)