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