cmake / 3.6.3 / module / gnuinstalldirs.html /

GNUInstallDirs

Define GNU standard installation directories

Provides install directory variables as defined by the GNU Coding Standards.

Result Variables

Inclusion of this module defines the following variables:

CMAKE_INSTALL_<dir>

Destination for files of a given type. This value may be passed to the DESTINATION options of install() commands for the corresponding file type.

CMAKE_INSTALL_FULL_<dir>

The absolute path generated from the corresponding CMAKE_INSTALL_<dir> value. If the value is not already an absolute path, an absolute path is constructed typically by prepending the value of the CMAKE_INSTALL_PREFIX variable. However, there are some special cases as documented below.

where <dir> is one of:

BINDIR
user executables ( bin)
SBINDIR
system admin executables ( sbin)
LIBEXECDIR
program executables ( libexec)
SYSCONFDIR
read-only single-machine data ( etc)
SHAREDSTATEDIR
modifiable architecture-independent data ( com)
LOCALSTATEDIR
modifiable single-machine data ( var)
LIBDIR
object code libraries ( lib or lib64 or lib/<multiarch-tuple> on Debian)
INCLUDEDIR
C header files ( include)
OLDINCLUDEDIR
C header files for non-gcc ( /usr/include)
DATAROOTDIR
read-only architecture-independent data root ( share)
DATADIR
read-only architecture-independent data ( DATAROOTDIR)
INFODIR
info documentation ( DATAROOTDIR/info)
LOCALEDIR
locale-dependent data ( DATAROOTDIR/locale)
MANDIR
man documentation ( DATAROOTDIR/man)
DOCDIR
documentation root ( DATAROOTDIR/doc/PROJECT_NAME)

If the includer does not define a value the above-shown default will be used and the value will appear in the cache for editing by the user.

Special Cases

The following values of CMAKE_INSTALL_PREFIX are special:

/

For <dir> other than the SYSCONFDIR and LOCALSTATEDIR, the value of CMAKE_INSTALL_<dir> is prefixed with usr/ if it is not user-specified as an absolute path. For example, the INCLUDEDIR value include becomes usr/include. This is required by the GNU Coding Standards, which state:

When building the complete GNU system, the prefix will be empty and /usr will be a symbolic link to /.

/usr

For <dir> equal to SYSCONFDIR or LOCALSTATEDIR, the CMAKE_INSTALL_FULL_<dir> is computed by prepending just / to the value of CMAKE_INSTALL_<dir> if it is not user-specified as an absolute path. For example, the SYSCONFDIR value etc becomes /etc. This is required by the GNU Coding Standards.

/opt/...

For <dir> equal to SYSCONFDIR or LOCALSTATEDIR, the CMAKE_INSTALL_FULL_<dir> is computed by appending the prefix to the value of CMAKE_INSTALL_<dir> if it is not user-specified as an absolute path. For example, the SYSCONFDIR value etc becomes /etc/opt/.... This is defined by the Filesystem Hierarchy Standard.

© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.6/module/GNUInstallDirs.html