blob: f7ef33eec5e69bf4f0eaedec378e5507a2ebdd25 [file] [log] [blame]
Carmelo Casconebe8f4d12017-06-21 02:08:54 -04001include_defs(
2 '//bucklets/grpc.bucklet'
3)
4
Carmelo Cascone569d4ad2017-07-10 16:09:00 -04005P4RT_PROTOC_VER = '3.0.2'
Carmelo Casconebe8f4d12017-06-21 02:08:54 -04006P4RT_GRPC_VER = '1.3.0'
Andrea Campanella378e21a2017-06-07 12:09:59 +02007
Carmelo Cascone569d4ad2017-07-10 16:09:00 -04008PI_COMMIT = 'f110570ca0c8ddc5feaf5028b08a0f477ceb4eea'
Andrea Campanella378e21a2017-06-07 12:09:59 +02009PI_BASEURL = 'https://github.com/p4lang/PI.git'
Andrea Campanella378e21a2017-06-07 12:09:59 +020010
Carmelo Casconebe8f4d12017-06-21 02:08:54 -040011# Wondering which .proto files to build? Check p4runtime's Makefile:
12# https://github.com/p4lang/PI/blob/master/proto/Makefile.am
13PROTO_SRCS = [
14 '/proto/p4/p4runtime.proto',
15 '/proto/p4/config/p4info.proto',
16 '/proto/google/rpc/status.proto',
17 '/proto/google/rpc/code.proto',
18 '/proto/p4/tmp/p4config.proto',
Andrea Campanella378e21a2017-06-07 12:09:59 +020019]
20
Carmelo Cascone569d4ad2017-07-10 16:09:00 -040021COMPILE_DEPS = [
22'//lib:CORE_DEPS',
23'//incubator/grpc-dependencies:grpc-core-repkg-' + P4RT_GRPC_VER,
24'//lib:grpc-stub-' + P4RT_GRPC_VER,
25'//lib:grpc-protobuf-' + P4RT_GRPC_VER,
26'//lib:protobuf-java-' + P4RT_PROTOC_VER,
27]
28
Carmelo Casconebe8f4d12017-06-21 02:08:54 -040029genrule(
30 name = 'p4lang-pi-repo-' + PI_COMMIT,
31 bash = 'git clone --quiet ' + PI_BASEURL + ' $OUT > /dev/null && '
Carmelo Cascone569d4ad2017-07-10 16:09:00 -040032 + 'cd $OUT && '
33 + 'git checkout --quiet -b buck-build ' + PI_COMMIT + ' > /dev/null && '
34 + 'git submodule update --quiet --init --recursive > /dev/null',
Andrea Campanella378e21a2017-06-07 12:09:59 +020035 out = 'repo',
36)
37
Carmelo Casconebe8f4d12017-06-21 02:08:54 -040038def get_proto_src_string():
39 proto_srcs = map(lambda x: "$(location :p4lang-pi-repo-%s)%s" % (PI_COMMIT, x), PROTO_SRCS)
40 return " ".join(proto_srcs)
Andrea Campanella378e21a2017-06-07 12:09:59 +020041
Carmelo Casconebe8f4d12017-06-21 02:08:54 -040042grpc_jar(
43 src_string = get_proto_src_string(),
44 proto_paths = [
45 '$(location :p4lang-pi-repo-' + PI_COMMIT + ')/proto',
46 ],
47 protoc_version = P4RT_PROTOC_VER,
48 plugin_version = P4RT_GRPC_VER,
49 deps = COMPILE_DEPS,
50 include_std_lib = True,
Andrea Campanella378e21a2017-06-07 12:09:59 +020051)
Andrea Campanella378e21a2017-06-07 12:09:59 +020052
53project_config(
Carmelo Casconef7aa3f92017-07-06 23:56:50 -040054 src_target = ':onos-protocols-p4runtime-proto'
Andrea Campanella378e21a2017-06-07 12:09:59 +020055)