blob: 27a8ef6639d3c9db2c82c0a072e28029cc7283ad [file] [log] [blame]
Carmelo Casconebe8f4d12017-06-21 02:08:54 -04001include_defs(
2 '//bucklets/grpc.bucklet'
3)
4
Andrea Campanella8bcd5862017-12-11 11:34:45 +01005PROTOBUF_VER = '3.2.0'
Carmelo Casconeb1936bd2017-12-12 14:42:27 -08006GRPC_VER = '1.3.1'
Andrea Campanella378e21a2017-06-07 12:09:59 +02007
Carmelo Casconef645e842018-07-16 18:31:52 +02008PI_COMMIT = '7e94b025bac6db63bc8534e5dd21a008984e38bc'
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 = [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020014 '/proto/p4/v1/p4runtime.proto',
15 '/proto/p4/v1/p4data.proto',
16 '/proto/p4/config/v1/p4info.proto',
17 '/proto/p4/config/v1/p4types.proto',
18 '/proto/p4/tmp/p4config.proto',
Carmelo Casconebe8f4d12017-06-21 02:08:54 -040019 '/proto/google/rpc/status.proto',
20 '/proto/google/rpc/code.proto',
Andrea Campanella378e21a2017-06-07 12:09:59 +020021]
22
Carmelo Cascone04d09392017-07-19 08:49:08 -040023COMPILE_DEPS =[
24 '//lib:CORE_DEPS',
Carmelo Casconedda88d02017-07-19 22:42:01 -040025 '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
26 '//lib:grpc-stub-' + GRPC_VER,
27 '//lib:grpc-protobuf-' + GRPC_VER,
28 '//lib:protobuf-java-' + PROTOBUF_VER,
Carmelo Cascone569d4ad2017-07-10 16:09:00 -040029]
30
Carmelo Casconebe8f4d12017-06-21 02:08:54 -040031genrule(
32 name = 'p4lang-pi-repo-' + PI_COMMIT,
33 bash = 'git clone --quiet ' + PI_BASEURL + ' $OUT > /dev/null && '
Carmelo Cascone04d09392017-07-19 08:49:08 -040034 + 'cd $OUT && '
35 + 'git checkout --quiet -b buck-build ' + PI_COMMIT + ' > /dev/null && '
36 + 'git submodule update --quiet --init --recursive > /dev/null',
Andrea Campanella378e21a2017-06-07 12:09:59 +020037 out = 'repo',
38)
39
Carmelo Casconebe8f4d12017-06-21 02:08:54 -040040def get_proto_src_string():
41 proto_srcs = map(lambda x: "$(location :p4lang-pi-repo-%s)%s" % (PI_COMMIT, x), PROTO_SRCS)
42 return " ".join(proto_srcs)
Andrea Campanella378e21a2017-06-07 12:09:59 +020043
Carmelo Casconebe8f4d12017-06-21 02:08:54 -040044grpc_jar(
45 src_string = get_proto_src_string(),
46 proto_paths = [
47 '$(location :p4lang-pi-repo-' + PI_COMMIT + ')/proto',
48 ],
Carmelo Casconedda88d02017-07-19 22:42:01 -040049 protoc_version = PROTOBUF_VER,
50 plugin_version = GRPC_VER,
Carmelo Casconebe8f4d12017-06-21 02:08:54 -040051 deps = COMPILE_DEPS,
52 include_std_lib = True,
Andrea Campanella378e21a2017-06-07 12:09:59 +020053)
Andrea Campanella378e21a2017-06-07 12:09:59 +020054
55project_config(
Carmelo Casconef7aa3f92017-07-06 23:56:50 -040056 src_target = ':onos-protocols-p4runtime-proto'
Yuta HIGUCHIb1aec662017-11-15 14:20:13 -080057)