block
Новое в версии 3.25.
Оценить группу команд со своим переменным и/или политическим пространством.
block([SCOPE_FOR [POLICIES] [VARIABLES] ] [PROPAGATE <var-name>...]) <commands> endblock()
Все команды между block() и соответствующей endblock() записываются без вызова. После оценки endblock(), записанный список команд вызывается внутри запрошенных пространств, а затем пространства, созданные командой block(), удаляются.
-
SCOPE_FOR -
Укажите, какие пространства необходимо создать.
-
POLICIES -
Создайте новое политическое пространство. Это эквивалентно
cmake_policy(PUSH). -
VARIABLES -
Создайте новое пространство переменных.
Если
SCOPE_FORне указано, это эквивалентно:block(SCOPE_FOR VARIABLES POLICIES)
-
-
PROPAGATE -
Когда пространство переменных создается командой
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()
См. также
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.27/command/block.html