Spec-Zone.ru › CMake

CMP0192

Добавлено в версии 4.1.

GNUInstallDirs использует абсолютные SYSCONFDIR, LOCALSTATEDIR и RUNSTATEDIR в специальных префиксах.

Модуль GNUInstallDirs описывает особые случаи для SYSCONFDIR, LOCALSTATEDIR и RUNSTATEDIR. Если CMAKE_INSTALL_PREFIX является специальным префиксом, например /usr, абсолютные пути для этих каталогов могут находиться за пределами префикса, например /etc, /var и /var/run.

В CMake 4.0 и более ранних версиях значения по умолчанию для переменных CMAKE_INSTALL_<dir> при <dir>, равном SYSCONFDIR, LOCALSTATEDIR и RUNSTATEDIR, всегда использовали относительные пути (etc, var, var/run), а особые случаи учитывались только при вычислении абсолютных путей для переменных CMAKE_INSTALL_FULL_<dir>. В CMake 4.1 и более поздних версиях предпочтительно задавать для переменных CMAKE_INSTALL_<dir> абсолютные пути по умолчанию при <dir>, равном SYSCONFDIR, LOCALSTATEDIR и RUNSTATEDIR, если CMAKE_INSTALL_PREFIX является специальным префиксом. Эта политика обеспечивает совместимость с проектами, которые ещё не были обновлены для работы с таким поведением.

Поведение OLD для этой политики заключается в том, что для переменных CMAKE_INSTALL_<dir> по умолчанию задаются относительные пути. Поведение NEW для этой политики заключается в том, что для переменных CMAKE_INSTALL_<dir> по умолчанию задаются абсолютные пути при <dir>, равном SYSCONFDIR, LOCALSTATEDIR и RUNSTATEDIR, если CMAKE_INSTALL_PREFIX является специальным префиксом.

Эта политика вступает в силу при первом вызове include(GNUInstallDirs). При последующих вызовах include(GNUInstallDirs) повторно используются кэшированные значения CMAKE_INSTALL_<dir>, полученные при первом вызове.

Эта политика появилась в версии CMake 4.1. Её можно задать с помощью cmake_policy() или cmake_minimum_required(). Если она не задана, CMake не выдаёт предупреждение и использует поведение OLD.

Примечание

Поведение OLD для политики по определению считается устаревшим и может быть удалено в будущей версии CMake.

© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/policy/CMP0192.html

Spec-Zone.ru

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