CMP0095
Новое в версии 3.16.
RPATH записи корректно экранируются в промежуточном скрипте CMake install.
В 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_policy() или cmake_minimum_required(). Если она не установлена, CMake выводит предупреждение при обнаружении использования синтаксиса CMake, и использует поведение OLD.
Примечание
Поведение OLD политики deprecated by definition и может быть удалено в будущих версиях CMake.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.29/policy/CMP0095.html