mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 19:08:07 +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})
|
||||
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
|
||||
#
|
||||
|
||||
@@ -259,32 +293,7 @@ if(NOT DEFINED CMAKE_INSTALL_LIBDIR OR (_libdir_set
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|GNU)$"
|
||||
AND NOT CMAKE_CROSSCOMPILING)
|
||||
unset(__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()
|
||||
|
||||
_GNUInstallDirs_get_system_type_for_install(__system_type_for_install)
|
||||
if(__system_type_for_install STREQUAL "debian")
|
||||
if(CMAKE_LIBRARY_ARCHITECTURE)
|
||||
if("${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$")
|
||||
|
Reference in New Issue
Block a user