1# Copyright 2021 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 15load( 16 "//pw_build:pigweed.bzl", 17 "pw_cc_library", 18) 19 20package(default_visibility = ["//visibility:public"]) 21 22licenses(["notice"]) # Apache License 2.0 23 24pw_cc_library( 25 name = "binary_semaphore_headers", 26 hdrs = [ 27 "public/pw_sync_embos/binary_semaphore_inline.h", 28 "public/pw_sync_embos/binary_semaphore_native.h", 29 "public_overrides/pw_sync_backend/binary_semaphore_inline.h", 30 "public_overrides/pw_sync_backend/binary_semaphore_native.h", 31 ], 32 includes = [ 33 "public", 34 "public_overrides", 35 ], 36 deps = [ 37 # TODO(pwbug/317): This should depend on embOS but our third parties 38 # currently do not have Bazel support. 39 "//pw_chrono:system_clock", 40 "//pw_chrono_embos:system_clock_headers", 41 ], 42) 43 44pw_cc_library( 45 name = "binary_semaphore", 46 srcs = [ 47 "binary_semaphore.cc", 48 ], 49 deps = [ 50 ":binary_semaphore_headers", 51 "//pw_interrupt:context", 52 "//pw_sync:binary_semaphore_facade", 53 ], 54) 55 56pw_cc_library( 57 name = "counting_semaphore_headers", 58 hdrs = [ 59 "public/pw_sync_embos/counting_semaphore_inline.h", 60 "public/pw_sync_embos/counting_semaphore_native.h", 61 "public_overrides/pw_sync_backend/counting_semaphore_inline.h", 62 "public_overrides/pw_sync_backend/counting_semaphore_native.h", 63 ], 64 includes = [ 65 "public", 66 "public_overrides", 67 ], 68 deps = [ 69 # TODO(pwbug/317): This should depend on embOS but our third parties 70 # currently do not have Bazel support. 71 "//pw_chrono:system_clock", 72 "//pw_chrono_embos:system_clock_headers", 73 ], 74) 75 76pw_cc_library( 77 name = "counting_semaphore", 78 srcs = [ 79 "counting_semaphore.cc", 80 ], 81 deps = [ 82 ":counting_semaphore_headers", 83 "//pw_interrupt:context", 84 "//pw_sync:counting_semaphore_facade", 85 ], 86) 87 88 89pw_cc_library( 90 name = "mutex_headers", 91 hdrs = [ 92 "public/pw_sync_embos/mutex_inline.h", 93 "public/pw_sync_embos/mutex_native.h", 94 "public_overrides/pw_sync_backend/mutex_inline.h", 95 "public_overrides/pw_sync_backend/mutex_native.h", 96 ], 97 includes = [ 98 "public", 99 "public_overrides", 100 ], 101 deps = [ 102 # TODO(pwbug/317): This should depend on embOS but our third parties 103 # currently do not have Bazel support. 104 "//pw_sync:mutex_facade", 105 ], 106) 107 108pw_cc_library( 109 name = "mutex", 110 deps = [ 111 ":mutex_headers", 112 "//pw_sync:mutex_facade", 113 ], 114) 115 116pw_cc_library( 117 name = "timed_mutex_headers", 118 hdrs = [ 119 "public/pw_sync_embos/timed_mutex_inline.h", 120 "public_overrides/pw_sync_backend/timed_mutex_inline.h", 121 ], 122 includes = [ 123 "public", 124 "public_overrides", 125 ], 126 deps = [ 127 # TODO(pwbug/317): This should depend on embOS but our third parties 128 # currently do not have Bazel support. 129 "//pw_chrono:system_clock", 130 "//pw_sync:timed_mutex_facade", 131 ], 132) 133 134pw_cc_library( 135 name = "timed_mutex", 136 srcs = [ 137 "timed_mutex.cc", 138 ], 139 deps = [ 140 ":timed_mutex_headers", 141 "//pw_interrupt:context", 142 "//pw_sync:timed_mutex_facade", 143 "//pw_chrono_embos:system_clock_headers", 144 ], 145) 146 147 148pw_cc_library( 149 name = "interrupt_spin_lock_headers", 150 hdrs = [ 151 "public/pw_sync_embos/interrupt_spin_lock_inline.h", 152 "public/pw_sync_embos/interrupt_spin_lock_native.h", 153 "public_overrides/pw_sync_backend/interrupt_spin_lock_inline.h", 154 "public_overrides/pw_sync_backend/interrupt_spin_lock_native.h", 155 ], 156 includes = [ 157 "public", 158 "public_overrides", 159 ], 160 # TODO(pwbug/317): This should depend on embOS but our third parties 161 # currently do not have Bazel support. 162) 163 164pw_cc_library( 165 name = "interrupt_spin_lock", 166 srcs = [ 167 "interrupt_spin_lock.cc", 168 ], 169 deps = [ 170 ":interrupt_spin_lock_headers", 171 "//pw_sync:interrupt_spin_lock_facade", 172 ], 173) 174 175