Spec-Zone.ru › CMake 3.31

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 для не-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, LOCALSTATEDIR или RUNSTATEDIR, значение 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.31/module/GNUInstallDirs.html

Spec-Zone.ru

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