#cmake #protocol-buffers
#смаковать #буферы протокола
Вопрос:
Я пытаюсь заставить свои модели protobuf генерироваться с использованием CMake и не уверен, что происходит. Я использовал этот пакет раньше без проблем и следовал документации.
cmake_minimum_required(VERSION 3.13)
project(sockproto)
find_package(Protobuf REQUIRED)
include_directories(${Protobuf_INCLUDE_DIRS})
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS commands.proto)
add_custom_target(protobuf_compilation DEPENDS ${PROTO_SRCS})
$ tree -L 1
.
├── CMakeCache.txt
├── CMakeFiles
├── cmake_install.cmake
├── include
├── Makefile
├── proto
└── tests
$ which protoc
/usr/bin/protoc
Ответ №1:
Исправлено, протокол не запускается до тех пор, пока PROTO_SRCS не будут добавлены в исполняемый файл или пользовательскую цель в качестве зависимости.
Комментарии:
1. Согласно вашему описанию, код в вопросе правильный , не так ли? Но для
protobuf_compilation
цели триггера нужно либо указать это явно:make protobuf_compilation
либо добавитьALL
ключевое слово вadd_custom_target
вызов, чтобы цель была создана по умолчанию.