Spec-Zone.ru › CMake 3.29

GNUInstallDirs

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

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

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

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

CMAKE_INSTALL_<dir>

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

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

CMAKE_INSTALL_FULL_<dir>

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

Эти переменные не должны использоваться в командах install(), так как они не работают с опцией cmake --install команды --prefix, или с установщиками-генераторами 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, 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.29/module/GNUInstallDirs.html

Spec-Zone.ru

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