mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-17 02:11:38 +02:00
The advantage is that we don't have to carry over the driver all required gRPC and P4Runtime bundles. Each module is now responsible for bringing in its own runtime dependencies. Change-Id: Icb1365e68d486f12fb1e25dc5d3937f42e3e1c62
55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
include_defs(
|
|
'//bucklets/grpc.bucklet'
|
|
)
|
|
|
|
PROTOBUF_VER = '3.0.2'
|
|
GRPC_VER = '1.3.0'
|
|
|
|
PI_COMMIT = '8051d54c9c3415ca800db232a226189fd17ad60a'
|
|
PI_BASEURL = 'https://github.com/p4lang/PI.git'
|
|
|
|
# Wondering which .proto files to build? Check p4runtime's Makefile:
|
|
# https://github.com/p4lang/PI/blob/master/proto/Makefile.am
|
|
PROTO_SRCS = [
|
|
'/proto/p4/p4runtime.proto',
|
|
'/proto/p4/config/p4info.proto',
|
|
'/proto/google/rpc/status.proto',
|
|
'/proto/google/rpc/code.proto',
|
|
'/proto/p4/tmp/p4config.proto',
|
|
]
|
|
|
|
COMPILE_DEPS =[
|
|
'//lib:CORE_DEPS',
|
|
'//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
|
|
'//lib:grpc-stub-' + GRPC_VER,
|
|
'//lib:grpc-protobuf-' + GRPC_VER,
|
|
'//lib:protobuf-java-' + PROTOBUF_VER,
|
|
]
|
|
|
|
genrule(
|
|
name = 'p4lang-pi-repo-' + PI_COMMIT,
|
|
bash = 'git clone --quiet ' + PI_BASEURL + ' $OUT > /dev/null && '
|
|
+ 'cd $OUT && '
|
|
+ 'git checkout --quiet -b buck-build ' + PI_COMMIT + ' > /dev/null && '
|
|
+ 'git submodule update --quiet --init --recursive > /dev/null',
|
|
out = 'repo',
|
|
)
|
|
|
|
def get_proto_src_string():
|
|
proto_srcs = map(lambda x: "$(location :p4lang-pi-repo-%s)%s" % (PI_COMMIT, x), PROTO_SRCS)
|
|
return " ".join(proto_srcs)
|
|
|
|
grpc_jar(
|
|
src_string = get_proto_src_string(),
|
|
proto_paths = [
|
|
'$(location :p4lang-pi-repo-' + PI_COMMIT + ')/proto',
|
|
],
|
|
protoc_version = PROTOBUF_VER,
|
|
plugin_version = GRPC_VER,
|
|
deps = COMPILE_DEPS,
|
|
include_std_lib = True,
|
|
)
|
|
|
|
project_config(
|
|
src_target = ':onos-protocols-p4runtime-proto'
|
|
) |