Moh*_*imi 7 cmake protocol-buffers
我需要将协议缓冲区.proto文件编译为.pb.cc,.pb.h文件.这个转换有一个程序.
protoc test.proto --cpp_out .
Run Code Online (Sandbox Code Playgroud)
如何在cmake中添加这样的通用规则?我可以使用add_custom_command执行此操作.但我必须为每个.proto文件.有一个更好的方法吗?
看起来CMake的FindProtobuf模块通过该功能提供此功能PROTOBUF_GENERATE_CPP.
您可以在一次调用中传递多个.proto文件,例如
file(GLOB ProtoFiles "${CMAKE_CURRENT_SOURCE_DIR}/*.proto")
PROTOBUF_GENERATE_CPP(ProtoSources ProtoHeaders ${ProtoFiles})
Run Code Online (Sandbox Code Playgroud)
请注意,即使调用的CMakeLists.txt文件find_package(Protobuf)可能是顶级文件,调用该函数的CMakeLists.txt文件也需要与.proto文件位于同一目录中.
| 归档时间: |
|
| 查看次数: |
4083 次 |
| 最近记录: |