block
Добавлен в версии 3.25.
Вычислять группу команд с выделенной переменной и/или областью действия политики.
block([SCOPE_FOR [POLICIES] [VARIABLES] ] [PROPAGATE <var-name>...]) <commands> endblock()
Все команды между block() и соответствующей endblock() записываются без вызова. После того, как будет вычислена endblock(), записанный список команд вызывается в запрошенных областях действия, а затем области действия, созданные командой block(), удаляются.
-
SCOPE_FOR -
Указать, какие области действия необходимо создать.
-
POLICIES -
Создать новую область действия политики. Это эквивалентно
cmake_policy(PUSH)с автоматическимcmake_policy(POP)при выходе из области действия блока. -
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.31/command/block.html