Spec-Zone.ru › CMake 3.22

CMP0126

Новое в версии 3.21.

Когда эта политика установлена в NEW, команда set(CACHE) не удаляет ни одной обычной переменной с тем же именем из текущей области видимости. Поведение OLD удаляет любую обычную переменную с таким же именем из текущей области видимости в следующих ситуациях:

  • Ранее не существовала переменная-кеш с таким именем.
  • Ранее существовала переменная-кеш с таким именем, но она не имела типа. Это может произойти, когда переменная была установлена в командной строке с помощью формата cmake -DMYVAR=blah вместо cmake -DMYVAR:STRING=blah.

Обратите внимание, что поведение NEW имеет важное отличие от аналогичного поведения NEW политики CMP0077. Команда set(CACHE) всегда устанавливает переменную-кеш, если она ранее не существовала, независимо от установки политики CMP0126. Команда option() не установит переменную-кеш, если уже существует переменная без кэширования с тем же именем и CMP0077 установлено в NEW.

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

Примечание

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

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

Spec-Zone.ru

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