Spec-Zone.ru › CMake 3.23

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/.... Это определено стандартом иерархии файловой системы.

Макросы

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–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.23/module/GNUInstallDirs.html

Spec-Zone.ru

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