cmake中提供的FindProtobuf模块提供了命令PROTOBUF_GENERATE_CPP,该命令从cmake中调用protoc。此命令通常在编译时执行(当您运行“make”时)。由于我的一些源文件包含生成的文件,因此“cmake ..”期间的依赖性检查失败,因为尚未生成文件。
是否可以在依赖性检查之前在配置时运行此命令?
由于
答案 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()