include_defs( '//bucklets/grpc.bucklet' ) PROTOBUF_VER = '3.2.0' GRPC_VER = '1.3.1' PI_COMMIT = '219b3d67299ec09b49f433d7341049256ab5f512' 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/p4types.proto', '/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' )