CMP0126
Добавлена в версии 3.21.
Когда этот параметр политики установлен в NEW, команда set(CACHE) не удаляет никакие обычные переменные с таким же именем из текущей области видимости. Поведение OLD удаляет любые обычные переменные с таким же именем из текущей области видимости в следующих ситуациях:
- Ранее не существовала переменная кеша с таким именем.
- Ранее существовала переменная кеша с таким именем, но у неё не было типа. Это может произойти, когда переменная была установлена в командной строке с помощью формы, подобной
cmake -DMYVAR=blahвместоcmake -DMYVAR:STRING=blah. - При установке переменной кеша использовались ключевые слова
FORCEилиINTERNAL.
Обратите внимание, что поведение NEW имеет важное отличие от похожего поведения NEW политики CMP0077. Команда set(CACHE) всегда устанавливает переменную кеша, если она ранее не существовала, независимо от настроек политики CMP0126. Команда option() не установит переменную кеша, если уже существует переменная, не являющаяся переменной кеша, с тем же именем, и CMP0077 установлена в NEW.
Эта политика была введена в CMake версии 3.21. Она может быть установлена командой cmake_policy() или cmake_minimum_required(). Если она не установлена, CMake по умолчанию не выдаёт предупреждение и использует поведение OLD.
См. документацию переменной CMAKE_POLICY_WARNING_CMP0126 для управления предупреждением.
Переменная CMAKE_POLICY_DEFAULT_CMP0126 может быть использована для установки политики для проекта сторонних разработчиков в подкаталоге без его модификации.
Примечание
Поведение OLD политики является deprecated by definition и может быть удалено в будущей версии CMake.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.31/policy/CMP0126.html