Spec-Zone.ru › CMake 3.30

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()

См. также

  • endblock()
  • return()
  • cmake_policy()

© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.28/command/block.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API