Spec-Zone.ru › CMake 3.20

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.20.0-rc3 предупреждает, если этот параметр не установлен и обнаружено использование синтаксиса CMake, и использует OLD поведение. Используйте команду cmake_policy(), чтобы установить его явно в OLD или NEW.

Примечание

OLD поведение параметра — deprecated by definition и может быть удалено в будущей версии CMake.

© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.20/policy/CMP0095.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API