我在cmake项目中使用生成的文件。我有一个脚本从一些输入生成源代码,如果给出不同的命令行参数,相同的脚本也可以验证输入,如下所示:
generate_code.py --generate
generate_code.py --validate
如果输入无效,--validate
模式会将错误打印到stdout
,我希望这些错误可见。我目前的设置是在--validate
中使用execute_process
,在--generate
中使用add_custom_command
。这有效,但在输入更改时不会从--validate
模式打印用户友好的错误消息,因为execute_process
不会再次运行。
表现这些错误的最佳方法是什么?如果我可以强制execute_process
始终运行,那可行,或者如果我stdout
失败并且表现出来--generate
,我可以修改--generate
选项进行打印友好的错误消息,然后显示它们。我该怎样做其中一个或两个?
答案 0 :(得分:0)
只要您传递ALL
参数,每次执行构建时都会重新运行add_custom_target statements中的命令。这可能就是你要找的东西。
或者,您可以将generate_code.py
的输入作为自定义命令的依赖项(如果它们尚未存在),并使generate_code.py --validate
之前的自定义命令执行generate_code.py --generate
。这样,当需要重建时,它将被重新验证,而不是在任何其他时间。