summaryrefslogtreecommitdiffstats
path: root/Modules/GNUInstallDirs.cmake
diff options
context:
space:
mode:
authorNikita Krupen'ko <krnekit@gmail.com>2011-02-23 14:17:21 (GMT)
committerBrad King <brad.king@kitware.com>2011-02-28 20:15:01 (GMT)
commita262fe0917364cb003f7319b3d17c46280d75927 (patch)
treec858433036d9046c1cfbf0290c527700946ca7a4 /Modules/GNUInstallDirs.cmake
parent2465b5e4f5829b4991de6af9bbcbc8f8f1f8c2ab (diff)
downloadCMake-a262fe0917364cb003f7319b3d17c46280d75927.zip
CMake-a262fe0917364cb003f7319b3d17c46280d75927.tar.gz
CMake-a262fe0917364cb003f7319b3d17c46280d75927.tar.bz2
Add GNUInstallDirs module to define GNU layout (#3976)
Provide CMAKE_INSTALL_* variables to help install files according to the GNU standard layout: http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
Diffstat (limited to 'Modules/GNUInstallDirs.cmake')
-rw-r--r--Modules/GNUInstallDirs.cmake166
1 files changed, 166 insertions, 0 deletions
diff --git a/Modules/GNUInstallDirs.cmake b/Modules/GNUInstallDirs.cmake
new file mode 100644
index 0000000..8bed2e9
--- /dev/null
+++ b/Modules/GNUInstallDirs.cmake
@@ -0,0 +1,166 @@
+# - Define the installation directories conforming to GNU standards.
+# This module defines installation directories, as described by GNU standards.
+# For more information about this standards, see the following site:
+# http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
+#
+# Module defines variables for installation directories and for resulting paths
+# of this directories.
+#
+# Installation directories appointed to use during install. If such variable
+# contains relative path, during install resulting path will be created by
+# prepending it with CMAKE_INSTALL_PREFIX. If it contains absolute path, it
+# would be taken as is.
+# This variables only set if not defined already, thus allowing to override them
+# and are stored in cache.
+# CMAKE_INSTALL_BINDIR - user executables (bin)
+# CMAKE_INSTALL_SBINDIR - system admin executables (sbin)
+# CMAKE_INSTALL_LIBEXECDIR - program executables (libexec)
+# CMAKE_INSTALL_SYSCONFDIR - read-only single-machine data (etc)
+# CMAKE_INSTALL_SHAREDSTATEDIR - modifiable architecture-independent data (com)
+# CMAKE_INSTALL_LOCALSTATEDIR - modifiable single-machine data (var)
+# CMAKE_INSTALL_LIBDIR - object code libraries (lib)
+# CMAKE_INSTALL_INCLUDEDIR - C header files (include)
+# CMAKE_INSTALL_OLDINCLUDEDIR - C header files for non-gcc (/usr/include)
+# CMAKE_INSTALL_DATAROOTDIR - read-only architecture-independent data root (share)
+# CMAKE_INSTALL_DATADIR - read-only architecture-independent data (DATAROOTDIR)
+# CMAKE_INSTALL_INFODIR - info documentation (DATAROOTDIR/info)
+# CMAKE_INSTALL_LOCALEDIR - locale-dependent data (DATAROOTDIR/locale)
+# CMAKE_INSTALL_MANDIR - man documentation (DATAROOTDIR/man)
+# CMAKE_INSTALL_DOCDIR - documentation root (DATAROOTDIR/doc/PROJECT_NAME)
+# Resulting directories derived from installation directories and always
+# contains absolute paths.
+# This variables computed in runtime and not stored in cache.
+# CMAKE_INSTALL_FULL_BINDIR - user executables full path (PREFIX/BINDIR)
+# CMAKE_INSTALL_FULL_SBINDIR - system admin executables full path (PREFIX/SBINDIR)
+# CMAKE_INSTALL_FULL_LIBEXECDIR - program executables full path (PREFIX/LIBEXECDIR)
+# CMAKE_INSTALL_FULL_SYSCONFDIR - read-only single-machine data fill path (PREFIX/SYSCONFDIR)
+# CMAKE_INSTALL_FULL_SHAREDSTATEDIR - modifiable architecture-independent data full path (PREFIX/SHAREDSTATEDIR)
+# CMAKE_INSTALL_FULL_LOCALSTATEDIR - modifiable single-machine data full path (PREFIX/LOCALSTATEDIR)
+# CMAKE_INSTALL_FULL_LIBDIR - object code libraries full path (PREFIX/LIBDIR)
+# CMAKE_INSTALL_FULL_INCLUDEDIR - C header files full path (PREFIX/INCLUDEDIR)
+# CMAKE_INSTALL_FULL_OLDINCLUDEDIR - C header files for non-gcc full path (/usr/include)
+# CMAKE_INSTALL_FULL_DATAROOTDIR - read-only architecture-independent data root full path (PREFIX/DATAROOTDIR)
+# CMAKE_INSTALL_FULL_DATADIR - read-only architecture-independent data full path (PREFIX/DATADIR)
+# CMAKE_INSTALL_FULL_INFODIR - info documentation full path (PREFIX/INFODIR)
+# CMAKE_INSTALL_FULL_LOCALEDIR - locale-dependent data full path (PREFIX/LOCALEDIR)
+# CMAKE_INSTALL_FULL_MANDIR - man documentation full path (PREFIX/MANDIR)
+# CMAKE_INSTALL_FULL_DOCDIR - documentation root full path (PREFIX/DOCDIR)
+
+#=============================================================================
+# Copyright 2011 Nikita Krupen'ko <krnekit@gmail.com>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+# Installation directories
+#
+if(NOT DEFINED CMAKE_INSTALL_BINDIR)
+ set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_SBINDIR)
+ set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR)
+ set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR)
+ set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR)
+ set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR)
+ set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
+ set(CMAKE_INSTALL_LIBDIR "lib" CACHE PATH "object code libraries (lib)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
+ set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR)
+ set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR)
+ set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_DATADIR)
+ set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_INFODIR)
+ set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info" CACHE PATH "info documentation (DATAROOTDIR/info)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_LOCALEDIR)
+ set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_MANDIR)
+ set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man" CACHE PATH "man documentation (DATAROOTDIR/man)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_DOCDIR)
+ set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)")
+endif()
+
+mark_as_advanced(
+ CMAKE_INSTALL_BINDIR
+ CMAKE_INSTALL_SBINDIR
+ CMAKE_INSTALL_LIBEXECDIR
+ CMAKE_INSTALL_SYSCONFDIR
+ CMAKE_INSTALL_SHAREDSTATEDIR
+ CMAKE_INSTALL_LOCALSTATEDIR
+ CMAKE_INSTALL_LIBDIR
+ CMAKE_INSTALL_INCLUDEDIR
+ CMAKE_INSTALL_OLDINCLUDEDIR
+ CMAKE_INSTALL_DATAROOTDIR
+ CMAKE_INSTALL_DATADIR
+ CMAKE_INSTALL_INFODIR
+ CMAKE_INSTALL_LOCALEDIR
+ CMAKE_INSTALL_MANDIR
+ CMAKE_INSTALL_DOCDIR
+ )
+
+# Result directories
+#
+foreach(dir
+ BINDIR
+ SBINDIR
+ LIBEXECDIR
+ SYSCONFDIR
+ SHAREDSTATEDIR
+ LOCALSTATEDIR
+ LIBDIR
+ INCLUDEDIR
+ OLDINCLUDEDIR
+ DATAROOTDIR
+ DATADIR
+ INFODIR
+ LOCALEDIR
+ MANDIR
+ DOCDIR
+ )
+ if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}})
+ set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}")
+ else()
+ set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}")
+ endif()
+endforeach()