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 theDESTINATIONoptions ofinstall()commands for the corresponding file type.
CMAKE_INSTALL_FULL_<dir>
The absolute path generated from the correspondingCMAKE_INSTALL_<dir>value. If the value is not already an absolute path, an absolute path is constructed typically by prepending the value of theCMAKE_INSTALL_PREFIXvariable. 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 (
liborlib64orlib/<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 theSYSCONFDIRandLOCALSTATEDIR, the value ofCMAKE_INSTALL_<dir>is prefixed withusr/if it is not user-specified as an absolute path. For example, theINCLUDEDIRvalueincludebecomesusr/include. This is required by the GNU Coding Standards, which state:When building the complete GNU system, the prefix will be empty and/usrwill be a symbolic link to/.
/usr
For<dir>equal toSYSCONFDIRorLOCALSTATEDIR, theCMAKE_INSTALL_FULL_<dir>is computed by prepending just/to the value ofCMAKE_INSTALL_<dir>if it is not user-specified as an absolute path. For example, theSYSCONFDIRvalueetcbecomes/etc. This is required by the GNU Coding Standards.
/opt/...
For<dir>equal toSYSCONFDIRorLOCALSTATEDIR, theCMAKE_INSTALL_FULL_<dir>is computed by appending the prefix to the value ofCMAKE_INSTALL_<dir>if it is not user-specified as an absolute path. For example, theSYSCONFDIRvalueetcbecomes/etc/opt/.... This is defined by the Filesystem Hierarchy Standard.