Spec-Zone.ru › CMake

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

Spec-Zone.ru

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