Я пытаюсь собрать библиотеку c ++ из некоторых protobuf
определений, используя cmake.Я добавил пользовательскую команду для компиляции proto
в c ++, но у меня есть некоторые проблемы с выходной частью.Мне нужно указать, какие ожидаемые выходные файлы после protoc
делает свою работу.Для этого я хотел бы заменить в моем PROTO_SOURCE
файловом глобусе расширение proto
на .pb.cc
и .pb.h
Мне в принципе нужно что-то вроде this , но для cmake.
Я собираю эту команду вручную, потому что у меня нет поддержки protobuf cmake.
project(messages)
set(PROTO_PATH "${CMAKE_CURRENT_SOURCE_DIR}/proto_definitions")
file(GLOB PROTO_FILES "${PROTO_PATH}/*.proto")
#set(PROTO_SOURCES ???) # This needs to contain '*.pb.cc' and '*.pb.h'
add_custom_command(COMMAND protoc --cpp_out=${CMAKE_CURRENT_SOURCE_DIR}/compiled_proto ${PROTO_FILES}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${PROTO_FILES}
OUTPUT ${PROTO_SOURCES})
add_library(${PROJECT_NAME} STATIC ${PROTO_SOURCES})