Spec-Zone.ru › CMake 3.27

GNUInstallDirs

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

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

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

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

CMAKE_INSTALL_<dir>

Место назначения файлов заданного типа. Это значение может быть передано в параметры DESTINATION команд install() для соответствующего типа файлов. Как правило, это путь, относительный к префиксу установки, чтобы его можно было преобразовать в абсолютный путь переносимым способом (см. CMAKE_INSTALL_FULL_<dir>). Однако допускается и абсолютный путь.

CMAKE_INSTALL_FULL_<dir>

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

где <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.27/module/GNUInstallDirs.html

Spec-Zone.ru

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