在创建cmake文件期间PROTOBUF_GENERATE_CPP

时间:2013-05-24 14:01:54

标签: cmake protocol-buffers

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

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

由于

1 个答案:

答案 0 :(得分:2)

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

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()