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