我可以通过函数调用退出 CMake 作用域吗?

问题描述 投票:0回答:1

我正在寻找类似的东西:

function(my_function)
    return(PARENT_SCOPE)
endfunction()

my_function() # Should return here

message("don't print this")

我希望对

my_function
的呼叫表现得就像我此时已呼叫
return
一样。

您在这里看到的文件是一个子

CMakeLists.txt
,我想从我调用的函数内部停止处理。该函数在另一个文件中定义,该文件通过
include
包含。

这可以用 CMake 实现吗?

cmake
1个回答
0
投票

如果我正确地理解了您的要求,您希望根据您的函数发生的情况有条件地停止脚本。由于不能直接从函数返回,因此需要在函数中设置一个变量,然后在函数调用后检查它,如下所示:

function(my_function result_var)
    set(${result_var} "STOP" PARENT_SCOPE)
endfunction()

my_function(should_stop)
if(should_stop STREQUAL "STOP")
    return()
endif()

message("don't print this")
© www.soinside.com 2019 - 2024. All rights reserved.