终止CMAKE目标的连续执行?

时间:2017-09-25 05:45:19

标签: c++ linux shell cmake

我已将自定义目标添加到CMakeLists.txt

add_custom_target (
        patch
        COMMAND echo "Creating build"
        COMMAND cd ${CMAKE_BINARY_DIR} && sudo bash a.sh
        COMMAND cd ${CMAKE_BINARY_DIR} && sudo bash b.sh  name
        COMMAND cd ${CMAKE_BINARY_DIR} && sudo bash b.sh  address

        DEPENDS authorise
        DEPENDS copy
    )

在上述情况下发生的情况是,我已在某些情况下终止了a.shexit 0的执行,但在终止该脚本后,cmake正在进一步执行b.sh }

我想要的是,当我从第一个脚本终止时,cmake target的执行也必须终止。我不想去b.sh执行它。

我们是否有办法停止或终止执行CMAKE target

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

COMMAND中的一系列add_custom_target被翻译为cmd1 && cmd2 && cmd3

因此,您不必退出代码0,而是必须返回其他内容。 shell脚本中的Catch Ctrl+C signal并返回非零代码:

trap ctrl_c INT

function ctrl_c() {
        exit 1
}