forked from stackb/rules_proto
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgogo_grpc_library.bzl
40 lines (35 loc) · 1.37 KB
/
gogo_grpc_library.bzl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
load("//github.com/gogo/protobuf:gogo_grpc_compile.bzl", "gogo_grpc_compile")
load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("//go:utils.bzl", "get_importmappings")
wkt_mappings = get_importmappings({
"google/protobuf/any.proto": "github.com/gogo/protobuf/types",
"google/protobuf/duration.proto": "github.com/gogo/protobuf/types",
"google/protobuf/struct.proto": "github.com/gogo/protobuf/types",
"google/protobuf/timestamp.proto": "github.com/gogo/protobuf/types",
"google/protobuf/wrappers.proto": "github.com/gogo/protobuf/types",
})
def gogo_grpc_library(**kwargs):
name = kwargs.get("name")
deps = kwargs.get("deps")
importpath = kwargs.get("importpath")
visibility = kwargs.get("visibility")
go_deps = kwargs.get("go_deps", [])
name_pb = name + "_pb"
gogo_grpc_compile(
name = name_pb,
deps = deps,
transitive = True,
plugin_options = get_importmappings(kwargs.pop("importmap", {})) + wkt_mappings,
visibility = visibility,
)
go_library(
name = name,
srcs = [name_pb],
deps = go_deps + [
"@com_github_gogo_protobuf//proto:go_default_library",
"@org_golang_google_grpc//:go_default_library",
"@org_golang_x_net//context:go_default_library",
],
importpath = importpath,
visibility = visibility,
)