Spec-Zone.ru › CMake 3.30

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_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.30/policy/CMP0095.html

Spec-Zone.ru

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