summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorRobert Maynard <rmaynard@nvidia.com>2024-02-15 16:58:26 (GMT)
committerBrad King <brad.king@kitware.com>2024-02-16 14:53:55 (GMT)
commitaf293ff7c3847dae029d5e91a3ea1864466c9659 (patch)
tree5623f4fc63cd49de162cc4750e7bdf07334607c9 /Modules
parentcbc4afccc14343378614d840ee9adb830516a810 (diff)
downloadCMake-af293ff7c3847dae029d5e91a3ea1864466c9659.zip
CMake-af293ff7c3847dae029d5e91a3ea1864466c9659.tar.gz
CMake-af293ff7c3847dae029d5e91a3ea1864466c9659.tar.bz2
Help: Explicitly discourage absolute install destinations
Document some of the problems caused by absolute install destinations. Encourage use of relative paths.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/GNUInstallDirs.cmake20
1 files changed, 15 insertions, 5 deletions
diff --git a/Modules/GNUInstallDirs.cmake b/Modules/GNUInstallDirs.cmake
index 9796854..ed34c4a 100644
--- a/Modules/GNUInstallDirs.cmake
+++ b/Modules/GNUInstallDirs.cmake
@@ -20,11 +20,16 @@ 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 :command:`install` commands for the
- corresponding file type. It should typically be a path relative to
- the installation prefix so that it can be converted to an absolute
- path in a relocatable way (see ``CMAKE_INSTALL_FULL_<dir>``).
- However, an absolute path is also allowed.
+ the ``DESTINATION`` options of :command:`install` commands for the
+ corresponding file type. It should be a path relative to the installation
+ prefix so that it can be converted to an absolute path in a relocatable way.
+
+ While absolute paths are allowed, they are not recommended as they
+ do not work with the ``cmake --install`` command's
+ :option:`--prefix <cmake--install --prefix>` option, or with the
+ :manual:`cpack <cpack(1)>` installer generators. In particular, there is no
+ need to make paths absolute by prepending :variable:`CMAKE_INSTALL_PREFIX`;
+ this prefix is used by default if the DESTINATION is a relative path.
``CMAKE_INSTALL_FULL_<dir>``
@@ -34,6 +39,11 @@ Inclusion of this module defines the following variables:
:variable:`CMAKE_INSTALL_PREFIX` variable. However, there are some
`special cases`_ as documented below.
+ These variables shouldn't be used in :command:`install` commands
+ as they do not work with the ``cmake --install`` command's
+ :option:`--prefix <cmake--install --prefix>` option, or with the
+ :manual:`cpack <cpack(1)>` installer generators.
+
where ``<dir>`` is one of:
``BINDIR``