Spec-Zone.ru › CMake 3.17

CMP0102

Команда mark_as_advanced() больше не создаёт запись в кэше, если таковая не существует.

В CMake 3.16 и ниже, если переменная вообще не была определена или была определена только локально, команда mark_as_advanced() создавала новую запись в кэше типа UNINITIALIZED и без значения. Когда затем выполнялась команда find_path() (или другая аналогичная find_ команда), она находила эту неопределённую запись в кэше и устанавливала для неё пустое строковое значение. Этот процесс в итоге удалял локальную переменную (из-за работы кэша), фактически очищая любые сохранённые find_ результаты, которые были доступны только в локальной области.

По умолчанию для этой политики задано создание пустого определения кэша. Альтернативное поведение этой политики заключается в игнорировании переменных, которые ещё не существуют в кэше.

Эта политика была введена в CMake версии 3.17. Используйте команду cmake_policy(), чтобы явно установить её в OLD или NEW. В отличие от многих других политик, CMake версии 3.17.5 не выводит предупреждение, если эта политика не установлена, и просто использует поведение OLD.

Примечание

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

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

Spec-Zone.ru

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