mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-15 12:16:40 +08:00
GNUInstallDirs: Move defaults from arguments to variables
Signed-off-by: Cristian Le <git@lecris.dev>
This commit is contained in:
@@ -166,8 +166,9 @@ function(_GNUInstallDirs_cache_convert_to_path var description)
|
||||
endfunction()
|
||||
|
||||
# Create a cache variable with default for a path.
|
||||
function(_GNUInstallDirs_cache_path var default description)
|
||||
function(_GNUInstallDirs_cache_path var description)
|
||||
set(cmake_install_var "CMAKE_INSTALL_${var}")
|
||||
set(default "${_GNUInstallDirs_${var}_DEFAULT}")
|
||||
set(full_description "${description}")
|
||||
if(NOT DEFINED ${cmake_install_var})
|
||||
set(${cmake_install_var} "${default}" CACHE PATH "${full_description}")
|
||||
@@ -178,8 +179,9 @@ endfunction()
|
||||
# Create a cache variable with not default for a path, with a fallback
|
||||
# when unset; used for entries slaved to other entries such as
|
||||
# DATAROOTDIR.
|
||||
function(_GNUInstallDirs_cache_path_fallback var default description)
|
||||
function(_GNUInstallDirs_cache_path_fallback var description)
|
||||
set(cmake_install_var "CMAKE_INSTALL_${var}")
|
||||
set(default "${_GNUInstallDirs_${var}_DEFAULT}")
|
||||
if(NOT ${cmake_install_var})
|
||||
set(${cmake_install_var} "" CACHE PATH "${description}")
|
||||
set(${cmake_install_var} "${default}")
|
||||
@@ -191,6 +193,18 @@ endfunction()
|
||||
# Installation directories
|
||||
#
|
||||
|
||||
# Set the standard default values before any special handling
|
||||
set(_GNUInstallDirs_BINDIR_DEFAULT "bin")
|
||||
set(_GNUInstallDirs_SBINDIR_DEFAULT "sbin")
|
||||
set(_GNUInstallDirs_LIBEXECDIR_DEFAULT "libexec")
|
||||
set(_GNUInstallDirs_SYSCONFDIR_DEFAULT "etc")
|
||||
set(_GNUInstallDirs_SHAREDSTATEDIR_DEFAULT "com")
|
||||
set(_GNUInstallDirs_LOCALSTATEDIR_DEFAULT "var")
|
||||
set(_GNUInstallDirs_LIBDIR_DEFAULT "lib")
|
||||
set(_GNUInstallDirs_INCLUDEDIR_DEFAULT "include")
|
||||
set(_GNUInstallDirs_OLDINCLUDEDIR_DEFAULT "/usr/include")
|
||||
set(_GNUInstallDirs_DATAROOTDIR_DEFAULT "share")
|
||||
|
||||
# We check if the variable was manually set and not cached, in order to
|
||||
# allow projects to set the values as normal variables before including
|
||||
# GNUInstallDirs to avoid having the entries cached or user-editable. It
|
||||
@@ -307,24 +321,24 @@ set(_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE IN
|
||||
unset(_libdir_set)
|
||||
unset(__LAST_LIBDIR_DEFAULT)
|
||||
|
||||
_GNUInstallDirs_cache_path(BINDIR "bin"
|
||||
_GNUInstallDirs_cache_path(BINDIR
|
||||
"User executables (bin)")
|
||||
_GNUInstallDirs_cache_path(SBINDIR "sbin"
|
||||
_GNUInstallDirs_cache_path(SBINDIR
|
||||
"System admin executables (sbin)")
|
||||
_GNUInstallDirs_cache_path(LIBEXECDIR "libexec"
|
||||
_GNUInstallDirs_cache_path(LIBEXECDIR
|
||||
"Program executables (libexec)")
|
||||
_GNUInstallDirs_cache_path(SYSCONFDIR "etc"
|
||||
_GNUInstallDirs_cache_path(SYSCONFDIR
|
||||
"Read-only single-machine data (etc)")
|
||||
_GNUInstallDirs_cache_path(SHAREDSTATEDIR "com"
|
||||
_GNUInstallDirs_cache_path(SHAREDSTATEDIR
|
||||
"Modifiable architecture-independent data (com)")
|
||||
_GNUInstallDirs_cache_path(LOCALSTATEDIR "var"
|
||||
_GNUInstallDirs_cache_path(LOCALSTATEDIR
|
||||
"Modifiable single-machine data (var)")
|
||||
|
||||
_GNUInstallDirs_cache_path(INCLUDEDIR "include"
|
||||
_GNUInstallDirs_cache_path(INCLUDEDIR
|
||||
"C header files (include)")
|
||||
_GNUInstallDirs_cache_path(OLDINCLUDEDIR "/usr/include"
|
||||
_GNUInstallDirs_cache_path(OLDINCLUDEDIR
|
||||
"C header files for non-gcc (/usr/include)")
|
||||
_GNUInstallDirs_cache_path(DATAROOTDIR "share"
|
||||
_GNUInstallDirs_cache_path(DATAROOTDIR
|
||||
"Read-only architecture-independent data root (share)")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -333,30 +347,61 @@ _GNUInstallDirs_cache_path(DATAROOTDIR "share"
|
||||
# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "^(([^kF].*)?BSD|DragonFly)$")
|
||||
_GNUInstallDirs_cache_path(INFODIR "info"
|
||||
set(_GNUInstallDirs_INFODIR_DEFAULT "info")
|
||||
_GNUInstallDirs_cache_path(INFODIR
|
||||
"Info documentation (info)")
|
||||
else()
|
||||
_GNUInstallDirs_cache_path_fallback(INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info"
|
||||
set(_GNUInstallDirs_INFODIR_DEFAULT "${CMAKE_INSTALL_DATAROOTDIR}/info")
|
||||
_GNUInstallDirs_cache_path_fallback(INFODIR
|
||||
"Info documentation (DATAROOTDIR/info)")
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "^(([^k].*)?BSD|DragonFly)$" AND NOT CMAKE_SYSTEM_NAME MATCHES "^(FreeBSD)$")
|
||||
_GNUInstallDirs_cache_path(MANDIR "man"
|
||||
set(_GNUInstallDirs_MANDIR_DEFAULT "man")
|
||||
_GNUInstallDirs_cache_path(MANDIR
|
||||
"Man documentation (man)")
|
||||
else()
|
||||
_GNUInstallDirs_cache_path_fallback(MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man"
|
||||
set(_GNUInstallDirs_MANDIR_DEFAULT "${CMAKE_INSTALL_DATAROOTDIR}/man")
|
||||
_GNUInstallDirs_cache_path_fallback(MANDIR
|
||||
"Man documentation (DATAROOTDIR/man)")
|
||||
endif()
|
||||
|
||||
_GNUInstallDirs_cache_path_fallback(DATADIR "${CMAKE_INSTALL_DATAROOTDIR}"
|
||||
set(_GNUInstallDirs_DATADIR_DEFAULT "${CMAKE_INSTALL_DATAROOTDIR}")
|
||||
set(_GNUInstallDirs_LOCALEDIR_DEFAULT "${CMAKE_INSTALL_DATAROOTDIR}/locale")
|
||||
set(_GNUInstallDirs_DOCDIR_DEFAULT "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}")
|
||||
set(_GNUInstallDirs_RUNSTATEDIR_DEFAULT "${CMAKE_INSTALL_LOCALSTATEDIR}/run")
|
||||
|
||||
_GNUInstallDirs_cache_path_fallback(DATADIR
|
||||
"Read-only architecture-independent data (DATAROOTDIR)")
|
||||
_GNUInstallDirs_cache_path_fallback(LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale"
|
||||
_GNUInstallDirs_cache_path_fallback(LOCALEDIR
|
||||
"Locale-dependent data (DATAROOTDIR/locale)")
|
||||
_GNUInstallDirs_cache_path_fallback(DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}"
|
||||
_GNUInstallDirs_cache_path_fallback(DOCDIR
|
||||
"Documentation root (DATAROOTDIR/doc/PROJECT_NAME)")
|
||||
_GNUInstallDirs_cache_path_fallback(RUNSTATEDIR "${CMAKE_INSTALL_LOCALSTATEDIR}/run"
|
||||
_GNUInstallDirs_cache_path_fallback(RUNSTATEDIR
|
||||
"Run-time variable data (LOCALSTATEDIR/run)")
|
||||
|
||||
# Unset all the defaults used
|
||||
foreach(dir IN ITEMS
|
||||
BINDIR
|
||||
SBINDIR
|
||||
LIBEXECDIR
|
||||
SYSCONFDIR
|
||||
SHAREDSTATEDIR
|
||||
LOCALSTATEDIR
|
||||
LIBDIR
|
||||
INCLUDEDIR
|
||||
OLDINCLUDEDIR
|
||||
DATAROOTDIR
|
||||
DATADIR
|
||||
INFODIR
|
||||
MANDIR
|
||||
LOCALEDIR
|
||||
DOCDIR
|
||||
RUNSTATEDIR
|
||||
)
|
||||
unset(_GNUInstallDirs_${dir}_DEFAULT)
|
||||
endforeach()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
mark_as_advanced(
|
||||
|
Reference in New Issue
Block a user