PROTOBUF_GENERATE_CPP在创建cmake文件时



cmake中可用的FindProtobuf模块提供命令PROTOBUF_GENERATE_CPP,该命令从cmake中调用protoc。该命令通常在编译时执行(当您运行"make"时)。由于我的一些源文件包含生成的文件,在"cmake .."期间的依赖检查失败,因为文件尚未生成。

是否有可能在配置时在依赖项检查之前运行此命令?

谢谢

您可以将这些文件标记为将要生成的,这样依赖项检查就可以工作了:

file(GLOB PROTOBUF_FILELIST ${PROTO_INCLUDE_DIR}/*.proto)
foreach( proto_file ${PROTOBUF_FILELIST} )
   get_filename_component(proto_name ${proto_file} NAME_WE)
   get_filename_component(proto_path ${PROTO_INCLUDE_DIR} ABSOLUTE)
   set_source_files_properties("${proto_path}/${proto_name}.pb.cc"
                               "${proto_path}/${proto_name}.pb.h"
                               PROPERTIES GENERATED TRUE)
endforeach()

最新更新