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'
)