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 - данные переменных времени выполнения (
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)
Если включающий модуль не определяет значение, будет использоваться указанное выше значение по умолчанию, и значение появится в кэше для редактирования пользователем.
Исключительные случаи
Следующие значения CMAKE_INSTALL_PREFIX являются исключительными:
/
Для <dir> отличных от SYSCONFDIR, LOCALSTATEDIR и RUNSTATEDIR, значение CMAKE_INSTALL_<dir> предваряется usr/, если оно не указано как абсолютный путь. Например, значение INCLUDEDIR include становится usr/include. Это требуется Стандартами программирования 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)
Устанавливает заданную переменную
absvarв абсолютный путь, содержащийся в переменнойvar. Это позволяет вычислить абсолютный путь, учитывая все исключительные случаи, описанные выше. Хотя этот макрос используется для вычисления различных переменныхCMAKE_INSTALL_FULL_<dir>, он представлен публично, чтобы пользователи, создающие дополнительные переменные пути, могли также вычислять абсолютные пути, когда это необходимо, используя ту же логику.
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.11/module/GNUInstallDirs.html