cmake 中可用的 FindProtobuf 模块提供命令 PROTOBUF_GENERATE_CPP 从 cmake 中调用 protoc。此命令通常在编译时执行(当您运行“make”时)。由于我的一些源文件包含生成的文件,因此“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()