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
DESTINATIONoptions ofinstall()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 theCMAKE_INSTALL_PREFIXvariable. However, there are some special cases as documented below.
where <dir> is one of:
BINDIRuser executables (
bin)SBINDIRsystem admin executables (
sbin)LIBEXECDIRprogram executables (
libexec)SYSCONFDIRread-only single-machine data (
etc)SHAREDSTATEDIRmodifiable architecture-independent data (
com)LOCALSTATEDIRmodifiable single-machine data (
var)LIBDIRobject code libraries (
liborlib64orlib/<multiarch-tuple>on Debian)INCLUDEDIRC header files (
include)OLDINCLUDEDIRC header files for non-gcc (
/usr/include)DATAROOTDIRread-only architecture-independent data root (
share)DATADIRread-only architecture-independent data (
DATAROOTDIR)INFODIRinfo documentation (
DATAROOTDIR/info)LOCALEDIRlocale-dependent data (
DATAROOTDIR/locale)MANDIRman documentation (
DATAROOTDIR/man)DOCDIRdocumentation 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.