Improve discovery for Debian default version of Python
This commit is contained in:
		
							parent
							
								
									b0906ae4ae
								
							
						
					
					
						commit
						d76385e96b
					
				@ -1,34 +1,104 @@
 | 
			
		||||
From: =?utf-8?q?Timo_R=C3=B6hling?= <roehling@debian.org>
 | 
			
		||||
Date: Mon, 13 Sep 2021 18:59:25 +0200
 | 
			
		||||
Date: Fri, 14 Oct 2022 11:59:04 +0200
 | 
			
		||||
Subject: Prefer Debian default version of Python
 | 
			
		||||
 | 
			
		||||
Forwarded: not-needed
 | 
			
		||||
---
 | 
			
		||||
 Modules/FindPython/Support.cmake | 14 ++++++++++++++
 | 
			
		||||
 1 file changed, 14 insertions(+)
 | 
			
		||||
 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..51fa989 100644
 | 
			
		||||
index c4fae6b..3e4279e 100644
 | 
			
		||||
--- a/Modules/FindPython/Support.cmake
 | 
			
		||||
+++ b/Modules/FindPython/Support.cmake
 | 
			
		||||
@@ -23,6 +23,20 @@ if (NOT DEFINED _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
 | 
			
		||||
@@ -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
 | 
			
		||||
+  execute_process(
 | 
			
		||||
+    COMMAND py3versions -vd
 | 
			
		||||
+    OUTPUT_VARIABLE _${_PYTHON_PREFIX}_DEFAULT_VERSION
 | 
			
		||||
+    RESULT_VARIABLE _${_PYTHON_PREFIX}_DEFAULT_RESULT
 | 
			
		||||
+    OUTPUT_STRIP_TRAILING_WHITESPACE
 | 
			
		||||
+    ERROR_QUIET
 | 
			
		||||
+  )
 | 
			
		||||
+  if(NOT _${_PYTHON_PREFIX}_DEFAULT_RESULT)
 | 
			
		||||
+    list(REMOVE_ITEM _${_PYTHON_PREFIX}_VERSIONS ${_${_PYTHON_PREFIX}_DEFAULT_VERSION})
 | 
			
		||||
+    list(INSERT _${_PYTHON_PREFIX}_VERSIONS 0 ${_${_PYTHON_PREFIX}_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()
 | 
			
		||||
+  unset(_${_PYTHON_PREFIX}_DEFAULT_RESULT)
 | 
			
		||||
+  unset(_${_PYTHON_PREFIX}_DEFAULT_VERSION)
 | 
			
		||||
+  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()
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user