Spec-Zone.ru › CMake

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

Spec-Zone.ru

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