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_library(pw_sync_stl.binary_semaphore_backend STATIC 19 HEADERS 20 public/pw_sync_stl/binary_semaphore_inline.h 21 public/pw_sync_stl/binary_semaphore_native.h 22 public_overrides/pw_sync_backend/binary_semaphore_inline.h 23 public_overrides/pw_sync_backend/binary_semaphore_native.h 24 PUBLIC_INCLUDES 25 public 26 public_overrides 27 PUBLIC_DEPS 28 pw_sync.binary_semaphore.facade 29 SOURCES 30 binary_semaphore.cc 31 PRIVATE_DEPS 32 pw_assert 33 pw_chrono.system_clock 34) 35 36pw_add_library(pw_sync_stl.condition_variable_backend INTERFACE 37 HEADERS 38 public/pw_sync_stl/condition_variable_inline.h 39 public/pw_sync_stl/condition_variable_native.h 40 public_overrides/pw_sync_backend/condition_variable_inline.h 41 public_overrides/pw_sync_backend/condition_variable_native.h 42 PUBLIC_INCLUDES 43 public 44 public_overrides 45 PUBLIC_DEPS 46 pw_sync.condition_variable.facade 47) 48 49# This target provides the backend for pw::sync::CountingSemaphore. 50pw_add_library(pw_sync_stl.counting_semaphore_backend STATIC 51 HEADERS 52 public/pw_sync_stl/counting_semaphore_inline.h 53 public/pw_sync_stl/counting_semaphore_native.h 54 public_overrides/pw_sync_backend/counting_semaphore_inline.h 55 public_overrides/pw_sync_backend/counting_semaphore_native.h 56 PUBLIC_INCLUDES 57 public 58 public_overrides 59 PUBLIC_DEPS 60 pw_sync.counting_semaphore.facade 61 SOURCES 62 counting_semaphore.cc 63 PRIVATE_DEPS 64 pw_assert 65 pw_chrono.system_clock 66) 67 68# This target provides the backend for pw::sync::Mutex. 69pw_add_library(pw_sync_stl.mutex_backend STATIC 70 HEADERS 71 public/pw_sync_stl/mutex_inline.h 72 public/pw_sync_stl/mutex_native.h 73 public_overrides/pw_sync_backend/mutex_inline.h 74 public_overrides/pw_sync_backend/mutex_native.h 75 PUBLIC_INCLUDES 76 public 77 public_overrides 78 PUBLIC_DEPS 79 pw_sync.mutex.facade 80 SOURCES 81 mutex.cc 82 PRIVATE_DEPS 83 pw_assert 84) 85 86# This target provides the backend for pw::sync::TimedMutex. 87pw_add_library(pw_sync_stl.timed_mutex_backend INTERFACE 88 HEADERS 89 public/pw_sync_stl/timed_mutex_inline.h 90 public_overrides/pw_sync_backend/timed_mutex_inline.h 91 PUBLIC_INCLUDES 92 public 93 public_overrides 94 PUBLIC_DEPS 95 pw_sync.mutex 96 pw_chrono.system_clock 97 pw_sync.timed_mutex.facade 98) 99 100pw_add_library(pw_sync_stl.interrupt_spin_lock INTERFACE 101 HEADERS 102 public/pw_sync_stl/interrupt_spin_lock_inline.h 103 public/pw_sync_stl/interrupt_spin_lock_native.h 104 public_overrides/pw_sync_backend/interrupt_spin_lock_inline.h 105 public_overrides/pw_sync_backend/interrupt_spin_lock_native.h 106 PUBLIC_INCLUDES 107 public 108 public_overrides 109 PUBLIC_DEPS 110 pw_sync.interrupt_spin_lock.facade 111 pw_sync.yield_core 112) 113