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.26.0-rc3 предупреждает, если политика не установлена, и обнаружено использование синтаксиса, подобного CMake, и использует OLD поведение. Используйте команду cmake_policy(), чтобы установить её явно в OLD или NEW.
Примечание
Поведение OLD политики deprecated by definition и может быть удалено в будущей версии CMake.
© 2000–2023 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.26/policy/CMP0095.html