【问题标题】:Terminate the continuous execution of CMAKE target?终止 CMAKE 目标的持续执行?
【发布时间】:2017-09-25 05:45:19
【问题描述】:

我已将自定义目标添加到我的 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
    )

在上述情况下发生的情况是,我已经在特定条件下用exit 0 终止了a.sh 的执行,但在终止该脚本后cmake 正在进一步执行b.sh

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

有什么方法可以停止或终止CMAKE target的执行

任何帮助将不胜感激

【问题讨论】:

    标签: c++ linux shell cmake


    【解决方案1】:

    add_custom_target中的一系列COMMANDs被翻译成cmd1 && cmd2 && cmd3

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

    trap ctrl_c INT
    
    function ctrl_c() {
            exit 1
    }
    

    【讨论】:

    • 你能不能详细点会明白的更清楚,因为我是cmake@arrowd的新手
    • 参考有问题的代码添加答案
    • 您不需要更改 CMake 代码。通过添加 Ctrl+C 处理程序来更改脚本。
    猜你喜欢
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 2015-07-11
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    相关资源
    最近更新 更多