Spec-Zone.ru › CMake 3.29

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.29/policy/CMP0126.html

Spec-Zone.ru

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