mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-03-12 05:25:23 -07:00
31 lines
1.3 KiB
CMake
31 lines
1.3 KiB
CMake
|
|
find_program(PROTOC protoc)
|
|
if(NOT PROTOC)
|
|
message(FATAL_ERROR "Could not find protoc")
|
|
endif()
|
|
|
|
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/takion.pb"
|
|
COMMAND "${PROTOC}" "-o${CMAKE_CURRENT_BINARY_DIR}/takion.pb" "${CMAKE_CURRENT_SOURCE_DIR}/takion.proto" "-I${CMAKE_CURRENT_SOURCE_DIR}"
|
|
MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/takion.proto")
|
|
|
|
set(SOURCE_FILES "${CMAKE_CURRENT_BINARY_DIR}/takion.pb.c")
|
|
set(HEADER_FILES "${CMAKE_CURRENT_BINARY_DIR}/takion.pb.h")
|
|
|
|
if(UNIX AND IS_ABSOLUTE "${PROTOC}")
|
|
# make sure protoc is in PATH when invoking the generator below, which needs it.
|
|
get_filename_component(PROTOC_PATH "${PROTOC}" DIRECTORY)
|
|
set(GEN_PREFIX "${CMAKE_COMMAND}" -E env "PATH=${PROTOC_PATH}:$ENV{PATH}")
|
|
else()
|
|
set(GEN_PREFIX "")
|
|
endif()
|
|
|
|
add_custom_command(OUTPUT ${SOURCE_FILES} ${HEADER_FILES}
|
|
COMMAND ${GEN_PREFIX} "${PYTHON_EXECUTABLE}" "${NANOPB_GENERATOR_PY}" "${CMAKE_CURRENT_BINARY_DIR}/takion.pb"
|
|
MAIN_DEPENDENCY "${CMAKE_CURRENT_BINARY_DIR}/takion.pb")
|
|
|
|
set(CHIAKI_LIB_PROTO_SOURCE_FILES "${SOURCE_FILES}" PARENT_SCOPE)
|
|
set(CHIAKI_LIB_PROTO_HEADER_FILES "${HEADER_FILES}" PARENT_SCOPE)
|
|
set(CHIAKI_LIB_PROTO_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}" PARENT_SCOPE)
|
|
|
|
add_custom_target(chiaki-pb DEPENDS ${SOURCE_FILES} ${HEADER_FILES})
|