Spec-Zone.ru › CMake 3.24

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.

Параметр CMP0126 был введен в версии CMake 3.21. Используйте команду cmake_policy() для явного установки его в OLD или NEW в проекте. Используйте переменную CMAKE_POLICY_DEFAULT_CMP0126 для установки параметра для проекта сторонних разработчиков в подкаталоге, не изменяя его. В отличие от многих параметров, CMake версии 3.24.2 не выводит предупреждение, когда параметр не установлен, а просто использует поведение OLD. См. документацию переменной CMAKE_POLICY_WARNING_CMP0126 для управления предупреждением.

Примечание

Поведение OLD параметра deprecated by definition и может быть удалено в будущих версиях CMake.

© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.24/policy/CMP0126.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API