From: =?utf-8?q?Timo_R=C3=B6hling?= Date: Fri, 14 Oct 2022 11:59:04 +0200 Subject: Prefer Debian default version of Python Forwarded: not-needed --- Modules/FindPython/Support.cmake | 20 ++++++++++++++++++++ Modules/FindPythonInterp.cmake | 20 ++++++++++++++++++++ Modules/FindPythonLibs.cmake | 20 ++++++++++++++++++++ 3 files changed, 60 insertions(+) diff --git a/Modules/FindPython/Support.cmake b/Modules/FindPython/Support.cmake index c4fae6b..3e4279e 100644 --- a/Modules/FindPython/Support.cmake +++ b/Modules/FindPython/Support.cmake @@ -23,6 +23,26 @@ if (NOT DEFINED _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR) endif() if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL "3") set(_${_PYTHON_PREFIX}_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0) + # Debian-specific: prefer current default version + if(NOT DEFINED PYTHON3_DEBIAN_DEFAULT_VERSION) + execute_process( + COMMAND py3versions -vd + OUTPUT_VARIABLE _PYTHON3_DEFAULT_VERSION + RESULT_VARIABLE _PYTHON3_DEFAULT_RESULT + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) + if(_PYTHON3_DEFAULT_RESULT EQUAL "0") + set(PYTHON3_DEBIAN_DEFAULT_VERSION "${_PYTHON3_DEFAULT_VERSION}" CACHE INTERNAL "Current Python 3 default version in Debian") + endif() + unset(_PYTHON3_DEFAULT_VERSION) + unset(_PYTHON3_DEFAULT_RESULT) + endif() + if(DEFINED PYTHON3_DEBIAN_DEFAULT_VERSION) + list(REMOVE_ITEM _${_PYTHON_PREFIX}_VERSIONS ${PYTHON3_DEBIAN_DEFAULT_VERSION}) + list(INSERT _${_PYTHON_PREFIX}_VERSIONS 0 ${PYTHON3_DEBIAN_DEFAULT_VERSION}) + endif() + # End of Debian-specific code elseif (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL "2") set(_${_PYTHON_PREFIX}_VERSIONS 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0) else() diff --git a/Modules/FindPythonInterp.cmake b/Modules/FindPythonInterp.cmake index 7ad3587..d6e41b0 100644 --- a/Modules/FindPythonInterp.cmake +++ b/Modules/FindPythonInterp.cmake @@ -76,6 +76,26 @@ if(PythonInterp_FIND_VERSION) set(_PYTHON_FIND_OTHER_VERSIONS ${_PYTHON${PythonInterp_FIND_VERSION_MAJOR}_VERSIONS}) endif() else() + # Debian-specific: prefer current default version + if(NOT DEFINED PYTHON3_DEBIAN_DEFAULT_VERSION) + execute_process( + COMMAND py3versions -vd + OUTPUT_VARIABLE _PYTHON3_DEFAULT_VERSION + RESULT_VARIABLE _PYTHON3_DEFAULT_RESULT + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) + if(_PYTHON3_DEFAULT_RESULT EQUAL "0") + set(PYTHON3_DEBIAN_DEFAULT_VERSION "${_PYTHON3_DEFAULT_VERSION}" CACHE INTERNAL "Current Python 3 default version in Debian") + endif() + unset(_PYTHON3_DEFAULT_VERSION) + unset(_PYTHON3_DEFAULT_RESULT) + endif() + if(DEFINED PYTHON3_DEBIAN_DEFAULT_VERSION) + list(REMOVE_ITEM _PYTHON3_VERSIONS ${PYTHON3_DEBIAN_DEFAULT_VERSION}) + list(INSERT _PYTHON3_VERSIONS 0 ${PYTHON3_DEBIAN_DEFAULT_VERSION}) + endif() + # End of Debian-specific code set(_PYTHON_FIND_OTHER_VERSIONS ${_PYTHON3_VERSIONS} ${_PYTHON2_VERSIONS} ${_PYTHON1_VERSIONS}) endif() find_program(PYTHON_EXECUTABLE NAMES ${_Python_NAMES}) diff --git a/Modules/FindPythonLibs.cmake b/Modules/FindPythonLibs.cmake index 43a84dd..8bf2015 100644 --- a/Modules/FindPythonLibs.cmake +++ b/Modules/FindPythonLibs.cmake @@ -103,6 +103,26 @@ if(PythonLibs_FIND_VERSION) set(_PYTHON_FIND_OTHER_VERSIONS ${_PYTHON${PythonLibs_FIND_VERSION_MAJOR}_VERSIONS}) endif() else() + # Debian-specific: prefer current default version + if(NOT DEFINED PYTHON3_DEBIAN_DEFAULT_VERSION) + execute_process( + COMMAND py3versions -vd + OUTPUT_VARIABLE _PYTHON3_DEFAULT_VERSION + RESULT_VARIABLE _PYTHON3_DEFAULT_RESULT + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) + if(_PYTHON3_DEFAULT_RESULT EQUAL "0") + set(PYTHON3_DEBIAN_DEFAULT_VERSION "${_PYTHON3_DEFAULT_VERSION}" CACHE INTERNAL "Current Python 3 default version in Debian") + endif() + unset(_PYTHON3_DEFAULT_VERSION) + unset(_PYTHON3_DEFAULT_RESULT) + endif() + if(DEFINED PYTHON3_DEBIAN_DEFAULT_VERSION) + list(REMOVE_ITEM _PYTHON3_VERSIONS ${PYTHON3_DEBIAN_DEFAULT_VERSION}) + list(INSERT _PYTHON3_VERSIONS 0 ${PYTHON3_DEBIAN_DEFAULT_VERSION}) + endif() + # End of Debian-specific code set(_PYTHON_FIND_OTHER_VERSIONS ${_PYTHON3_VERSIONS} ${_PYTHON2_VERSIONS} ${_PYTHON1_VERSIONS}) endif()