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