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