| include_defs( |
| '//bucklets/grpc.bucklet' |
| ) |
| |
| P4RT_PROTOC_VER = '3.0.2' |
| P4RT_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-' + P4RT_GRPC_VER, |
| '//lib:grpc-stub-' + P4RT_GRPC_VER, |
| '//lib:grpc-protobuf-' + P4RT_GRPC_VER, |
| '//lib:protobuf-java-' + P4RT_PROTOC_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 = P4RT_PROTOC_VER, |
| plugin_version = P4RT_GRPC_VER, |
| deps = COMPILE_DEPS, |
| include_std_lib = True, |
| ) |
| |
| project_config( |
| src_target = ':onos-protocols-p4runtime-proto' |
| ) |