Spec-Zone.ru › CMake 3.11

function

Начать запись функции для последующего вызова в качестве команды:

function(<name> [arg1 [arg2 [arg3 ...]]])
  COMMAND1(ARGS ...)
  COMMAND2(ARGS ...)
  ...
endfunction(<name>)

Определите функцию с именем <name>, которая принимает аргументы с именами arg1, arg2, arg3, (…). Команды, перечисленные после функции, но перед соответствующей endfunction(), не вызываются до тех пор, пока функция не будет вызвана. При вызове команды, записанные в функции, сначала изменяются путём подстановки формальных параметров (${arg1}) на переданные аргументы, а затем вызываются как обычные команды. В дополнение к обращению к формальным параметрам вы можете обратиться к переменной ARGC, которая будет установлена в количество переданных в функцию аргументов, а также к ARGV0, ARGV1, ARGV2, …, которые будут содержать фактические значения переданных аргументов. Это облегчает создание функций с необязательными аргументами. Дополнительно ARGV содержит список всех переданных в функцию аргументов, а ARGN содержит список аргументов, следующих за последним ожидаемым аргументом. Обращение к аргументам ARGV# за пределами ARGC имеет неопределённое поведение. Проверка того, что ARGC больше #, — единственный способ гарантировать, что ARGV# был передан в функцию как дополнительный аргумент.

Функция открывает новую область видимости: см. set(var PARENT_SCOPE) для получения подробностей.

См. документацию команды cmake_policy() для получения информации о поведении политик внутри функций.

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

Spec-Zone.ru

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