3

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

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

谢谢

4

1 回答 1

4

您可以将文件标记为将要生成,以便依赖项检查将起作用:

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()
于 2017-05-10T00:48:44.753 回答