由于希望在cmake编译CMakeList时,能够顺便将.proto文件,使用命令行命令(工具)protoc,编译为.cc文件,所以找到了CMakeList中能够实现此要求一个条目:
add_custom_command
只需将以下代码插入相应的CMakeList.txt文件,那么在运行cmake对项目进行编译时,以下代码所要求的内容会自动执行,从而实现本需要单独在命令行下手动运行的命令或脚本。
add_custom_command(
OUTPUT path.pb.cc path.pb.h
COMMAND protoc
ARGS --cpp_out . ${CMAKE_CURRENT_SOURCE_DIR}/path.proto -I ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS path.proto
)
代码解释:
add_custom_command
- CMakeList中的条目(命令)
- 顾名思义,向CMakeList中增加CMakeList未定义过的命令。这个命令会在cmake时自动在命令行中运行。
COMMAND protoc
- 需要执行的命令
- 比如,如果希望在cmake编译时显示当前在编译哪个位置,就可改为:COMMAND pwd。这样,cmake在编译此CMakeList时就会在终端执行pwd命令,从而显示当前路径。
ARGS