diff options
author | Dennis Klein <d.klein@gsi.de> | 2020-10-08 13:58:54 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2020-10-08 15:10:41 (GMT) |
commit | 798c1c319224c8b9ec6e4407e2c42375bd645235 (patch) | |
tree | 89fa12e3831e830953d5c905d89a9486020bde74 /Modules/GNUInstallDirs.cmake | |
parent | 75bcd3cf54bc483b49dc4ed1d7ee9d36f5f58732 (diff) | |
download | CMake-798c1c319224c8b9ec6e4407e2c42375bd645235.zip CMake-798c1c319224c8b9ec6e4407e2c42375bd645235.tar.gz CMake-798c1c319224c8b9ec6e4407e2c42375bd645235.tar.bz2 |
GNUInstallDirs: Comply with Debian Policy on LIBEXECDIR
If CMAKE_INSTALL_PREFIX is /usr, CMAKE_INSTALL_LIBEXECDIR shall return
the same value as CMAKE_INSTALL_LIBDIR on Debian.
While the FHS allows /usr/libexec for internal binaries
(https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html#usrlibexec) the
Debian Policy Manual states an exception here (section 9.1.1 bullet point 4):
https://www.debian.org/doc/debian-policy/ch-opersys#file-system-structure.
Fixes: #21287
Diffstat (limited to 'Modules/GNUInstallDirs.cmake')
-rw-r--r-- | Modules/GNUInstallDirs.cmake | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/Modules/GNUInstallDirs.cmake b/Modules/GNUInstallDirs.cmake index 9ef22b9..13d067a 100644 --- a/Modules/GNUInstallDirs.cmake +++ b/Modules/GNUInstallDirs.cmake @@ -167,8 +167,6 @@ _GNUInstallDirs_cache_path(CMAKE_INSTALL_BINDIR "bin" "User executables (bin)") _GNUInstallDirs_cache_path(CMAKE_INSTALL_SBINDIR "sbin" "System admin executables (sbin)") -_GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "libexec" - "Program executables (libexec)") _GNUInstallDirs_cache_path(CMAKE_INSTALL_SYSCONFDIR "etc" "Read-only single-machine data (etc)") _GNUInstallDirs_cache_path(CMAKE_INSTALL_SHAREDSTATEDIR "com" @@ -262,6 +260,19 @@ set(_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE IN unset(_libdir_set) unset(__LAST_LIBDIR_DEFAULT) +if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$" + AND NOT CMAKE_CROSSCOMPILING + AND NOT EXISTS "/etc/arch-release" + AND EXISTS "/etc/debian_version" # is this a debian system ? + AND "${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$") + # see https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html#usrlibexec + # and https://www.debian.org/doc/debian-policy/ch-opersys#file-system-structure (section 9.1.1 bullet point 4) + _GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "${CMAKE_INSTALL_LIBDIR}" + "Program executables (${CMAKE_INSTALL_LIBDIR})") +else() + _GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "libexec" + "Program executables (libexec)") +endif() _GNUInstallDirs_cache_path(CMAKE_INSTALL_INCLUDEDIR "include" "C header files (include)") _GNUInstallDirs_cache_path(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" |