我已将此自定义目标添加到我的CMakeList.txt
文件中。
系统:GitHub上的Windows 7,TDMGCC MinGW32和Ninja。
ADD_CUSTOM_TARGET(unittest_run
COMMAND test1.exe > result.testresult
COMMAND test2.exe >> result.testresult
COMMAND type result.testresult
)
问题是,当
test1.exe
失败时,我会生成失败输出,但似乎还会出现一些错误代码,这会导致问题。 ninja: build stopped: subcommand failed.
我如何告诉CMake应该忽略返回错误?
最佳答案
您可以尝试使用条件OR语句,该条件OR语句仅在前面的语句失败时才运行,并从辅助语句生成成功的返回码
如果第一个失败,则可以从“条件执行”的this page中使用||
有条件地执行第二条语句
仅在command1失败(或)时执行command2
command1 || command2
从this SO answer可以使用
(exit 0)
生成成功的返回码true
大致等同于(exit 0)
(括号中创建一个子shell,该子shell以状态0退出,而不是退出当前的shell。放在一起:
ADD_CUSTOM_TARGET(unittest_run
COMMAND test1.exe > result.testresult || (exit 0)
COMMAND test2.exe >> result.testresult || (exit 0)
COMMAND type result.testresult
)