blob: f547699ef01fa114fd225de6200cf3a728385deb [file] [log] [blame]
include_defs(
'//bucklets/grpc.bucklet'
)
COMPILE_DEPS = [
'//lib:CORE_DEPS',
'//lib:GRPC_1.3',
'//lib:protobuf-java-3.2.0',
]
P4RT_PROTOC_VER = '3.2.0'
P4RT_GRPC_VER = '1.3.0'
PI_COMMIT = '99aaf492036b1ecb195d40d5e05d48aea881fbc8'
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',
]
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 = P4RT_PROTOC_VER,
plugin_version = P4RT_GRPC_VER,
deps = COMPILE_DEPS,
include_std_lib = True,
)
project_config(
src_target = ':onos-drivers-p4runtime-proto'
)