blob: dfd0910902ad0b831bae632c6510527bf581706d [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(
66 name = "common",
67 srcs = [
68 "channel.cc",
69 "packet.cc",
70 "public/pw_rpc/internal/channel.h",
Wyatt Heplerdb5a7cc2020-11-25 10:53:25 -080071 "public/pw_rpc/internal/config.h",
Alexei Frolov4d2adde2020-08-04 10:19:24 -070072 "public/pw_rpc/internal/method_type.h",
73 "public/pw_rpc/internal/packet.h",
74 ],
75 hdrs = [
76 "public/pw_rpc/channel.h",
77 ],
78 includes = ["public"],
79 deps = [
Alexei Frolov26e3ae62020-05-04 17:06:17 -070080 "//pw_assert",
Alexei Frolov5d6d3922020-05-08 13:57:02 -070081 "//pw_log",
Alexei Frolov26e3ae62020-05-04 17:06:17 -070082 "//pw_span",
Alexei Frolov5d6d3922020-05-08 13:57:02 -070083 "//pw_status",
84 ],
Wyatt Hepler80f26ff2020-06-01 09:30:17 -070085)
86
Wyatt Heplercb9d9572020-06-01 11:25:58 -070087pw_cc_library(
Alexei Frolove39af8d2020-12-30 14:55:09 -080088 name = "synchronized_channel_output",
89 hdrs = ["public/pw_rpc/synchronized_channel_output.h"],
90 includes = ["public"],
91 deps = [
92 ":common",
93 "//pw_sync:mutex",
94 ],
95)
96
97pw_cc_library(
Wyatt Hepler8aa02922020-07-17 08:54:37 -070098 name = "internal_test_utils",
Wyatt Heplercbd09c22020-09-15 11:17:24 -070099 hdrs = [
100 "public/pw_rpc/internal/test_method.h",
101 "pw_rpc_private/internal_test_utils.h",
Wyatt Heplerb6495b32020-11-23 07:50:59 -0800102 "pw_rpc_private/method_impl_tester.h",
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700103 ],
Wyatt Heplercb9d9572020-06-01 11:25:58 -0700104 visibility = ["//visibility:private"],
105 deps = [
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700106 ":server",
Wyatt Heplercb9d9572020-06-01 11:25:58 -0700107 "//pw_span",
108 ],
109)
110
Wyatt Hepler948f5472020-06-02 16:52:28 -0700111# TODO(hepler): Cannot build nanopb-dependent code in Bazel at the moment. Need
112# to determine how best to support Nanopb builds and protobuf generation.
113filegroup(
114 name = "nanopb",
115 srcs = [
Alexei Frolov7fb63af2020-07-09 17:05:52 -0700116 "nanopb/codegen_test.cc",
Alexei Frolov7c7a3862020-07-16 15:36:02 -0700117 "nanopb/echo_service_test.cc",
Wyatt Heplerafd29142020-11-23 07:58:59 -0800118 "nanopb/method_lookup_test.cc",
Alexei Frolov4d2adde2020-08-04 10:19:24 -0700119 "nanopb/nanopb_client_call.cc",
120 "nanopb/nanopb_client_call_test.cc",
121 "nanopb/nanopb_common.cc",
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700122 "nanopb/nanopb_method.cc",
123 "nanopb/nanopb_method_test.cc",
Alexei Frolova4d71502020-10-14 12:43:14 -0700124 "nanopb/nanopb_method_union_test.cc",
Alexei Frolov7c7a3862020-07-16 15:36:02 -0700125 "nanopb/public/pw_rpc/echo_service_nanopb.h",
Alexei Frolov4d2adde2020-08-04 10:19:24 -0700126 "nanopb/public/pw_rpc/internal/nanopb_common.h",
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700127 "nanopb/public/pw_rpc/internal/nanopb_method.h",
Alexei Frolova4d71502020-10-14 12:43:14 -0700128 "nanopb/public/pw_rpc/internal/nanopb_method_union.h",
Alexei Frolovd98a99d2020-10-20 13:51:24 -0700129 "nanopb/public/pw_rpc/nanopb_client_call.h",
130 "nanopb/public/pw_rpc/nanopb_test_method_context.h",
Alexei Frolov4d2adde2020-08-04 10:19:24 -0700131 "nanopb/pw_rpc_nanopb_private/internal_test_utils.h",
Wyatt Hepler8779bcd2020-11-25 07:25:16 -0800132 "nanopb/stub_generation_test.cc",
Wyatt Hepler948f5472020-06-02 16:52:28 -0700133 ],
134)
135
Wyatt Heplercb9d9572020-06-01 11:25:58 -0700136pw_cc_test(
137 name = "base_server_writer_test",
138 srcs = [
139 "base_server_writer_test.cc",
140 ],
141 deps = [
Wyatt Hepler8aa02922020-07-17 08:54:37 -0700142 ":internal_test_utils",
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700143 ":server",
Wyatt Heplercb9d9572020-06-01 11:25:58 -0700144 ],
145)
146
Wyatt Hepler80f26ff2020-06-01 09:30:17 -0700147pw_cc_test(
Alexei Frolov4d2adde2020-08-04 10:19:24 -0700148 name = "base_client_call_test",
149 srcs = [
150 "base_client_call_test.cc",
151 ],
152 deps = [
153 ":client",
154 ":internal_test_utils",
155 ],
156)
157
158pw_cc_test(
159 name = "client_test",
160 srcs = [
161 "client_test.cc",
162 ],
163 deps = [
164 ":client",
165 ":internal_test_utils",
166 ],
167)
168
169pw_cc_test(
Wyatt Hepler671946e2020-06-09 14:39:33 -0700170 name = "channel_test",
171 srcs = ["channel_test.cc"],
172 deps = [
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700173 ":server",
Wyatt Hepler671946e2020-06-09 14:39:33 -0700174 ":test_utils_test_server",
175 ],
176)
177
178pw_cc_test(
Wyatt Hepler80f26ff2020-06-01 09:30:17 -0700179 name = "packet_test",
Alexei Frolov5d6d3922020-05-08 13:57:02 -0700180 srcs = [
Wyatt Hepler80f26ff2020-06-01 09:30:17 -0700181 "packet_test.cc",
182 ],
183 deps = [
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700184 ":server",
Alexei Frolov26e3ae62020-05-04 17:06:17 -0700185 ],
186)
187
Alexei Frolov6560ec82020-06-03 11:03:05 -0700188proto_library(
189 name = "packet_proto",
190 srcs = [
Wyatt Hepler91741472021-02-03 08:45:10 -0800191 "pw_rpc_protos/internal/packet.proto",
Wyatt Hepler948f5472020-06-02 16:52:28 -0700192 ],
Alexei Frolov6560ec82020-06-03 11:03:05 -0700193)
194
Alexei Frolov26e3ae62020-05-04 17:06:17 -0700195pw_cc_test(
196 name = "server_test",
197 srcs = [
198 "server_test.cc",
199 ],
200 deps = [
Wyatt Hepler8aa02922020-07-17 08:54:37 -0700201 ":internal_test_utils",
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700202 ":server",
Wyatt Hepler80f26ff2020-06-01 09:30:17 -0700203 "//pw_assert",
Alexei Frolov5d6d3922020-05-08 13:57:02 -0700204 ],
205)
Wyatt Heplerd1591422020-09-15 10:04:41 -0700206
207pw_cc_test(
208 name = "service_test",
209 srcs = [
210 "service_test.cc",
211 ],
212 deps = [
Wyatt Heplerd1591422020-09-15 10:04:41 -0700213 ":internal_test_utils",
Wyatt Heplercbd09c22020-09-15 11:17:24 -0700214 ":server",
Wyatt Heplerd1591422020-09-15 10:04:41 -0700215 "//pw_assert",
216 ],
217)