Carmelo Cascone | be8f4d1 | 2017-06-21 02:08:54 -0400 | [diff] [blame] | 1 | include_defs( |
| 2 | '//bucklets/grpc.bucklet' |
| 3 | ) |
| 4 | |
Andrea Campanella | 8bcd586 | 2017-12-11 11:34:45 +0100 | [diff] [blame] | 5 | PROTOBUF_VER = '3.2.0' |
Carmelo Cascone | b1936bd | 2017-12-12 14:42:27 -0800 | [diff] [blame] | 6 | GRPC_VER = '1.3.1' |
Andrea Campanella | 378e21a | 2017-06-07 12:09:59 +0200 | [diff] [blame] | 7 | |
Carmelo Cascone | 81929aa | 2018-04-07 01:38:55 -0700 | [diff] [blame] | 8 | PI_COMMIT = '219b3d67299ec09b49f433d7341049256ab5f512' |
Andrea Campanella | 378e21a | 2017-06-07 12:09:59 +0200 | [diff] [blame] | 9 | PI_BASEURL = 'https://github.com/p4lang/PI.git' |
Andrea Campanella | 378e21a | 2017-06-07 12:09:59 +0200 | [diff] [blame] | 10 | |
Carmelo Cascone | be8f4d1 | 2017-06-21 02:08:54 -0400 | [diff] [blame] | 11 | # Wondering which .proto files to build? Check p4runtime's Makefile: |
| 12 | # https://github.com/p4lang/PI/blob/master/proto/Makefile.am |
| 13 | PROTO_SRCS = [ |
Carmelo Cascone | 81929aa | 2018-04-07 01:38:55 -0700 | [diff] [blame] | 14 | '/proto/p4/p4types.proto', |
Carmelo Cascone | be8f4d1 | 2017-06-21 02:08:54 -0400 | [diff] [blame] | 15 | '/proto/p4/p4runtime.proto', |
| 16 | '/proto/p4/config/p4info.proto', |
| 17 | '/proto/google/rpc/status.proto', |
| 18 | '/proto/google/rpc/code.proto', |
| 19 | '/proto/p4/tmp/p4config.proto', |
Andrea Campanella | 378e21a | 2017-06-07 12:09:59 +0200 | [diff] [blame] | 20 | ] |
| 21 | |
Carmelo Cascone | 04d0939 | 2017-07-19 08:49:08 -0400 | [diff] [blame] | 22 | COMPILE_DEPS =[ |
| 23 | '//lib:CORE_DEPS', |
Carmelo Cascone | dda88d0 | 2017-07-19 22:42:01 -0400 | [diff] [blame] | 24 | '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER, |
| 25 | '//lib:grpc-stub-' + GRPC_VER, |
| 26 | '//lib:grpc-protobuf-' + GRPC_VER, |
| 27 | '//lib:protobuf-java-' + PROTOBUF_VER, |
Carmelo Cascone | 569d4ad | 2017-07-10 16:09:00 -0400 | [diff] [blame] | 28 | ] |
| 29 | |
Carmelo Cascone | be8f4d1 | 2017-06-21 02:08:54 -0400 | [diff] [blame] | 30 | genrule( |
| 31 | name = 'p4lang-pi-repo-' + PI_COMMIT, |
| 32 | bash = 'git clone --quiet ' + PI_BASEURL + ' $OUT > /dev/null && ' |
Carmelo Cascone | 04d0939 | 2017-07-19 08:49:08 -0400 | [diff] [blame] | 33 | + 'cd $OUT && ' |
| 34 | + 'git checkout --quiet -b buck-build ' + PI_COMMIT + ' > /dev/null && ' |
| 35 | + 'git submodule update --quiet --init --recursive > /dev/null', |
Andrea Campanella | 378e21a | 2017-06-07 12:09:59 +0200 | [diff] [blame] | 36 | out = 'repo', |
| 37 | ) |
| 38 | |
Carmelo Cascone | be8f4d1 | 2017-06-21 02:08:54 -0400 | [diff] [blame] | 39 | def get_proto_src_string(): |
| 40 | proto_srcs = map(lambda x: "$(location :p4lang-pi-repo-%s)%s" % (PI_COMMIT, x), PROTO_SRCS) |
| 41 | return " ".join(proto_srcs) |
Andrea Campanella | 378e21a | 2017-06-07 12:09:59 +0200 | [diff] [blame] | 42 | |
Carmelo Cascone | be8f4d1 | 2017-06-21 02:08:54 -0400 | [diff] [blame] | 43 | grpc_jar( |
| 44 | src_string = get_proto_src_string(), |
| 45 | proto_paths = [ |
| 46 | '$(location :p4lang-pi-repo-' + PI_COMMIT + ')/proto', |
| 47 | ], |
Carmelo Cascone | dda88d0 | 2017-07-19 22:42:01 -0400 | [diff] [blame] | 48 | protoc_version = PROTOBUF_VER, |
| 49 | plugin_version = GRPC_VER, |
Carmelo Cascone | be8f4d1 | 2017-06-21 02:08:54 -0400 | [diff] [blame] | 50 | deps = COMPILE_DEPS, |
| 51 | include_std_lib = True, |
Andrea Campanella | 378e21a | 2017-06-07 12:09:59 +0200 | [diff] [blame] | 52 | ) |
Andrea Campanella | 378e21a | 2017-06-07 12:09:59 +0200 | [diff] [blame] | 53 | |
| 54 | project_config( |
Carmelo Cascone | f7aa3f9 | 2017-07-06 23:56:50 -0400 | [diff] [blame] | 55 | src_target = ':onos-protocols-p4runtime-proto' |
Yuta HIGUCHI | b1aec66 | 2017-11-15 14:20:13 -0800 | [diff] [blame] | 56 | ) |