xref: /aosp_15_r20/external/pigweed/pw_sync_freertos/BUILD.bazel (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker# Copyright 2020 The Pigweed Authors
2*61c4878aSAndroid Build Coastguard Worker#
3*61c4878aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4*61c4878aSAndroid Build Coastguard Worker# use this file except in compliance with the License. You may obtain a copy of
5*61c4878aSAndroid Build Coastguard Worker# the License at
6*61c4878aSAndroid Build Coastguard Worker#
7*61c4878aSAndroid Build Coastguard Worker#     https://www.apache.org/licenses/LICENSE-2.0
8*61c4878aSAndroid Build Coastguard Worker#
9*61c4878aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*61c4878aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11*61c4878aSAndroid Build Coastguard Worker# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12*61c4878aSAndroid Build Coastguard Worker# License for the specific language governing permissions and limitations under
13*61c4878aSAndroid Build Coastguard Worker# the License.
14*61c4878aSAndroid Build Coastguard Worker
15*61c4878aSAndroid Build Coastguard Workerpackage(default_visibility = ["//visibility:public"])
16*61c4878aSAndroid Build Coastguard Worker
17*61c4878aSAndroid Build Coastguard Workerlicenses(["notice"])
18*61c4878aSAndroid Build Coastguard Worker
19*61c4878aSAndroid Build Coastguard Workercc_library(
20*61c4878aSAndroid Build Coastguard Worker    name = "binary_semaphore",
21*61c4878aSAndroid Build Coastguard Worker    srcs = [
22*61c4878aSAndroid Build Coastguard Worker        "binary_semaphore.cc",
23*61c4878aSAndroid Build Coastguard Worker    ],
24*61c4878aSAndroid Build Coastguard Worker    hdrs = [
25*61c4878aSAndroid Build Coastguard Worker        "public/pw_sync_freertos/binary_semaphore_inline.h",
26*61c4878aSAndroid Build Coastguard Worker        "public/pw_sync_freertos/binary_semaphore_native.h",
27*61c4878aSAndroid Build Coastguard Worker        "public_overrides/pw_sync_backend/binary_semaphore_inline.h",
28*61c4878aSAndroid Build Coastguard Worker        "public_overrides/pw_sync_backend/binary_semaphore_native.h",
29*61c4878aSAndroid Build Coastguard Worker    ],
30*61c4878aSAndroid Build Coastguard Worker    includes = [
31*61c4878aSAndroid Build Coastguard Worker        "public",
32*61c4878aSAndroid Build Coastguard Worker        "public_overrides",
33*61c4878aSAndroid Build Coastguard Worker    ],
34*61c4878aSAndroid Build Coastguard Worker    target_compatible_with = [
35*61c4878aSAndroid Build Coastguard Worker        "//pw_build/constraints/rtos:freertos",
36*61c4878aSAndroid Build Coastguard Worker    ],
37*61c4878aSAndroid Build Coastguard Worker    deps = [
38*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
39*61c4878aSAndroid Build Coastguard Worker        "//pw_chrono:system_clock",
40*61c4878aSAndroid Build Coastguard Worker        "//pw_interrupt:context",
41*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:binary_semaphore.facade",
42*61c4878aSAndroid Build Coastguard Worker        "@freertos",
43*61c4878aSAndroid Build Coastguard Worker    ],
44*61c4878aSAndroid Build Coastguard Worker)
45*61c4878aSAndroid Build Coastguard Worker
46*61c4878aSAndroid Build Coastguard Workercc_library(
47*61c4878aSAndroid Build Coastguard Worker    name = "counting_semaphore",
48*61c4878aSAndroid Build Coastguard Worker    srcs = [
49*61c4878aSAndroid Build Coastguard Worker        "counting_semaphore.cc",
50*61c4878aSAndroid Build Coastguard Worker    ],
51*61c4878aSAndroid Build Coastguard Worker    hdrs = [
52*61c4878aSAndroid Build Coastguard Worker        "public/pw_sync_freertos/counting_semaphore_inline.h",
53*61c4878aSAndroid Build Coastguard Worker        "public/pw_sync_freertos/counting_semaphore_native.h",
54*61c4878aSAndroid Build Coastguard Worker        "public_overrides/pw_sync_backend/counting_semaphore_inline.h",
55*61c4878aSAndroid Build Coastguard Worker        "public_overrides/pw_sync_backend/counting_semaphore_native.h",
56*61c4878aSAndroid Build Coastguard Worker    ],
57*61c4878aSAndroid Build Coastguard Worker    includes = [
58*61c4878aSAndroid Build Coastguard Worker        "public",
59*61c4878aSAndroid Build Coastguard Worker        "public_overrides",
60*61c4878aSAndroid Build Coastguard Worker    ],
61*61c4878aSAndroid Build Coastguard Worker    target_compatible_with = select({
62*61c4878aSAndroid Build Coastguard Worker        # Not compatible with this FreeRTOS config, because it does not enable
63*61c4878aSAndroid Build Coastguard Worker        # FreeRTOS counting semaphores. We mark it explicitly incompatible to
64*61c4878aSAndroid Build Coastguard Worker        # that this library is skipped when you
65*61c4878aSAndroid Build Coastguard Worker        # `bazel build //pw_sync_freertos/...` for a platform using that
66*61c4878aSAndroid Build Coastguard Worker        # config.
67*61c4878aSAndroid Build Coastguard Worker        "//targets/stm32f429i_disc1_stm32cube:freertos_config_cv": ["@platforms//:incompatible"],
68*61c4878aSAndroid Build Coastguard Worker        "//conditions:default": [
69*61c4878aSAndroid Build Coastguard Worker            "//pw_build/constraints/rtos:freertos",
70*61c4878aSAndroid Build Coastguard Worker        ],
71*61c4878aSAndroid Build Coastguard Worker    }),
72*61c4878aSAndroid Build Coastguard Worker    deps = [
73*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
74*61c4878aSAndroid Build Coastguard Worker        "//pw_chrono:system_clock",
75*61c4878aSAndroid Build Coastguard Worker        "//pw_interrupt:context",
76*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:counting_semaphore.facade",
77*61c4878aSAndroid Build Coastguard Worker        "@freertos",
78*61c4878aSAndroid Build Coastguard Worker    ],
79*61c4878aSAndroid Build Coastguard Worker)
80*61c4878aSAndroid Build Coastguard Worker
81*61c4878aSAndroid Build Coastguard Workercc_library(
82*61c4878aSAndroid Build Coastguard Worker    name = "mutex",
83*61c4878aSAndroid Build Coastguard Worker    hdrs = [
84*61c4878aSAndroid Build Coastguard Worker        "public/pw_sync_freertos/mutex_inline.h",
85*61c4878aSAndroid Build Coastguard Worker        "public/pw_sync_freertos/mutex_native.h",
86*61c4878aSAndroid Build Coastguard Worker        "public_overrides/pw_sync_backend/mutex_inline.h",
87*61c4878aSAndroid Build Coastguard Worker        "public_overrides/pw_sync_backend/mutex_native.h",
88*61c4878aSAndroid Build Coastguard Worker    ],
89*61c4878aSAndroid Build Coastguard Worker    includes = [
90*61c4878aSAndroid Build Coastguard Worker        "public",
91*61c4878aSAndroid Build Coastguard Worker        "public_overrides",
92*61c4878aSAndroid Build Coastguard Worker    ],
93*61c4878aSAndroid Build Coastguard Worker    target_compatible_with = [
94*61c4878aSAndroid Build Coastguard Worker        "//pw_build/constraints/rtos:freertos",
95*61c4878aSAndroid Build Coastguard Worker    ],
96*61c4878aSAndroid Build Coastguard Worker    deps = [
97*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
98*61c4878aSAndroid Build Coastguard Worker        "//pw_interrupt:context",
99*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:mutex.facade",
100*61c4878aSAndroid Build Coastguard Worker        "@freertos",
101*61c4878aSAndroid Build Coastguard Worker    ],
102*61c4878aSAndroid Build Coastguard Worker)
103*61c4878aSAndroid Build Coastguard Worker
104*61c4878aSAndroid Build Coastguard Workercc_library(
105*61c4878aSAndroid Build Coastguard Worker    name = "thread_notification",
106*61c4878aSAndroid Build Coastguard Worker    srcs = [
107*61c4878aSAndroid Build Coastguard Worker        "thread_notification.cc",
108*61c4878aSAndroid Build Coastguard Worker    ],
109*61c4878aSAndroid Build Coastguard Worker    hdrs = [
110*61c4878aSAndroid Build Coastguard Worker        "public/pw_sync_freertos/config.h",
111*61c4878aSAndroid Build Coastguard Worker        "public/pw_sync_freertos/thread_notification_inline.h",
112*61c4878aSAndroid Build Coastguard Worker        "public/pw_sync_freertos/thread_notification_native.h",
113*61c4878aSAndroid Build Coastguard Worker        "public_overrides/thread_notification/pw_sync_backend/thread_notification_inline.h",
114*61c4878aSAndroid Build Coastguard Worker        "public_overrides/thread_notification/pw_sync_backend/thread_notification_native.h",
115*61c4878aSAndroid Build Coastguard Worker    ],
116*61c4878aSAndroid Build Coastguard Worker    includes = [
117*61c4878aSAndroid Build Coastguard Worker        "public",
118*61c4878aSAndroid Build Coastguard Worker        "public_overrides/thread_notification",
119*61c4878aSAndroid Build Coastguard Worker    ],
120*61c4878aSAndroid Build Coastguard Worker    target_compatible_with = [
121*61c4878aSAndroid Build Coastguard Worker        "//pw_build/constraints/rtos:freertos",
122*61c4878aSAndroid Build Coastguard Worker    ],
123*61c4878aSAndroid Build Coastguard Worker    deps = [
124*61c4878aSAndroid Build Coastguard Worker        ":config_override",
125*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
126*61c4878aSAndroid Build Coastguard Worker        "//pw_interrupt:context",
127*61c4878aSAndroid Build Coastguard Worker        "//pw_polyfill",
128*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:interrupt_spin_lock",
129*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:lock_annotations",
130*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:thread_notification.facade",
131*61c4878aSAndroid Build Coastguard Worker        "@freertos",
132*61c4878aSAndroid Build Coastguard Worker    ],
133*61c4878aSAndroid Build Coastguard Worker)
134*61c4878aSAndroid Build Coastguard Worker
135*61c4878aSAndroid Build Coastguard Workerlabel_flag(
136*61c4878aSAndroid Build Coastguard Worker    name = "config_override",
137*61c4878aSAndroid Build Coastguard Worker    build_setting_default = "//pw_build:default_module_config",
138*61c4878aSAndroid Build Coastguard Worker)
139*61c4878aSAndroid Build Coastguard Worker
140*61c4878aSAndroid Build Coastguard Workercc_library(
141*61c4878aSAndroid Build Coastguard Worker    name = "timed_thread_notification",
142*61c4878aSAndroid Build Coastguard Worker    srcs = [
143*61c4878aSAndroid Build Coastguard Worker        "timed_thread_notification.cc",
144*61c4878aSAndroid Build Coastguard Worker    ],
145*61c4878aSAndroid Build Coastguard Worker    hdrs = [
146*61c4878aSAndroid Build Coastguard Worker        "public/pw_sync_freertos/timed_thread_notification_inline.h",
147*61c4878aSAndroid Build Coastguard Worker        "public_overrides/timed_thread_notification/pw_sync_backend/timed_thread_notification_inline.h",
148*61c4878aSAndroid Build Coastguard Worker    ],
149*61c4878aSAndroid Build Coastguard Worker    includes = [
150*61c4878aSAndroid Build Coastguard Worker        "public",
151*61c4878aSAndroid Build Coastguard Worker        "public_overrides/timed_thread_notification",
152*61c4878aSAndroid Build Coastguard Worker    ],
153*61c4878aSAndroid Build Coastguard Worker    target_compatible_with = [
154*61c4878aSAndroid Build Coastguard Worker        "//pw_build/constraints/rtos:freertos",
155*61c4878aSAndroid Build Coastguard Worker    ],
156*61c4878aSAndroid Build Coastguard Worker    deps = [
157*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
158*61c4878aSAndroid Build Coastguard Worker        "//pw_chrono:system_clock",
159*61c4878aSAndroid Build Coastguard Worker        "//pw_interrupt:context",
160*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:timed_thread_notification.facade",
161*61c4878aSAndroid Build Coastguard Worker        "@freertos",
162*61c4878aSAndroid Build Coastguard Worker    ],
163*61c4878aSAndroid Build Coastguard Worker)
164*61c4878aSAndroid Build Coastguard Worker
165*61c4878aSAndroid Build Coastguard Workercc_library(
166*61c4878aSAndroid Build Coastguard Worker    name = "timed_mutex",
167*61c4878aSAndroid Build Coastguard Worker    srcs = [
168*61c4878aSAndroid Build Coastguard Worker        "timed_mutex.cc",
169*61c4878aSAndroid Build Coastguard Worker    ],
170*61c4878aSAndroid Build Coastguard Worker    hdrs = [
171*61c4878aSAndroid Build Coastguard Worker        "public/pw_sync_freertos/timed_mutex_inline.h",
172*61c4878aSAndroid Build Coastguard Worker        "public_overrides/pw_sync_backend/timed_mutex_inline.h",
173*61c4878aSAndroid Build Coastguard Worker    ],
174*61c4878aSAndroid Build Coastguard Worker    includes = [
175*61c4878aSAndroid Build Coastguard Worker        "public",
176*61c4878aSAndroid Build Coastguard Worker        "public_overrides",
177*61c4878aSAndroid Build Coastguard Worker    ],
178*61c4878aSAndroid Build Coastguard Worker    target_compatible_with = [
179*61c4878aSAndroid Build Coastguard Worker        "//pw_build/constraints/rtos:freertos",
180*61c4878aSAndroid Build Coastguard Worker    ],
181*61c4878aSAndroid Build Coastguard Worker    deps = [
182*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
183*61c4878aSAndroid Build Coastguard Worker        "//pw_chrono:system_clock",
184*61c4878aSAndroid Build Coastguard Worker        "//pw_interrupt:context",
185*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:mutex",
186*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:timed_mutex.facade",
187*61c4878aSAndroid Build Coastguard Worker        "@freertos",
188*61c4878aSAndroid Build Coastguard Worker    ],
189*61c4878aSAndroid Build Coastguard Worker)
190*61c4878aSAndroid Build Coastguard Worker
191*61c4878aSAndroid Build Coastguard Workercc_library(
192*61c4878aSAndroid Build Coastguard Worker    name = "interrupt_spin_lock",
193*61c4878aSAndroid Build Coastguard Worker    srcs = [
194*61c4878aSAndroid Build Coastguard Worker        "interrupt_spin_lock.cc",
195*61c4878aSAndroid Build Coastguard Worker    ],
196*61c4878aSAndroid Build Coastguard Worker    hdrs = [
197*61c4878aSAndroid Build Coastguard Worker        "public/pw_sync_freertos/interrupt_spin_lock_inline.h",
198*61c4878aSAndroid Build Coastguard Worker        "public/pw_sync_freertos/interrupt_spin_lock_native.h",
199*61c4878aSAndroid Build Coastguard Worker        "public_overrides/pw_sync_backend/interrupt_spin_lock_inline.h",
200*61c4878aSAndroid Build Coastguard Worker        "public_overrides/pw_sync_backend/interrupt_spin_lock_native.h",
201*61c4878aSAndroid Build Coastguard Worker    ],
202*61c4878aSAndroid Build Coastguard Worker    includes = [
203*61c4878aSAndroid Build Coastguard Worker        "public",
204*61c4878aSAndroid Build Coastguard Worker        "public_overrides",
205*61c4878aSAndroid Build Coastguard Worker    ],
206*61c4878aSAndroid Build Coastguard Worker    target_compatible_with = [
207*61c4878aSAndroid Build Coastguard Worker        "//pw_build/constraints/rtos:freertos",
208*61c4878aSAndroid Build Coastguard Worker    ],
209*61c4878aSAndroid Build Coastguard Worker    deps = [
210*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
211*61c4878aSAndroid Build Coastguard Worker        "//pw_interrupt:context",
212*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:interrupt_spin_lock.facade",
213*61c4878aSAndroid Build Coastguard Worker        "@freertos",
214*61c4878aSAndroid Build Coastguard Worker    ],
215*61c4878aSAndroid Build Coastguard Worker)
216*61c4878aSAndroid Build Coastguard Worker
217*61c4878aSAndroid Build Coastguard Worker# TODO: b/228998350 - Figure out how to conditionally enable this test like GN
218*61c4878aSAndroid Build Coastguard Worker#
219*61c4878aSAndroid Build Coastguard Worker# You can instantiate this with your own implementation of
220*61c4878aSAndroid Build Coastguard Worker# "//pw_thread:non_portable_test_thread_options", see
221*61c4878aSAndroid Build Coastguard Worker# ":thread_notification_test_with_static_threads" below as an example.
222*61c4878aSAndroid Build Coastguard Worker# pw_cc_library(
223*61c4878aSAndroid Build Coastguard Worker#     name = "thread_notification_test",
224*61c4878aSAndroid Build Coastguard Worker#     srcs = [
225*61c4878aSAndroid Build Coastguard Worker#         "thread_notification_test.cc",
226*61c4878aSAndroid Build Coastguard Worker#     ],
227*61c4878aSAndroid Build Coastguard Worker#     target_compatible_with = [
228*61c4878aSAndroid Build Coastguard Worker#         "//pw_build/constraints/rtos:freertos",
229*61c4878aSAndroid Build Coastguard Worker#     ],
230*61c4878aSAndroid Build Coastguard Worker#     # TODO: b/234876414 - This should depend on FreeRTOS but our third parties
231*61c4878aSAndroid Build Coastguard Worker#     # currently do not have Bazel support.
232*61c4878aSAndroid Build Coastguard Worker#     deps = [
233*61c4878aSAndroid Build Coastguard Worker#         "//pw_chrono:system_clock",
234*61c4878aSAndroid Build Coastguard Worker#         "//pw_sync:thread_notification",
235*61c4878aSAndroid Build Coastguard Worker#         "//pw_thread:sleep",
236*61c4878aSAndroid Build Coastguard Worker#         "//pw_thread:non_portable_test_thread_options",
237*61c4878aSAndroid Build Coastguard Worker#         "//pw_thread:thread",
238*61c4878aSAndroid Build Coastguard Worker#         "//pw_unit_test",
239*61c4878aSAndroid Build Coastguard Worker#     ],
240*61c4878aSAndroid Build Coastguard Worker# )
241*61c4878aSAndroid Build Coastguard Worker# This is only used for the python tests.
242*61c4878aSAndroid Build Coastguard Workerfilegroup(
243*61c4878aSAndroid Build Coastguard Worker    name = "thread_notification_test",
244*61c4878aSAndroid Build Coastguard Worker    srcs = [
245*61c4878aSAndroid Build Coastguard Worker        "thread_notification_test.cc",
246*61c4878aSAndroid Build Coastguard Worker    ],
247*61c4878aSAndroid Build Coastguard Worker)
248*61c4878aSAndroid Build Coastguard Worker
249*61c4878aSAndroid Build Coastguard Worker# TODO: b/228998350 - Figure out how to conditionally enable this test like GN
250*61c4878aSAndroid Build Coastguard Worker# with:
251*61c4878aSAndroid Build Coastguard Worker#    enable_if = pw_sync_THREAD_NOTIFICATION_BACKEND ==
252*61c4878aSAndroid Build Coastguard Worker#                "$dir_pw_sync_freertos:thread_notification" &&
253*61c4878aSAndroid Build Coastguard Worker#                pw_chrono_SYSTEM_CLOCK_BACKEND != "" &&
254*61c4878aSAndroid Build Coastguard Worker#                pw_thread_THREAD_BACKEND != "" && pw_thread_SLEEP_BACKEND != ""
255*61c4878aSAndroid Build Coastguard Worker#
256*61c4878aSAndroid Build Coastguard Worker# pw_cc_test(
257*61c4878aSAndroid Build Coastguard Worker#     name = "thread_notification_test_with_static_threads",
258*61c4878aSAndroid Build Coastguard Worker#     target_compatible_with = [
259*61c4878aSAndroid Build Coastguard Worker#         "//pw_build/constraints/rtos:freertos",
260*61c4878aSAndroid Build Coastguard Worker#     ],
261*61c4878aSAndroid Build Coastguard Worker#     deps = [
262*61c4878aSAndroid Build Coastguard Worker#         ":thread_notification_test",
263*61c4878aSAndroid Build Coastguard Worker#         "//pw_thread_freertos:static_test_threads",
264*61c4878aSAndroid Build Coastguard Worker#     ],
265*61c4878aSAndroid Build Coastguard Worker# )
266*61c4878aSAndroid Build Coastguard Worker
267*61c4878aSAndroid Build Coastguard Worker# TODO: b/228998350 - Figure out how to conditionally enable this test like GN
268*61c4878aSAndroid Build Coastguard Worker#
269*61c4878aSAndroid Build Coastguard Worker# You can instantiate this with your own implementation of
270*61c4878aSAndroid Build Coastguard Worker# "//pw_thread:non_portable_test_thread_options", see
271*61c4878aSAndroid Build Coastguard Worker# ":timed_thread_notification_test_with_static_threads" below as an example.
272*61c4878aSAndroid Build Coastguard Worker#pw_cc_library(
273*61c4878aSAndroid Build Coastguard Worker#    name = "timed_thread_notification_test",
274*61c4878aSAndroid Build Coastguard Worker#    srcs = [
275*61c4878aSAndroid Build Coastguard Worker#        "timed_thread_notification_test.cc",
276*61c4878aSAndroid Build Coastguard Worker#    ],
277*61c4878aSAndroid Build Coastguard Worker#    # TODO: b/234876414 - This should depend on FreeRTOS but our third parties
278*61c4878aSAndroid Build Coastguard Worker#    # currently do not have Bazel support.
279*61c4878aSAndroid Build Coastguard Worker#    deps = [
280*61c4878aSAndroid Build Coastguard Worker#        "//pw_chrono:system_clock",
281*61c4878aSAndroid Build Coastguard Worker#        "//pw_sync:timed_thread_notification",
282*61c4878aSAndroid Build Coastguard Worker#        "//pw_thread:sleep",
283*61c4878aSAndroid Build Coastguard Worker#        "//pw_thread:non_portable_test_thread_options",
284*61c4878aSAndroid Build Coastguard Worker#        "//pw_thread:thread",
285*61c4878aSAndroid Build Coastguard Worker#        "//pw_unit_test",
286*61c4878aSAndroid Build Coastguard Worker#    ],
287*61c4878aSAndroid Build Coastguard Worker#)
288*61c4878aSAndroid Build Coastguard Workerfilegroup(
289*61c4878aSAndroid Build Coastguard Worker    name = "timed_thread_notification_test",
290*61c4878aSAndroid Build Coastguard Worker    srcs = [
291*61c4878aSAndroid Build Coastguard Worker        "timed_thread_notification_test.cc",
292*61c4878aSAndroid Build Coastguard Worker    ],
293*61c4878aSAndroid Build Coastguard Worker)
294*61c4878aSAndroid Build Coastguard Worker
295*61c4878aSAndroid Build Coastguard Worker# TODO: b/228998350 - Figure out how to conditionally enable this test like GN
296*61c4878aSAndroid Build Coastguard Worker# with:
297*61c4878aSAndroid Build Coastguard Worker#    enable_if = pw_sync_TIMED_THREAD_NOTIFICATION_BACKEND ==
298*61c4878aSAndroid Build Coastguard Worker#                "$dir_pw_sync_freertos:timed_thread_notification" &&
299*61c4878aSAndroid Build Coastguard Worker#                pw_chrono_SYSTEM_CLOCK_BACKEND != "" &&
300*61c4878aSAndroid Build Coastguard Worker#                pw_thread_THREAD_BACKEND != "" && pw_thread_SLEEP_BACKEND != ""
301*61c4878aSAndroid Build Coastguard Worker#
302*61c4878aSAndroid Build Coastguard Worker# pw_cc_test(
303*61c4878aSAndroid Build Coastguard Worker#     name = "timed_thread_notification_test_with_static_threads",
304*61c4878aSAndroid Build Coastguard Worker#     target_compatible_with = [
305*61c4878aSAndroid Build Coastguard Worker#         "//pw_build/constraints/rtos:freertos",
306*61c4878aSAndroid Build Coastguard Worker#     ],
307*61c4878aSAndroid Build Coastguard Worker#     deps = [
308*61c4878aSAndroid Build Coastguard Worker#         ":timed_thread_notification_test",
309*61c4878aSAndroid Build Coastguard Worker#         "//pw_thread_freertos:static_test_threads",
310*61c4878aSAndroid Build Coastguard Worker#     ],
311*61c4878aSAndroid Build Coastguard Worker# )
312