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
options of
install()
commands for the corresponding file type.
CMAKE_INSTALL_FULL_<dir>
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
orlib64
orlib/<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:
/usr
will be a symbolic link to
/
.
/usr
<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/...
<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