Spec-Zone.ru › CMake 3.30

GNUInstallDirs

Определение стандартных каталогов установки GNU

Предоставляет переменные каталогов установки, как определено в Стандартах кодирования GNU.

Переменные результатов

Включение этого модуля определяет следующие переменные:

CMAKE_INSTALL_<dir>

Назначение для файлов заданного типа. Это значение может быть передано в параметры DESTINATION команд install() для соответствующего типа файлов. Оно должно быть путём, относительным к префиксу установки, чтобы его можно было преобразовать в абсолютный путь переносимым способом.

Хотя абсолютные пути разрешены, они не рекомендуются, так как они не работают с параметром --prefix команды cmake --install, или с генераторами установщиков cpack. В частности, нет необходимости делать пути абсолютными, добавляя CMAKE_INSTALL_PREFIX; этот префикс используется по умолчанию, если DESTINATION является относительным путём.

CMAKE_INSTALL_FULL_<dir>

Абсолютный путь, сгенерированный из соответствующего значения CMAKE_INSTALL_<dir>. Если значение не является абсолютным путём, абсолютный путь обычно строится путём добавления значения переменной CMAKE_INSTALL_PREFIX в начало. Однако существуют некоторые исключительные случаи, как описано ниже.

Эти переменные не следует использовать в командах install(), так как они не работают с параметром --prefix команды cmake --install, или с генераторами установщиков cpack.

где <dir> является одним из:

BINDIR

пользовательские исполняемые файлы (bin)

SBINDIR

исполняемые файлы системного администратора (sbin)

LIBEXECDIR

исполняемые файлы программы (libexec)

SYSCONFDIR

только для чтения данные одной машины (etc)

SHAREDSTATEDIR

изменяемые данные, независимые от архитектуры (com)

LOCALSTATEDIR

изменяемые данные одной машины (var)

RUNSTATEDIR

Новое в версии 3.9: данные переменной времени выполнения (LOCALSTATEDIR/run)

LIBDIR

библиотеки объектного кода (lib или lib64)

В Debian, это может быть lib/<multiarch-tuple> когда CMAKE_INSTALL_PREFIX равно /usr.

INCLUDEDIR

заголовочные файлы C (include)

OLDINCLUDEDIR

заголовочные файлы C для non-gcc (/usr/include)

DATAROOTDIR

корневой каталог данных, только для чтения, независимых от архитектуры (share)

DATADIR

данные, только для чтения, независимые от архитектуры (DATAROOTDIR)

INFODIR

документация info (DATAROOTDIR/info)

LOCALEDIR

данные, зависящие от локали (DATAROOTDIR/locale)

MANDIR

документация man (DATAROOTDIR/man)

DOCDIR

корень документации (DATAROOTDIR/doc/PROJECT_NAME)

Если включитель не определяет значение, будет использовано вышеуказанное значение по умолчанию, и значение отобразится в кэше для редактирования пользователем.

Исключительные случаи

Новое в версии 3.4.

Следующие значения CMAKE_INSTALL_PREFIX являются исключительными:

/

Для значений <dir>, отличных от SYSCONFDIR, LOCALSTATEDIR и RUNSTATEDIR, значение CMAKE_INSTALL_<dir> предваряется usr/, если оно не указано как абсолютный путь. Например, значение INCLUDEDIR include становится usr/include. Это необходимо для Стандартов кодирования GNU, которые указывают:

При построении полной системы GNU префикс будет пустым, и /usr будет символической ссылкой на /.

/usr

Для <dir> равного SYSCONFDIR, RUNSTATEDIR или LOCALSTATEDIR, CMAKE_INSTALL_FULL_<dir> вычисляется путём добавления только / к значению CMAKE_INSTALL_<dir>, если оно не указано как абсолютный путь. Например, значение SYSCONFDIR etc становится /etc. Это требуется Стандартами кодирования GNU.

/opt/...

Для <dir> равного SYSCONFDIR, LOCALSTATEDIR или RUNSTATEDIR, CMAKE_INSTALL_FULL_<dir> вычисляется путём присоединения префикса к значению CMAKE_INSTALL_<dir>, если оно не указано как абсолютный путь. Например, значение SYSCONFDIR etc становится /etc/opt/.... Это определяется Стандартом иерархии файловой системы.

Это поведение не применяется к путям под /opt/homebrew/....

Макросы

GNUInstallDirs_get_absolute_install_dir
GNUInstallDirs_get_absolute_install_dir(absvar var dirname)

Новое в версии 3.7.

Установить заданную переменную absvar в абсолютный путь, содержащийся в переменной var. Это необходимо для вычисления абсолютного пути, учитывая все исключительные случаи, описанные выше. Хотя этот макрос используется для вычисления различных переменных CMAKE_INSTALL_FULL_<dir>, он публично доступен, чтобы пользователи, создающие дополнительные переменные путей, также могли вычислить абсолютные пути при необходимости, используя ту же логику. dirname — это имя каталога для получения, например, BINDIR.

Изменено в версии 3.20: Добавлен параметр <dirname>. В предыдущих версиях CMake это значение передавалось через переменную ${dir}.

© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.30/module/GNUInstallDirs.html

Spec-Zone.ru

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