CMP0102
Новое в версии 3.17.
Команда mark_as_advanced() больше не создаёт запись в кэше, если она уже не существует.
В CMake 3.16 и ниже, если переменная вообще не была определена или была определена только локально, команда mark_as_advanced() создавала новую запись в кэше типа UNINITIALIZED и без значения. Когда затем выполнялась команда find_path() (или другая аналогичная find_ команда), она находила эту неопределённую запись в кэше и устанавливала для неё значение пустой строки. Этот процесс в конечном итоге удалял локальную переменную (из-за работы кэша), эффективно очищая любые сохранённые find_ результаты, которые были доступны только в локальной области видимости.
Поведением по умолчанию для этой политики является создание пустого определения кэша. Поведением по умолчанию для этой политики является игнорирование переменных, которые ещё не существуют в кэше.
Эта политика была введена в версии CMake 3.17. Используйте команду cmake_policy(), чтобы явно установить её в OLD или NEW. В отличие от многих политик, CMake версии 3.19.0-rc3 *не* выводит предупреждение, когда эта политика не установлена, и просто использует OLD поведение.
Примечание
Поведение по умолчанию для политики — deprecated by definition, и оно может быть удалено в будущих версиях CMake.
© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.19/policy/CMP0102.html