Spec-Zone.ru › CMake 3.25

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.25.1 не выдает предупреждение, когда политика не установлена, а просто использует 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.25/policy/CMP0126.html

Spec-Zone.ru

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