• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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