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.29/command/block.html