我已将此自定义目标添加到我的CMakeList.txt
文件中。
系统:Windows 7,TDMGCC MinGW32和Ninja最新的GitHub。
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它应该忽略返回错误?
答案 0 :(得分:3)
您可以尝试使用条件OR语句,该语句仅在前面的语句失败时运行,并从辅助语句生成成功的返回码
从“{条带执行”this page开始,如果第一个失败,您可以使用||
有条件地执行辅助语句
仅当command1失败(OR)
时才执行command2command1 || command2
从this SO answer,可以使用(exit 0)
true
大致相当于(exit 0)
(括号创建一个退出状态为0的子shell,而不是退出当前的shell。
全部放在一起:
ADD_CUSTOM_TARGET(unittest_run
COMMAND test1.exe > result.testresult || (exit 0)
COMMAND test2.exe >> result.testresult || (exit 0)
COMMAND type result.testresult
)
答案 1 :(得分:0)
它只有这样:
COMMAND
test1.exe > result.testresult &
test2.exe >> result.testresult ||
(exit 0) &
type result.testresult