project('random-sensor-protobuf', 'cpp',
default_options: ['cpp_std=c++20'])

protobuf_dep = dependency('protobuf')
grpc_dep = dependency('grpc++', required: true)

proto_files = files('../sensor.proto')

protobuf_gen = custom_target(
    'generate_protobuf',
    input : proto_files,
    output : ['sensor.pb.cc', 'sensor.pb.h', 'sensor.grpc.pb.cc', 'sensor.grpc.pb.h'],
    command : [
        'protoc',
        '--proto_path=../../',
        '--cpp_out', '.',
        '--grpc_out', '.',
        '--plugin=protoc-gen-grpc=/usr/bin/grpc_cpp_plugin',
        '@INPUT@'
    ],
)

executable('random-sensor-protobuf',
    ['random-sensor.cpp', protobuf_gen],
    dependencies: [protobuf_dep, grpc_dep]
)