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–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.23/command/set.html