32 lines
989 B
CMake
32 lines
989 B
CMake
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)
|