The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#) https://grpc.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

102 lines
2.3 KiB

# TODO(rbellevi): Fix this wide-open visibility.
package(default_visibility = ["//visibility:public"])
load("//bazel:cython_library.bzl", "pyx_library")
# TODO: Reintroduce.
# load("//bazel:python_rules.bzl", "py_grpc_library", "py_proto_library")
# TODO: Move this build file up a directory to ensure that this
# points to '.', not a directory above the package root.
NON_BAZEL_ROOT = "../"
cc_library(
# TODO: Better name?
name = "protoc_lib",
srcs = ["main.cc"],
hdrs = ["main.h"],
deps = [
"@com_google_protobuf//:protoc_lib",
# I really wish there were a disaggregated target to use here.
"//src/compiler:grpc_plugin_support",
],
includes = [NON_BAZEL_ROOT],
)
pyx_library(
name = "cyprotoc",
srcs = ["_protoc_compiler.pyx"],
deps = [":protoc_lib"],
includes = [NON_BAZEL_ROOT],
)
py_library(
name = "grpc_tools",
srcs = ["__init__.py", "protoc.py"],
deps = [
":cyprotoc",
"@six_archive//:six",
],
# TODO: Think about whether we should include well-known protos.
srcs_version = "PY2AND3",
imports = [NON_BAZEL_ROOT],
)
# TODO: Make this junk work.
# proto_library(
# name = "simplest_proto",
# srcs = ["simplest.proto"],
# testonly = True,
# )
#
# proto_library(
# name = "complicated_proto",
# srcs = ["complicated.proto"],
# deps = [":simplest_proto"],
# testonly = True,
# )
#
# py_proto_library(
# name = "complicated_py_pb2",
# deps = ["complicated_proto"],
# testonly = True,
# py_library_args = {
# "imports": [NON_BAZEL_ROOT],
# },
# proto_paths = [NON_BAZEL_ROOT],
# )
# TODO: Get rid of this and use the native Bazel build system.
py_library(
name = "simplest_py_pb2",
srcs = ["simplest_pb2.py"],
imports = [NON_BAZEL_ROOT],
testonly = True,
)
py_library(
name = "complicated_py_pb2",
srcs = ["complicated_pb2.py"],
deps = [":simplest_py_pb2"],
imports = [NON_BAZEL_ROOT],
testonly = True,
)
py_test(
name = "protoc_test",
srcs = ["protoc_test.py"],
deps = [
"//tools/distrib/python/grpcio_tools/grpc_tools:grpc_tools",
":complicated_py_pb2",
# ":complicated_py_pb2",
],
data = [
"simple.proto",
"simpler.proto",
"simplest.proto",
"complicated.proto",
"flawed.proto",
],
python_version = "PY3",
)