CMP0095
Новое в версии 3.16.
RPATH записи корректно экранированы в промежуточном скрипте установки CMake.
В CMake 3.15 и ранее, RPATH записи, установленные с помощью CMAKE_INSTALL_RPATH или через INSTALL_RPATH, не были экранированы перед вставкой в cmake_install.cmake скрипт. Динамические загрузчики на системах ELF (например, Linux и FreeBSD) позволяют использовать определённые ключевые слова в RPATH записях, такие как ${ORIGIN} (Дополнительные сведения доступны в ld.so страницах справки на этих системах). Синтаксис этих ключевых слов может соответствовать синтаксису переменных CMake. Для предотвращения их подстановки (обычно на пустую строку) промежуточным cmake_install.cmake скриптом, пользователю необходимо было двойное экранирование таких RPATH ключевых слов, например, set(CMAKE_INSTALL_RPATH "\\\${ORIGIN}/../lib"). Поскольку промежуточный cmake_install.cmake скрипт — деталь реализации CMake, CMake 3.16 и более поздние версии гарантируют, что RPATH записи будут вставлены буквально, экранируя любые совпадения с синтаксисом CMake.
Поведение OLD этой политики заключается в том, чтобы не экранировать RPATH записи в промежуточном cmake_install.cmake скрипте. Поведение NEW — корректно экранировать совпадающие с синтаксисом CMake ключевые слова в RPATH записях при генерации промежуточного cmake_install.cmake скрипта.
Эта политика была введена в CMake версии 3.16. CMake версии 3.19.0-rc3 выводит предупреждение, если политика не установлена и обнаружено использование синтаксиса CMake, и использует OLD поведение. Используйте команду cmake_policy() для явного её установки в OLD или NEW.
Примечание
Поведение 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/CMP0095.html