堵塞¶
在 3.25 版本加入.
使用专用变量和/或策略范围评估一组命令。
block([SCOPE_FOR [POLICIES] [VARIABLES] ] [PROPAGATE <var-name>...])
<commands>
endblock()
block() 和匹配的 endblock() 之间的所有命令都被记录下来而不被调用。一旦 endblock() 被评估,记录的命令列表在请求的范围内被调用,然后由 block() 命令创建的范围被删除。
SCOPE_FOR指定必须创建的范围。
政策创建新的策略范围。这相当于
cmake_policy(PUSH)。变量创建一个新的变量作用域。
如果未指定``SCOPE_FOR``,这相当于:
block(SCOPE_FOR VARIABLES POLICIES)
传播当通过
block()命令创建变量作用域时,此选项设置或取消设置父作用域中的指定变量。这相当于set(PARENT_SCOPE)或unset(PARENT_SCOPE)命令。set(var1 "INIT1") set(var2 "INIT2") block(PROPAGATE var1 var2) set(var1 "VALUE1") unset(var2) endblock() # Now var1 holds VALUE1, and var2 is unset
只有在创建变量作用域时才允许使用此选项。在其他情况下将引发错误。
当``block()`` 位于 foreach() 或 while() 命令内时, break() 和 continue() 命令可以在块内使用。
while(TRUE)
block()
...
# the break() command will terminate the while() command
break()
endblock()
endwhile()
也可以看看¶
返回()