【发布时间】:2019-06-14 19:53:52
【问题描述】:
我正在尝试使用 cmake 从一些 protobuf 定义构建一个 c++ 库。
我添加了一个自定义命令来将proto 编译为 c++,但我在输出部分有一些问题。
在protoc 完成工作后,我需要指定哪些是预期的输出文件。为此,我想在我的PROTO_SOURCEfile glob 中将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})
【问题讨论】:
标签: cmake protocol-buffers protoc