Spec-Zone.ru › CMake 3.28

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

Spec-Zone.ru

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