cmake_minimum_required(VERSION 3.20)
project(fake_telemetry CXX)

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

if(NOT CMAKE_BUILD_TYPE)
    set(CMAKE_BUILD_TYPE Release)
endif()

find_package(Protobuf REQUIRED)

set(PROTO_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../proto/messages.proto)
set(PROTO_SRC  ${CMAKE_CURRENT_BINARY_DIR}/messages.pb.cc)
set(PROTO_HDR  ${CMAKE_CURRENT_BINARY_DIR}/messages.pb.h)

add_custom_command(
    OUTPUT ${PROTO_SRC} ${PROTO_HDR}
    COMMAND $<TARGET_FILE:protobuf::protoc>
            --cpp_out=${CMAKE_CURRENT_BINARY_DIR}
            -I${CMAKE_CURRENT_SOURCE_DIR}/../proto
            ${PROTO_FILE}
    DEPENDS ${PROTO_FILE}
    VERBATIM
)

add_executable(fake_telemetry main.cpp ${PROTO_SRC})
target_include_directories(fake_telemetry PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(fake_telemetry PRIVATE protobuf::libprotobuf)
target_compile_options(fake_telemetry PRIVATE -Wall -Wextra -Wpedantic)
