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