set
Устанавливает обычную, кеш- или системную переменную заданному значению. См. документацию cmake-language(7) variables для получения информации о разделах и взаимодействии обычных переменных и записей кеша.
Подписи этой команды, которые указывают на <value>... placeholder, ожидают ноль или более аргументов. Несколько аргументов будут объединены в список, разделённый точкой с запятой, чтобы сформировать фактическое значение переменной, которое будет установлено. Ноль аргументов приведет к отмене обычных переменных. См. команду 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–2023 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.26/command/set.html