xref: /aosp_15_r20/external/pigweed/pw_rpc/nanopb/BUILD.gn (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 Workerimport("//build_overrides/pigweed.gni")
16*61c4878aSAndroid Build Coastguard Worker
17*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/target_types.gni")
18*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_docgen/docs.gni")
19*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_sync/backend.gni")
20*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_third_party/nanopb/nanopb.gni")
21*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_thread/backend.gni")
22*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_unit_test/test.gni")
23*61c4878aSAndroid Build Coastguard Worker
24*61c4878aSAndroid Build Coastguard Workerconfig("public") {
25*61c4878aSAndroid Build Coastguard Worker  include_dirs = [ "public" ]
26*61c4878aSAndroid Build Coastguard Worker  visibility = [ ":*" ]
27*61c4878aSAndroid Build Coastguard Worker}
28*61c4878aSAndroid Build Coastguard Worker
29*61c4878aSAndroid Build Coastguard Workerpw_source_set("server_api") {
30*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public" ]
31*61c4878aSAndroid Build Coastguard Worker  public = [
32*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/nanopb/internal/method.h",
33*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/nanopb/internal/method_union.h",
34*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/nanopb/server_reader_writer.h",
35*61c4878aSAndroid Build Coastguard Worker  ]
36*61c4878aSAndroid Build Coastguard Worker  sources = [
37*61c4878aSAndroid Build Coastguard Worker    "method.cc",
38*61c4878aSAndroid Build Coastguard Worker    "server_reader_writer.cc",
39*61c4878aSAndroid Build Coastguard Worker  ]
40*61c4878aSAndroid Build Coastguard Worker  public_deps = [
41*61c4878aSAndroid Build Coastguard Worker    ":common",
42*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_rpc/raw:server_api",
43*61c4878aSAndroid Build Coastguard Worker    "..:config",
44*61c4878aSAndroid Build Coastguard Worker    "..:server",
45*61c4878aSAndroid Build Coastguard Worker    dir_pw_bytes,
46*61c4878aSAndroid Build Coastguard Worker    dir_pw_span,
47*61c4878aSAndroid Build Coastguard Worker  ]
48*61c4878aSAndroid Build Coastguard Worker  deps = [
49*61c4878aSAndroid Build Coastguard Worker    "..:log_config",
50*61c4878aSAndroid Build Coastguard Worker    dir_pw_log,
51*61c4878aSAndroid Build Coastguard Worker  ]
52*61c4878aSAndroid Build Coastguard Worker  allow_circular_includes_from = [ ":common" ]
53*61c4878aSAndroid Build Coastguard Worker}
54*61c4878aSAndroid Build Coastguard Worker
55*61c4878aSAndroid Build Coastguard Workerpw_source_set("client_api") {
56*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public" ]
57*61c4878aSAndroid Build Coastguard Worker  public_deps = [
58*61c4878aSAndroid Build Coastguard Worker    ":common",
59*61c4878aSAndroid Build Coastguard Worker    "..:client",
60*61c4878aSAndroid Build Coastguard Worker    dir_pw_function,
61*61c4878aSAndroid Build Coastguard Worker  ]
62*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_rpc/nanopb/client_reader_writer.h" ]
63*61c4878aSAndroid Build Coastguard Worker}
64*61c4878aSAndroid Build Coastguard Worker
65*61c4878aSAndroid Build Coastguard Workerpw_source_set("common") {
66*61c4878aSAndroid Build Coastguard Worker  public_deps = [
67*61c4878aSAndroid Build Coastguard Worker    "..:common",
68*61c4878aSAndroid Build Coastguard Worker    dir_pw_bytes,
69*61c4878aSAndroid Build Coastguard Worker  ]
70*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public" ]
71*61c4878aSAndroid Build Coastguard Worker  deps = [
72*61c4878aSAndroid Build Coastguard Worker    "..:client",
73*61c4878aSAndroid Build Coastguard Worker    "..:log_config",
74*61c4878aSAndroid Build Coastguard Worker    dir_pw_log,
75*61c4878aSAndroid Build Coastguard Worker  ]
76*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_rpc/nanopb/internal/common.h" ]
77*61c4878aSAndroid Build Coastguard Worker  sources = [ "common.cc" ]
78*61c4878aSAndroid Build Coastguard Worker
79*61c4878aSAndroid Build Coastguard Worker  if (dir_pw_third_party_nanopb != "") {
80*61c4878aSAndroid Build Coastguard Worker    public_deps += [ "$dir_pw_third_party/nanopb" ]
81*61c4878aSAndroid Build Coastguard Worker  }
82*61c4878aSAndroid Build Coastguard Worker}
83*61c4878aSAndroid Build Coastguard Worker
84*61c4878aSAndroid Build Coastguard Workerpw_source_set("test_method_context") {
85*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public" ]
86*61c4878aSAndroid Build Coastguard Worker  public = [
87*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/nanopb/fake_channel_output.h",
88*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/nanopb/test_method_context.h",
89*61c4878aSAndroid Build Coastguard Worker  ]
90*61c4878aSAndroid Build Coastguard Worker  public_deps = [
91*61c4878aSAndroid Build Coastguard Worker    ":server_api",
92*61c4878aSAndroid Build Coastguard Worker    "..:test_utils",
93*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
94*61c4878aSAndroid Build Coastguard Worker    dir_pw_containers,
95*61c4878aSAndroid Build Coastguard Worker  ]
96*61c4878aSAndroid Build Coastguard Worker}
97*61c4878aSAndroid Build Coastguard Worker
98*61c4878aSAndroid Build Coastguard Workerpw_source_set("client_testing") {
99*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_rpc/nanopb/client_testing.h" ]
100*61c4878aSAndroid Build Coastguard Worker  public_deps = [
101*61c4878aSAndroid Build Coastguard Worker    ":test_method_context",
102*61c4878aSAndroid Build Coastguard Worker    "..:client",
103*61c4878aSAndroid Build Coastguard Worker    "../raw:client_testing",
104*61c4878aSAndroid Build Coastguard Worker  ]
105*61c4878aSAndroid Build Coastguard Worker}
106*61c4878aSAndroid Build Coastguard Worker
107*61c4878aSAndroid Build Coastguard Workerpw_source_set("client_server_testing") {
108*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_rpc/nanopb/client_server_testing.h" ]
109*61c4878aSAndroid Build Coastguard Worker  public_deps = [
110*61c4878aSAndroid Build Coastguard Worker    ":test_method_context",
111*61c4878aSAndroid Build Coastguard Worker    "..:client_server_testing",
112*61c4878aSAndroid Build Coastguard Worker  ]
113*61c4878aSAndroid Build Coastguard Worker}
114*61c4878aSAndroid Build Coastguard Worker
115*61c4878aSAndroid Build Coastguard Workerpw_source_set("client_server_testing_threaded") {
116*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_rpc/nanopb/client_server_testing_threaded.h" ]
117*61c4878aSAndroid Build Coastguard Worker  public_deps = [
118*61c4878aSAndroid Build Coastguard Worker    ":test_method_context",
119*61c4878aSAndroid Build Coastguard Worker    "..:client_server_testing_threaded",
120*61c4878aSAndroid Build Coastguard Worker  ]
121*61c4878aSAndroid Build Coastguard Worker}
122*61c4878aSAndroid Build Coastguard Worker
123*61c4878aSAndroid Build Coastguard Workerpw_source_set("internal_test_utils") {
124*61c4878aSAndroid Build Coastguard Worker  public = [ "pw_rpc_nanopb_private/internal_test_utils.h" ]
125*61c4878aSAndroid Build Coastguard Worker  public_deps = [ dir_pw_span ]
126*61c4878aSAndroid Build Coastguard Worker  if (dir_pw_third_party_nanopb != "") {
127*61c4878aSAndroid Build Coastguard Worker    public_deps += [ "$dir_pw_third_party/nanopb" ]
128*61c4878aSAndroid Build Coastguard Worker  }
129*61c4878aSAndroid Build Coastguard Worker}
130*61c4878aSAndroid Build Coastguard Worker
131*61c4878aSAndroid Build Coastguard Workerpw_source_set("echo_service") {
132*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public" ]
133*61c4878aSAndroid Build Coastguard Worker  public_deps = [ "..:protos.nanopb_rpc" ]
134*61c4878aSAndroid Build Coastguard Worker  sources = [ "public/pw_rpc/echo_service_nanopb.h" ]
135*61c4878aSAndroid Build Coastguard Worker}
136*61c4878aSAndroid Build Coastguard Worker
137*61c4878aSAndroid Build Coastguard Workerpw_source_set("client_integration_test") {
138*61c4878aSAndroid Build Coastguard Worker  testonly = pw_unit_test_TESTONLY
139*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public" ]
140*61c4878aSAndroid Build Coastguard Worker  public_deps = [
141*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:binary_semaphore",
142*61c4878aSAndroid Build Coastguard Worker    "..:integration_testing",
143*61c4878aSAndroid Build Coastguard Worker    "..:protos.nanopb_rpc",
144*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
145*61c4878aSAndroid Build Coastguard Worker    dir_pw_unit_test,
146*61c4878aSAndroid Build Coastguard Worker  ]
147*61c4878aSAndroid Build Coastguard Worker  sources = [ "client_integration_test.cc" ]
148*61c4878aSAndroid Build Coastguard Worker}
149*61c4878aSAndroid Build Coastguard Worker
150*61c4878aSAndroid Build Coastguard Workerpw_doc_group("docs") {
151*61c4878aSAndroid Build Coastguard Worker  inputs = [ "Kconfig" ]
152*61c4878aSAndroid Build Coastguard Worker  sources = [ "docs.rst" ]
153*61c4878aSAndroid Build Coastguard Worker}
154*61c4878aSAndroid Build Coastguard Worker
155*61c4878aSAndroid Build Coastguard Workerpw_test_group("tests") {
156*61c4878aSAndroid Build Coastguard Worker  tests = [
157*61c4878aSAndroid Build Coastguard Worker    ":callback_test",
158*61c4878aSAndroid Build Coastguard Worker    ":client_call_test",
159*61c4878aSAndroid Build Coastguard Worker    ":client_reader_writer_test",
160*61c4878aSAndroid Build Coastguard Worker    ":client_server_context_test",
161*61c4878aSAndroid Build Coastguard Worker    ":client_server_context_threaded_test",
162*61c4878aSAndroid Build Coastguard Worker    ":codegen_test",
163*61c4878aSAndroid Build Coastguard Worker    ":echo_service_test",
164*61c4878aSAndroid Build Coastguard Worker    ":fake_channel_output_test",
165*61c4878aSAndroid Build Coastguard Worker    ":method_lookup_test",
166*61c4878aSAndroid Build Coastguard Worker    ":method_test",
167*61c4878aSAndroid Build Coastguard Worker    ":method_info_test",
168*61c4878aSAndroid Build Coastguard Worker    ":method_union_test",
169*61c4878aSAndroid Build Coastguard Worker    ":server_callback_test",
170*61c4878aSAndroid Build Coastguard Worker    ":server_reader_writer_test",
171*61c4878aSAndroid Build Coastguard Worker    ":serde_test",
172*61c4878aSAndroid Build Coastguard Worker    ":stub_generation_test",
173*61c4878aSAndroid Build Coastguard Worker    ":synchronous_call_test",
174*61c4878aSAndroid Build Coastguard Worker  ]
175*61c4878aSAndroid Build Coastguard Worker}
176*61c4878aSAndroid Build Coastguard Worker
177*61c4878aSAndroid Build Coastguard Workerpw_test("callback_test") {
178*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != "" &&
179*61c4878aSAndroid Build Coastguard Worker              pw_thread_THREAD_BACKEND == "$dir_pw_thread_stl:thread"
180*61c4878aSAndroid Build Coastguard Worker  deps = [
181*61c4878aSAndroid Build Coastguard Worker    ":client_testing",
182*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:binary_semaphore",
183*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_thread:non_portable_test_thread_options",
184*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_thread:sleep",
185*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_thread:yield",
186*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_thread_stl:non_portable_test_thread_options",
187*61c4878aSAndroid Build Coastguard Worker    "..:client",
188*61c4878aSAndroid Build Coastguard Worker    "..:server",
189*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb_rpc",
190*61c4878aSAndroid Build Coastguard Worker  ]
191*61c4878aSAndroid Build Coastguard Worker  sources = [ "callback_test.cc" ]
192*61c4878aSAndroid Build Coastguard Worker}
193*61c4878aSAndroid Build Coastguard Worker
194*61c4878aSAndroid Build Coastguard Workerpw_test("client_call_test") {
195*61c4878aSAndroid Build Coastguard Worker  deps = [
196*61c4878aSAndroid Build Coastguard Worker    ":client_api",
197*61c4878aSAndroid Build Coastguard Worker    ":internal_test_utils",
198*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb",
199*61c4878aSAndroid Build Coastguard Worker    "..:test_utils",
200*61c4878aSAndroid Build Coastguard Worker  ]
201*61c4878aSAndroid Build Coastguard Worker  sources = [ "client_call_test.cc" ]
202*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != ""
203*61c4878aSAndroid Build Coastguard Worker
204*61c4878aSAndroid Build Coastguard Worker  # TODO: https://pwbug.dev/325509758 - Doesn't work on the Pico yet; hangs
205*61c4878aSAndroid Build Coastguard Worker  # indefinitely.
206*61c4878aSAndroid Build Coastguard Worker  if (pw_build_EXECUTABLE_TARGET_TYPE == "pico_executable") {
207*61c4878aSAndroid Build Coastguard Worker    enable_if = false
208*61c4878aSAndroid Build Coastguard Worker  }
209*61c4878aSAndroid Build Coastguard Worker}
210*61c4878aSAndroid Build Coastguard Worker
211*61c4878aSAndroid Build Coastguard Workerpw_test("client_reader_writer_test") {
212*61c4878aSAndroid Build Coastguard Worker  deps = [
213*61c4878aSAndroid Build Coastguard Worker    ":client_api",
214*61c4878aSAndroid Build Coastguard Worker    ":client_testing",
215*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb_rpc",
216*61c4878aSAndroid Build Coastguard Worker  ]
217*61c4878aSAndroid Build Coastguard Worker  sources = [ "client_reader_writer_test.cc" ]
218*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != ""
219*61c4878aSAndroid Build Coastguard Worker}
220*61c4878aSAndroid Build Coastguard Worker
221*61c4878aSAndroid Build Coastguard Workerpw_test("client_server_context_test") {
222*61c4878aSAndroid Build Coastguard Worker  deps = [
223*61c4878aSAndroid Build Coastguard Worker    ":client_api",
224*61c4878aSAndroid Build Coastguard Worker    ":client_server_testing",
225*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:mutex",
226*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb_rpc",
227*61c4878aSAndroid Build Coastguard Worker  ]
228*61c4878aSAndroid Build Coastguard Worker  sources = [ "client_server_context_test.cc" ]
229*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != "" && pw_sync_MUTEX_BACKEND != ""
230*61c4878aSAndroid Build Coastguard Worker}
231*61c4878aSAndroid Build Coastguard Worker
232*61c4878aSAndroid Build Coastguard Worker_stl_threading_and_nanopb_enabled =
233*61c4878aSAndroid Build Coastguard Worker    pw_thread_THREAD_BACKEND == "$dir_pw_thread_stl:thread" &&
234*61c4878aSAndroid Build Coastguard Worker    pw_sync_BINARY_SEMAPHORE_BACKEND != "" && pw_sync_MUTEX_BACKEND != "" &&
235*61c4878aSAndroid Build Coastguard Worker    dir_pw_third_party_nanopb != ""
236*61c4878aSAndroid Build Coastguard Worker
237*61c4878aSAndroid Build Coastguard Workerpw_test("client_server_context_threaded_test") {
238*61c4878aSAndroid Build Coastguard Worker  deps = [
239*61c4878aSAndroid Build Coastguard Worker    ":client_api",
240*61c4878aSAndroid Build Coastguard Worker    ":client_server_testing_threaded",
241*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:binary_semaphore",
242*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:mutex",
243*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_thread:non_portable_test_thread_options",
244*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_thread_stl:non_portable_test_thread_options",
245*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb_rpc",
246*61c4878aSAndroid Build Coastguard Worker  ]
247*61c4878aSAndroid Build Coastguard Worker  sources = [ "client_server_context_threaded_test.cc" ]
248*61c4878aSAndroid Build Coastguard Worker  enable_if = _stl_threading_and_nanopb_enabled
249*61c4878aSAndroid Build Coastguard Worker}
250*61c4878aSAndroid Build Coastguard Worker
251*61c4878aSAndroid Build Coastguard Workerpw_test("codegen_test") {
252*61c4878aSAndroid Build Coastguard Worker  deps = [
253*61c4878aSAndroid Build Coastguard Worker    ":client_api",
254*61c4878aSAndroid Build Coastguard Worker    ":internal_test_utils",
255*61c4878aSAndroid Build Coastguard Worker    ":server_api",
256*61c4878aSAndroid Build Coastguard Worker    ":test_method_context",
257*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb_rpc",
258*61c4878aSAndroid Build Coastguard Worker    "..:test_utils",
259*61c4878aSAndroid Build Coastguard Worker  ]
260*61c4878aSAndroid Build Coastguard Worker  sources = [ "codegen_test.cc" ]
261*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != ""
262*61c4878aSAndroid Build Coastguard Worker}
263*61c4878aSAndroid Build Coastguard Worker
264*61c4878aSAndroid Build Coastguard Workerpw_test("fake_channel_output_test") {
265*61c4878aSAndroid Build Coastguard Worker  deps = [
266*61c4878aSAndroid Build Coastguard Worker    ":server_api",
267*61c4878aSAndroid Build Coastguard Worker    ":test_method_context",
268*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb_rpc",
269*61c4878aSAndroid Build Coastguard Worker  ]
270*61c4878aSAndroid Build Coastguard Worker  sources = [ "fake_channel_output_test.cc" ]
271*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != ""
272*61c4878aSAndroid Build Coastguard Worker}
273*61c4878aSAndroid Build Coastguard Worker
274*61c4878aSAndroid Build Coastguard Workerpw_test("method_test") {
275*61c4878aSAndroid Build Coastguard Worker  deps = [
276*61c4878aSAndroid Build Coastguard Worker    ":internal_test_utils",
277*61c4878aSAndroid Build Coastguard Worker    ":server_api",
278*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_containers",
279*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb",
280*61c4878aSAndroid Build Coastguard Worker    "..:test_utils",
281*61c4878aSAndroid Build Coastguard Worker  ]
282*61c4878aSAndroid Build Coastguard Worker  sources = [ "method_test.cc" ]
283*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != ""
284*61c4878aSAndroid Build Coastguard Worker}
285*61c4878aSAndroid Build Coastguard Worker
286*61c4878aSAndroid Build Coastguard Workerpw_test("method_info_test") {
287*61c4878aSAndroid Build Coastguard Worker  deps = [
288*61c4878aSAndroid Build Coastguard Worker    "..:common",
289*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb_rpc",
290*61c4878aSAndroid Build Coastguard Worker    "..:test_utils",
291*61c4878aSAndroid Build Coastguard Worker  ]
292*61c4878aSAndroid Build Coastguard Worker  sources = [ "method_info_test.cc" ]
293*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != ""
294*61c4878aSAndroid Build Coastguard Worker}
295*61c4878aSAndroid Build Coastguard Worker
296*61c4878aSAndroid Build Coastguard Workerpw_test("method_lookup_test") {
297*61c4878aSAndroid Build Coastguard Worker  deps = [
298*61c4878aSAndroid Build Coastguard Worker    ":server_api",
299*61c4878aSAndroid Build Coastguard Worker    ":test_method_context",
300*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb_rpc",
301*61c4878aSAndroid Build Coastguard Worker    "..:test_utils",
302*61c4878aSAndroid Build Coastguard Worker    "../raw:test_method_context",
303*61c4878aSAndroid Build Coastguard Worker  ]
304*61c4878aSAndroid Build Coastguard Worker  sources = [ "method_lookup_test.cc" ]
305*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != ""
306*61c4878aSAndroid Build Coastguard Worker}
307*61c4878aSAndroid Build Coastguard Worker
308*61c4878aSAndroid Build Coastguard Workerpw_test("method_union_test") {
309*61c4878aSAndroid Build Coastguard Worker  deps = [
310*61c4878aSAndroid Build Coastguard Worker    ":internal_test_utils",
311*61c4878aSAndroid Build Coastguard Worker    ":server_api",
312*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb",
313*61c4878aSAndroid Build Coastguard Worker    "..:test_utils",
314*61c4878aSAndroid Build Coastguard Worker  ]
315*61c4878aSAndroid Build Coastguard Worker  sources = [ "method_union_test.cc" ]
316*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != ""
317*61c4878aSAndroid Build Coastguard Worker}
318*61c4878aSAndroid Build Coastguard Worker
319*61c4878aSAndroid Build Coastguard Workerpw_test("echo_service_test") {
320*61c4878aSAndroid Build Coastguard Worker  deps = [
321*61c4878aSAndroid Build Coastguard Worker    ":echo_service",
322*61c4878aSAndroid Build Coastguard Worker    ":server_api",
323*61c4878aSAndroid Build Coastguard Worker    ":test_method_context",
324*61c4878aSAndroid Build Coastguard Worker  ]
325*61c4878aSAndroid Build Coastguard Worker  sources = [ "echo_service_test.cc" ]
326*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != ""
327*61c4878aSAndroid Build Coastguard Worker}
328*61c4878aSAndroid Build Coastguard Worker
329*61c4878aSAndroid Build Coastguard Workerpw_test("serde_test") {
330*61c4878aSAndroid Build Coastguard Worker  deps = [
331*61c4878aSAndroid Build Coastguard Worker    ":server_api",
332*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb",
333*61c4878aSAndroid Build Coastguard Worker  ]
334*61c4878aSAndroid Build Coastguard Worker  sources = [ "serde_test.cc" ]
335*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != ""
336*61c4878aSAndroid Build Coastguard Worker}
337*61c4878aSAndroid Build Coastguard Worker
338*61c4878aSAndroid Build Coastguard Workerpw_test("server_callback_test") {
339*61c4878aSAndroid Build Coastguard Worker  deps = [
340*61c4878aSAndroid Build Coastguard Worker    ":server_api",
341*61c4878aSAndroid Build Coastguard Worker    ":test_method_context",
342*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb_rpc",
343*61c4878aSAndroid Build Coastguard Worker  ]
344*61c4878aSAndroid Build Coastguard Worker  sources = [ "server_callback_test.cc" ]
345*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != ""
346*61c4878aSAndroid Build Coastguard Worker}
347*61c4878aSAndroid Build Coastguard Worker
348*61c4878aSAndroid Build Coastguard Workerpw_test("server_reader_writer_test") {
349*61c4878aSAndroid Build Coastguard Worker  deps = [
350*61c4878aSAndroid Build Coastguard Worker    ":server_api",
351*61c4878aSAndroid Build Coastguard Worker    ":test_method_context",
352*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb_rpc",
353*61c4878aSAndroid Build Coastguard Worker  ]
354*61c4878aSAndroid Build Coastguard Worker  sources = [ "server_reader_writer_test.cc" ]
355*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != ""
356*61c4878aSAndroid Build Coastguard Worker}
357*61c4878aSAndroid Build Coastguard Worker
358*61c4878aSAndroid Build Coastguard Workerpw_test("stub_generation_test") {
359*61c4878aSAndroid Build Coastguard Worker  deps = [ "..:test_protos.nanopb_rpc" ]
360*61c4878aSAndroid Build Coastguard Worker  sources = [ "stub_generation_test.cc" ]
361*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != ""
362*61c4878aSAndroid Build Coastguard Worker}
363*61c4878aSAndroid Build Coastguard Worker
364*61c4878aSAndroid Build Coastguard Workerpw_test("synchronous_call_test") {
365*61c4878aSAndroid Build Coastguard Worker  deps = [
366*61c4878aSAndroid Build Coastguard Worker    ":test_method_context",
367*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_work_queue:pw_work_queue",
368*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_work_queue:stl_test_thread",
369*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_work_queue:test_thread",
370*61c4878aSAndroid Build Coastguard Worker    "..:synchronous_client_api",
371*61c4878aSAndroid Build Coastguard Worker    "..:test_protos.nanopb_rpc",
372*61c4878aSAndroid Build Coastguard Worker  ]
373*61c4878aSAndroid Build Coastguard Worker  sources = [ "synchronous_call_test.cc" ]
374*61c4878aSAndroid Build Coastguard Worker  enable_if = dir_pw_third_party_nanopb != "" &&
375*61c4878aSAndroid Build Coastguard Worker              pw_sync_TIMED_THREAD_NOTIFICATION_BACKEND != ""
376*61c4878aSAndroid Build Coastguard Worker
377*61c4878aSAndroid Build Coastguard Worker  # TODO: https://pwbug.dev/325509758 - Doesn't work on the Pico yet; hangs
378*61c4878aSAndroid Build Coastguard Worker  # indefinitely.
379*61c4878aSAndroid Build Coastguard Worker  if (pw_build_EXECUTABLE_TARGET_TYPE == "pico_executable") {
380*61c4878aSAndroid Build Coastguard Worker    enable_if = false
381*61c4878aSAndroid Build Coastguard Worker  }
382*61c4878aSAndroid Build Coastguard Worker}
383