• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2017 gRPC authors.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://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,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15licenses(["notice"])  # Apache v2
16
17load("@grpc_python_dependencies//:requirements.bzl", "requirement")
18load("@rules_proto//proto:defs.bzl", "proto_library")
19load("//bazel:grpc_build_system.bzl", "grpc_package", "grpc_proto_library")
20load("//bazel:python_rules.bzl", "py_grpc_library", "py_proto_library")
21
22grpc_package(
23    name = "testing",
24    visibility = "public",
25)
26
27exports_files([
28    "echo.proto",
29    "echo_messages.proto",
30    "empty.proto",
31    "messages.proto",
32    "simple_messages.proto",
33    "test.proto",
34])
35
36grpc_proto_library(
37    name = "compiler_test_proto",
38    srcs = ["compiler_test.proto"],
39    generate_mocks = True,
40)
41
42grpc_proto_library(
43    name = "control_proto",
44    srcs = ["control.proto"],
45    has_services = False,
46    deps = [
47        "payloads_proto",
48        "stats_proto",
49    ],
50)
51
52grpc_proto_library(
53    name = "echo_messages_proto",
54    srcs = ["echo_messages.proto"],
55)
56
57grpc_proto_library(
58    name = "echo_proto",
59    srcs = ["echo.proto"],
60    generate_mocks = True,
61    deps = [
62        "echo_messages_proto",
63        "simple_messages_proto",
64    ],
65)
66
67grpc_proto_library(
68    name = "empty_proto",
69    srcs = ["empty.proto"],
70    has_services = False,
71)
72
73proto_library(
74    name = "empty_proto_descriptor",
75    srcs = ["empty.proto"],
76)
77
78py_proto_library(
79    name = "empty_py_pb2",
80    deps = [":empty_proto_descriptor"],
81)
82
83py_grpc_library(
84    name = "empty_py_pb2_grpc",
85    srcs = [":empty_proto_descriptor"],
86    deps = [":empty_py_pb2"],
87)
88
89grpc_proto_library(
90    name = "messages_proto",
91    srcs = ["messages.proto"],
92    has_services = False,
93)
94
95proto_library(
96    name = "messages_proto_descriptor",
97    srcs = ["messages.proto"],
98)
99
100py_proto_library(
101    name = "py_messages_proto",
102    deps = [":messages_proto_descriptor"],
103)
104
105py_grpc_library(
106    name = "messages_py_pb2_grpc",
107    srcs = [":messages_proto_descriptor"],
108    deps = [":py_messages_proto"],
109)
110
111grpc_proto_library(
112    name = "metrics_proto",
113    srcs = ["metrics.proto"],
114)
115
116grpc_proto_library(
117    name = "payloads_proto",
118    srcs = ["payloads.proto"],
119    has_services = False,
120)
121
122grpc_proto_library(
123    name = "benchmark_service_proto",
124    srcs = ["benchmark_service.proto"],
125    deps = [
126        "messages_proto",
127    ],
128)
129
130proto_library(
131    name = "benchmark_service_descriptor",
132    srcs = ["benchmark_service.proto"],
133    deps = [":messages_proto_descriptor"],
134)
135
136py_proto_library(
137    name = "benchmark_service_py_pb2",
138    deps = [":benchmark_service_descriptor"],
139)
140
141py_grpc_library(
142    name = "benchmark_service_py_pb2_grpc",
143    srcs = [":benchmark_service_descriptor"],
144    deps = [":benchmark_service_py_pb2"],
145)
146
147grpc_proto_library(
148    name = "report_qps_scenario_service_proto",
149    srcs = ["report_qps_scenario_service.proto"],
150    deps = [
151        "control_proto",
152    ],
153)
154
155grpc_proto_library(
156    name = "worker_service_proto",
157    srcs = ["worker_service.proto"],
158    deps = [
159        "control_proto",
160    ],
161)
162
163grpc_proto_library(
164    name = "simple_messages_proto",
165    srcs = ["simple_messages.proto"],
166)
167
168grpc_proto_library(
169    name = "stats_proto",
170    srcs = ["stats.proto"],
171    has_services = False,
172    deps = [
173        "//src/proto/grpc/core:stats_proto",
174    ],
175)
176
177grpc_proto_library(
178    name = "test_proto",
179    srcs = ["test.proto"],
180    deps = [
181        "empty_proto",
182        "messages_proto",
183    ],
184)
185
186# Test that grpc_proto_library/cc_grpc_library can consume generated files
187genrule(
188    name = "messages_gen_proto_file",
189    srcs = ["messages.proto"],
190    outs = ["messages_gen.proto"],
191    cmd = "cp $< $@",
192)
193
194grpc_proto_library(
195    name = "messages_gen_proto",
196    srcs = ["messages_gen_proto_file"],
197    has_services = False,
198)
199
200genrule(
201    name = "test_gen_proto_file",
202    srcs = ["test.proto"],
203    outs = ["test_gen.proto"],
204    cmd = "sed 's/messages.proto/messages_gen.proto/' $< > $@",
205)
206
207# Consume generated files in srcs and in deps
208grpc_proto_library(
209    name = "test_gen_proto",
210    srcs = ["test_gen_proto_file"],
211    deps = [
212        "empty_proto",
213        "messages_gen_proto",
214    ],
215)
216
217proto_library(
218    name = "test_proto_descriptor",
219    srcs = ["test.proto"],
220    deps = [
221        ":empty_proto_descriptor",
222        ":messages_proto_descriptor",
223    ],
224)
225
226py_proto_library(
227    name = "py_test_proto",
228    deps = [":test_proto_descriptor"],
229)
230
231py_grpc_library(
232    name = "test_py_pb2_grpc",
233    srcs = [":test_proto_descriptor"],
234    deps = [":py_test_proto"],
235)
236
237proto_library(
238    name = "worker_service_descriptor",
239    srcs = ["worker_service.proto"],
240    deps = [":control_descriptor"],
241)
242
243py_proto_library(
244    name = "worker_service_py_pb2",
245    deps = [":worker_service_descriptor"],
246)
247
248py_grpc_library(
249    name = "worker_service_py_pb2_grpc",
250    srcs = [":worker_service_descriptor"],
251    deps = [":worker_service_py_pb2"],
252)
253
254proto_library(
255    name = "stats_descriptor",
256    srcs = ["stats.proto"],
257    deps = ["//src/proto/grpc/core:stats_descriptor"],
258)
259
260py_proto_library(
261    name = "stats_py_pb2",
262    deps = [":stats_descriptor"],
263)
264
265proto_library(
266    name = "payloads_descriptor",
267    srcs = ["payloads.proto"],
268)
269
270py_proto_library(
271    name = "payloads_py_pb2",
272    deps = [":payloads_descriptor"],
273)
274
275proto_library(
276    name = "control_descriptor",
277    srcs = ["control.proto"],
278    deps = [
279        ":payloads_descriptor",
280        ":stats_descriptor",
281    ],
282)
283
284py_proto_library(
285    name = "control_py_pb2",
286    deps = [":control_descriptor"],
287)
288