GNUInstallDirs
Определение стандартных каталогов установки GNU
Предоставляет переменные каталогов установки, определённые в стандартах кодирования GNU.
Переменные результата
Включение данного модуля определяет следующие переменные:
CMAKE_INSTALL_<dir>
Путь назначения для файлов данного типа. Это значение может быть передано в опции DESTINATION команд install() для соответствующего типа файла.
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илиlib/<multiarch-tuple>на Debian) -
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/.... Это определено Стандартом размещения файлов.
Макросы
-
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–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.20/module/GNUInstallDirs.html