mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-20 21:40:15 +08:00
GNUInstallDirs: Factor out helper to compute system type
Factor a `_GNUInstallDirs_get_system_type_for_install` helper out of the `CMAKE_INSTALL_LIBDIR` logic. Signed-off-by: Cristian Le <git@lecris.dev>
This commit is contained in:
@@ -190,6 +190,40 @@ function(_GNUInstallDirs_cache_path_fallback var description)
|
|||||||
return(PROPAGATE ${cmake_install_var})
|
return(PROPAGATE ${cmake_install_var})
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
# Other helpers
|
||||||
|
# Check what system we are on for LIBDIR formatting
|
||||||
|
function(_GNUInstallDirs_get_system_type_for_install out_var)
|
||||||
|
unset(${out_var})
|
||||||
|
# Check if we are building for conda
|
||||||
|
if(DEFINED ENV{CONDA_BUILD} AND DEFINED ENV{PREFIX})
|
||||||
|
set(conda_prefix "$ENV{PREFIX}")
|
||||||
|
cmake_path(ABSOLUTE_PATH conda_prefix NORMALIZE)
|
||||||
|
if("${CMAKE_INSTALL_PREFIX}" STREQUAL conda_prefix)
|
||||||
|
set(${out_var} "conda")
|
||||||
|
endif()
|
||||||
|
elseif(DEFINED ENV{CONDA_PREFIX})
|
||||||
|
set(conda_prefix "$ENV{CONDA_PREFIX}")
|
||||||
|
cmake_path(ABSOLUTE_PATH conda_prefix NORMALIZE)
|
||||||
|
if("${CMAKE_INSTALL_PREFIX}" STREQUAL conda_prefix AND
|
||||||
|
NOT ("${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$" OR
|
||||||
|
"${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/local/?$"))
|
||||||
|
set(${out_var} "conda")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
# If we didn't detect conda from the previous step, check
|
||||||
|
# for the linux variant
|
||||||
|
if(NOT ${out_var})
|
||||||
|
if (EXISTS "/etc/alpine-release")
|
||||||
|
set(${out_var} "alpine")
|
||||||
|
elseif (EXISTS "/etc/arch-release")
|
||||||
|
set(${out_var} "arch linux")
|
||||||
|
elseif (EXISTS "/etc/debian_version")
|
||||||
|
set(${out_var} "debian")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
return(PROPAGATE ${out_var})
|
||||||
|
endfunction()
|
||||||
|
|
||||||
# Installation directories
|
# Installation directories
|
||||||
#
|
#
|
||||||
|
|
||||||
@@ -259,32 +293,7 @@ if(NOT DEFINED CMAKE_INSTALL_LIBDIR OR (_libdir_set
|
|||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|GNU)$"
|
if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|GNU)$"
|
||||||
AND NOT CMAKE_CROSSCOMPILING)
|
AND NOT CMAKE_CROSSCOMPILING)
|
||||||
unset(__system_type_for_install)
|
_GNUInstallDirs_get_system_type_for_install(__system_type_for_install)
|
||||||
if(DEFINED ENV{CONDA_BUILD} AND DEFINED ENV{PREFIX})
|
|
||||||
set(conda_prefix "$ENV{PREFIX}")
|
|
||||||
cmake_path(ABSOLUTE_PATH conda_prefix NORMALIZE)
|
|
||||||
if("${CMAKE_INSTALL_PREFIX}" STREQUAL conda_prefix)
|
|
||||||
set(__system_type_for_install "conda")
|
|
||||||
endif()
|
|
||||||
elseif(DEFINED ENV{CONDA_PREFIX})
|
|
||||||
set(conda_prefix "$ENV{CONDA_PREFIX}")
|
|
||||||
cmake_path(ABSOLUTE_PATH conda_prefix NORMALIZE)
|
|
||||||
if("${CMAKE_INSTALL_PREFIX}" STREQUAL conda_prefix AND
|
|
||||||
NOT ("${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$" OR
|
|
||||||
"${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/local/?$"))
|
|
||||||
set(__system_type_for_install "conda")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
if(NOT __system_type_for_install)
|
|
||||||
if (EXISTS "/etc/alpine-release")
|
|
||||||
set(__system_type_for_install "alpine")
|
|
||||||
elseif (EXISTS "/etc/arch-release")
|
|
||||||
set(__system_type_for_install "arch linux")
|
|
||||||
elseif (EXISTS "/etc/debian_version")
|
|
||||||
set(__system_type_for_install "debian")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(__system_type_for_install STREQUAL "debian")
|
if(__system_type_for_install STREQUAL "debian")
|
||||||
if(CMAKE_LIBRARY_ARCHITECTURE)
|
if(CMAKE_LIBRARY_ARCHITECTURE)
|
||||||
if("${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$")
|
if("${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$")
|
||||||
|
Reference in New Issue
Block a user