blob: b2cd78946b8c221171bb166dd753f860877bc714 [file] [log] [blame]
Alexei Frolov26e3ae62020-05-04 17:06:17 -07001# 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
15load(
16 "//pw_build:pigweed.bzl",
17 "pw_cc_library",
18 "pw_cc_test",
19)
20
21package(default_visibility = ["//visibility:public"])
22
23licenses(["notice"]) # Apache License 2.0
24
25pw_cc_library(
Alexei Frolov4d2adde2020-08-04 10:19:24 -070026 name = "client",
27 srcs = [
Alexei Frolov4d2adde2020-08-04 10:19:24 -070028 "base_client_call.cc",
Wyatt Heplere95bd722020-11-23 07:49:47 -080029 "client.cc",
Alexei Frolov4d2adde2020-08-04 10:19:24 -070030 ],
31 hdrs = [
32 "public/pw_rpc/client.h",
33 "public/pw_rpc/internal/base_client_call.h",
34 ],
35 deps = [
36 ":common",
Wyatt Heplere95bd722020-11-23 07:49:47 -080037 ],
Alexei Frolov4d2adde2020-08-04 10:19:24 -070038)
39
40pw_cc_library(
Wyatt Heplercbd09c22020-09-15 11:17:24 -070041 name = "server",
Wyatt Hepler80f26ff2020-06-01 09:30:17 -070042 srcs = [
Wyatt Heplercb9d9572020-06-01 11:25:58 -070043 "base_server_writer.cc",
44 "public/pw_rpc/internal/base_server_writer.h",
Wyatt Heplercbd09c22020-09-15 11:17:24 -070045 "public/pw_rpc/internal/call.h",
Wyatt Heplercbd09c22020-09-15 11:17:24 -070046 "public/pw_rpc/internal/hash.h",
47 "public/pw_rpc/internal/method.h",
Wyatt Heplerafd29142020-11-23 07:58:59 -080048 "public/pw_rpc/internal/method_lookup.h",
Alexei Frolova4d71502020-10-14 12:43:14 -070049 "public/pw_rpc/internal/method_union.h",
Wyatt Heplercbd09c22020-09-15 11:17:24 -070050 "public/pw_rpc/internal/server.h",
Wyatt Hepler80f26ff2020-06-01 09:30:17 -070051 "server.cc",
52 "service.cc",
Wyatt Hepler80f26ff2020-06-01 09:30:17 -070053 ],
54 hdrs = [
55 "public/pw_rpc/server.h",
56 "public/pw_rpc/server_context.h",
Alexei Frolov9a4d6bf2020-08-04 10:33:26 -070057 "public/pw_rpc/service.h",
Alexei Frolov26e3ae62020-05-04 17:06:17 -070058 ],
59 includes = ["public"],
60 deps = [
Alexei Frolov4d2adde2020-08-04 10:19:24 -070061 ":common",
62 ],
63)
64
65pw_cc_library(
Alexei Frolov3e280922021-04-12 14:53:06 -070066 name = "client_server",
67 srcs = ["client_server.cc"],
68 hdrs = ["public/pw_rpc/client_server.h"],
69 deps = [
70 ":client",
71 ":server",
72 ],
73)
74
75pw_cc_library(
Alexei Frolov4d2adde2020-08-04 10:19:24 -070076 name = "common",
77 srcs = [
78 "channel.cc",
79 "packet.cc",
80 "public/pw_rpc/internal/channel.h",
Wyatt Heplerdb5a7cc2020-11-25 10:53:25 -080081 "public/pw_rpc/internal/config.h",
Alexei Frolov4d2adde2020-08-04 10:19:24 -070082 "public/pw_rpc/internal/method_type.h",
83 "public/pw_rpc/internal/packet.h",
84 ],
85 hdrs = [
86 "public/pw_rpc/channel.h",
87 ],
88 includes = ["public"],
89 deps = [
Alexei Frolov26e3ae62020-05-04 17:06:17 -070090 "//pw_assert",
Alexei Frolov5d6d3922020-05-08 13:57:02 -070091 "//pw_log",
Alexei Frolov26e3ae62020-05-04 17:06:17 -070092 "//pw_span",
Alexei Frolov5d6d3922020-05-08 13:57:02 -070093 "//pw_status",
94 ],
Wyatt Hepler80f26ff2020-06-01 09:30:17 -070095)
96
Wyatt Heplercb9d9572020-06-01 11:25:58 -070097pw_cc_library(
Alexei Frolove39af8d2020-12-30 14:55:09 -080098 name = "synchronized_channel_output",
99 hdrs = ["public/pw_rpc/synchronized_channel_output.h"],
100 includes = ["public"],
101 deps = [
102 ":common",
Ewout van Bekkumcc9ef832021-04-08 08:51:16 -0700103 "//pw_sync:lock_annotations",
Alexei Frolove39af8d2020-12-30 14:55:09 -0800104 "//pw_sync:mutex",
105 ],
106)
107
108pw_cc_library(
Wyatt Hepler8aa02922020-07-17 08:54:37 -0700109 name = "internal_test_utils",
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700110 hdrs = [
111 "public/pw_rpc/internal/test_method.h",
112 "pw_rpc_private/internal_test_utils.h",
Wyatt Heplerb6495b32020-11-23 07:50:59 -0800113 "pw_rpc_private/method_impl_tester.h",
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700114 ],
Wyatt Heplercb9d9572020-06-01 11:25:58 -0700115 visibility = ["//visibility:private"],
116 deps = [
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700117 ":server",
Wyatt Heplercb9d9572020-06-01 11:25:58 -0700118 "//pw_span",
119 ],
120)
121
Wyatt Hepler948f5472020-06-02 16:52:28 -0700122# TODO(hepler): Cannot build nanopb-dependent code in Bazel at the moment. Need
123# to determine how best to support Nanopb builds and protobuf generation.
124filegroup(
125 name = "nanopb",
126 srcs = [
Alexei Frolov7fb63af2020-07-09 17:05:52 -0700127 "nanopb/codegen_test.cc",
Alexei Frolov7c7a3862020-07-16 15:36:02 -0700128 "nanopb/echo_service_test.cc",
Wyatt Heplerafd29142020-11-23 07:58:59 -0800129 "nanopb/method_lookup_test.cc",
Alexei Frolov4d2adde2020-08-04 10:19:24 -0700130 "nanopb/nanopb_client_call.cc",
131 "nanopb/nanopb_client_call_test.cc",
132 "nanopb/nanopb_common.cc",
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700133 "nanopb/nanopb_method.cc",
134 "nanopb/nanopb_method_test.cc",
Alexei Frolova4d71502020-10-14 12:43:14 -0700135 "nanopb/nanopb_method_union_test.cc",
Alexei Frolov7c7a3862020-07-16 15:36:02 -0700136 "nanopb/public/pw_rpc/echo_service_nanopb.h",
Alexei Frolov4d2adde2020-08-04 10:19:24 -0700137 "nanopb/public/pw_rpc/internal/nanopb_common.h",
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700138 "nanopb/public/pw_rpc/internal/nanopb_method.h",
Alexei Frolova4d71502020-10-14 12:43:14 -0700139 "nanopb/public/pw_rpc/internal/nanopb_method_union.h",
Alexei Frolovd98a99d2020-10-20 13:51:24 -0700140 "nanopb/public/pw_rpc/nanopb_client_call.h",
141 "nanopb/public/pw_rpc/nanopb_test_method_context.h",
Alexei Frolov4d2adde2020-08-04 10:19:24 -0700142 "nanopb/pw_rpc_nanopb_private/internal_test_utils.h",
Wyatt Hepler8779bcd2020-11-25 07:25:16 -0800143 "nanopb/stub_generation_test.cc",
Wyatt Hepler948f5472020-06-02 16:52:28 -0700144 ],
145)
146
Wyatt Heplercb9d9572020-06-01 11:25:58 -0700147pw_cc_test(
148 name = "base_server_writer_test",
149 srcs = [
150 "base_server_writer_test.cc",
151 ],
152 deps = [
Wyatt Hepler8aa02922020-07-17 08:54:37 -0700153 ":internal_test_utils",
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700154 ":server",
Wyatt Heplercb9d9572020-06-01 11:25:58 -0700155 ],
156)
157
Wyatt Hepler80f26ff2020-06-01 09:30:17 -0700158pw_cc_test(
Alexei Frolov4d2adde2020-08-04 10:19:24 -0700159 name = "base_client_call_test",
160 srcs = [
161 "base_client_call_test.cc",
162 ],
163 deps = [
164 ":client",
165 ":internal_test_utils",
166 ],
167)
168
169pw_cc_test(
170 name = "client_test",
171 srcs = [
172 "client_test.cc",
173 ],
174 deps = [
175 ":client",
176 ":internal_test_utils",
177 ],
178)
179
180pw_cc_test(
Wyatt Hepler671946e2020-06-09 14:39:33 -0700181 name = "channel_test",
182 srcs = ["channel_test.cc"],
183 deps = [
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700184 ":server",
Wyatt Hepler671946e2020-06-09 14:39:33 -0700185 ":test_utils_test_server",
186 ],
187)
188
189pw_cc_test(
Wyatt Hepler80f26ff2020-06-01 09:30:17 -0700190 name = "packet_test",
Alexei Frolov5d6d3922020-05-08 13:57:02 -0700191 srcs = [
Wyatt Hepler80f26ff2020-06-01 09:30:17 -0700192 "packet_test.cc",
193 ],
194 deps = [
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700195 ":server",
Alexei Frolov26e3ae62020-05-04 17:06:17 -0700196 ],
197)
198
Alexei Frolov3e280922021-04-12 14:53:06 -0700199pw_cc_test(
200 name = "client_server_test",
201 srcs = ["client_server_test.cc"],
202 deps = [
203 ":client_server",
204 "//pw_rpc/raw:method_union",
205 ],
206)
207
Alexei Frolov6560ec82020-06-03 11:03:05 -0700208proto_library(
209 name = "packet_proto",
210 srcs = [
Wyatt Hepler91741472021-02-03 08:45:10 -0800211 "pw_rpc_protos/internal/packet.proto",
Wyatt Hepler948f5472020-06-02 16:52:28 -0700212 ],
Alexei Frolov6560ec82020-06-03 11:03:05 -0700213)
214
Alexei Frolov26e3ae62020-05-04 17:06:17 -0700215pw_cc_test(
216 name = "server_test",
217 srcs = [
218 "server_test.cc",
219 ],
220 deps = [
Wyatt Hepler8aa02922020-07-17 08:54:37 -0700221 ":internal_test_utils",
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700222 ":server",
Wyatt Hepler80f26ff2020-06-01 09:30:17 -0700223 "//pw_assert",
Alexei Frolov5d6d3922020-05-08 13:57:02 -0700224 ],
225)
Wyatt Heplerd1591422020-09-15 10:04:41 -0700226
227pw_cc_test(
228 name = "service_test",
229 srcs = [
230 "service_test.cc",
231 ],
232 deps = [
Wyatt Heplerd1591422020-09-15 10:04:41 -0700233 ":internal_test_utils",
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700234 ":server",
Wyatt Heplerd1591422020-09-15 10:04:41 -0700235 "//pw_assert",
236 ],
237)