1# Copyright 2020 The Pigweed Authors 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4# use this file except in compliance with the License. You may obtain a copy of 5# the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12# License for the specific language governing permissions and limitations under 13# the License. 14 15include($ENV{PW_ROOT}/pw_build/pigweed.cmake) 16 17# This target provides the backend for pw::sync::BinarySemaphore. 18pw_add_module_library(pw_sync_stl.binary_semaphore_backend 19 IMPLEMENTS_FACADES 20 pw_sync.binary_semaphore 21 HEADERS 22 public/pw_sync_stl/binary_semaphore_inline.h 23 public/pw_sync_stl/binary_semaphore_native.h 24 public_overrides/pw_sync_backend/binary_semaphore_inline.h 25 public_overrides/pw_sync_backend/binary_semaphore_native.h 26 PUBLIC_INCLUDES 27 public 28 public_overrides 29 SOURCES 30 binary_semaphore.cc 31 PRIVATE_DEPS 32 pw_assert 33 pw_chrono.system_clock 34) 35 36# This target provides the backend for pw::sync::CountingSemaphore. 37pw_add_module_library(pw_sync_stl.counting_semaphore_backend 38 IMPLEMENTS_FACADES 39 pw_sync.counting_semaphore 40 HEADERS 41 public/pw_sync_stl/counting_semaphore_inline.h 42 public/pw_sync_stl/counting_semaphore_native.h 43 public_overrides/pw_sync_backend/counting_semaphore_inline.h 44 public_overrides/pw_sync_backend/counting_semaphore_native.h 45 PUBLIC_INCLUDES 46 public 47 public_overrides 48 SOURCES 49 counting_semaphore.cc 50 PRIVATE_DEPS 51 pw_assert 52 pw_chrono.system_clock 53) 54 55# This target provides the backend for pw::sync::Mutex. 56pw_add_module_library(pw_sync_stl.mutex_backend 57 IMPLEMENTS_FACADES 58 pw_sync.mutex 59 HEADERS 60 public/pw_sync_stl/mutex_inline.h 61 public/pw_sync_stl/mutex_native.h 62 public_overrides/pw_sync_backend/mutex_inline.h 63 public_overrides/pw_sync_backend/mutex_native.h 64 PUBLIC_INCLUDES 65 public 66 public_overrides 67 SOURCES 68 mutex.cc 69 PRIVATE_DEPS 70 pw_assert 71) 72 73# This target provides the backend for pw::sync::TimedMutex. 74pw_add_module_library(pw_sync_stl.timed_mutex_backend 75 IMPLEMENTS_FACADES 76 pw_sync.timed_mutex 77 HEADERS 78 public/pw_sync_stl/timed_mutex_inline.h 79 public_overrides/pw_sync_backend/timed_mutex_inline.h 80 PUBLIC_INCLUDES 81 public 82 public_overrides 83 PUBLIC_DEPS 84 pw_sync.mutex 85 pw_chrono.system_clock 86) 87 88pw_add_module_library(pw_sync_stl.interrupt_spin_lock 89 IMPLEMENTS_FACADES 90 pw_sync.interrupt_spin_lock 91 HEADERS 92 public/pw_sync_stl/interrupt_spin_lock_inline.h 93 public/pw_sync_stl/interrupt_spin_lock_native.h 94 public_overrides/pw_sync_backend/interrupt_spin_lock_inline.h 95 public_overrides/pw_sync_backend/interrupt_spin_lock_native.h 96 PUBLIC_INCLUDES 97 public 98 public_overrides 99 PUBLIC_DEPS 100 pw_sync.yield_core 101) 102