Spec-Zone.ru › CMake 3.25

set

Устанавливает обычную, кэшированную или переменную окружения заданному значению. См. документацию переменные cmake-language(7) для информации о разделах и взаимодействии обычных переменных и записей кэша.

Подписи этой команды, которые указывают на <value>... заполнитель, ожидают ноль или более аргументов. Несколько аргументов будут объединены как список, разделенный точкой с запятой, чтобы сформировать фактическое значение переменной, которое будет установлено. Ноль аргументов приведет к удалению обычных переменных. См. команду unset() для явного удаления переменных.

Установка обычной переменной

set(<variable> <value>... [PARENT_SCOPE])

Устанавливает заданную <variable> в текущем разделе функции или каталога.

Если указан параметр PARENT_SCOPE, переменная будет установлена в области, расположенной выше текущей области. Каждый новый каталог или команда function() создаёт новую область. Область также может быть создана с помощью команды block(). Эта команда установит значение переменной в родительский каталог, вызывающую функцию или охватывающую область (в зависимости от конкретного случая). Предыдущее состояние значения переменной остаётся неизменным в текущей области (например, если оно было не определено ранее, оно остаётся неопределённым, и если у него было значение, оно остаётся таким же).

Команды block(PROPAGATE) и return(PROPAGATE) могут использоваться в качестве альтернативного метода к командам set(PARENT_SCOPE) и unset(PARENT_SCOPE) для обновления родительской области.

Установка записи кэша

set(<variable> <value>... CACHE <type> <docstring> [FORCE])

Устанавливает заданную запись кэша <variable> (запись кэша). Поскольку записи кэша предназначены для предоставления настраиваемых пользователем значений, это не переписывает существующие записи кэша по умолчанию. Используйте параметр FORCE для перезаписи существующих записей.

<type> должно быть указано как:

BOOL

Булево ON/OFF значение. cmake-gui(1) предлагает флажок.

FILEPATH

Путь к файлу на диске. cmake-gui(1) предлагает диалог выбора файла.

PATH

Путь к каталогу на диске. cmake-gui(1) предлагает диалог выбора файла.

STRING

Строка текста. cmake-gui(1) предлагает текстовое поле или выпадающий список, если свойство записи кэша STRINGS установлено.

INTERNAL

Строка текста. cmake-gui(1) не отображает внутренние записи. Они могут использоваться для постоянного хранения переменных между запусками. Использование этого типа подразумевает FORCE.

<docstring> должно быть указано как строка, предоставляющая краткое описание параметра для отображения пользователям cmake-gui(1).

Если запись кэша не существует до вызова или указан параметр FORCE, запись кэша будет установлена в заданное значение.

Примечание

Содержимое переменной кэша не будет напрямую доступно, если уже существует обычная переменная с тем же именем (см. правила оценки переменных). Если политика CMP0126 установлена в значение OLD, любое связывание обычной переменной в текущей области будет удалено.

Возможно, запись кэша существует до вызова, но не имеет заданного типа, если она была создана на команде cmake(1) командной строкой пользователем с помощью параметра -D<var>=<value> без указания типа. В этом случае команда set добавит тип. Кроме того, если <type> равно PATH или FILEPATH, а <value> заданный в командной строке — это относительный путь, то команда set будет рассматривать путь как относительный к текущей рабочей директории и преобразует его в абсолютный путь.

Установка переменной окружения

set(ENV{<variable>} [<value>])

Устанавливает Environment Variable заданному значению. Последующие вызовы $ENV{<variable>} вернут это новое значение.

Эта команда влияет только на текущий процесс CMake, а не на процесс, из которого был вызван CMake, ни на системную среду в целом, ни на среду последующих процессов сборки или тестирования.

Если после ENV{<variable>} нет аргументов или <value> является пустой строкой, то эта команда очистит любое существующее значение переменной среды.

Аргументы после <value> игнорируются. Если найдены дополнительные аргументы, выдается предупреждение автора.

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

Spec-Zone.ru

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