From: Kai Wasserbäch Description: Make the Python CMake scripts more versatile in version handling. The FindPython{Interp,Libs}.cmake scripts need to cater for a set version or, failing that, in Debian, set the default version for Python in Debian. . This patch addresses both issues. (Closes: #569321, #580503) . Parts of this patch were sent upstream (the "request a specific version" part). The part for requesting a specific version was written by Didier Raboud . Last-Update: 2010-06-03 Origin: vendor Forwarded: yes --- a/Modules/FindPythonInterp.cmake +++ b/Modules/FindPythonInterp.cmake @@ -19,19 +19,30 @@ # (To distributed this file outside of CMake, substitute the full # License text for the above reference.) -FIND_PROGRAM(PYTHON_EXECUTABLE - NAMES python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 python - PATHS - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.6\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.5\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.4\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.3\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.2\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.1\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.0\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\1.6\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\1.5\\InstallPath] - ) +# The following was added for Debian by Kai Wasserbäch +# in 2010 and based on suggestions and patches by +# Didier Raboud and Jakub Wilk to fix the +# following bugs: #569321 and #580503. +# For further information please see the Debian.NEWS file for cmake-data. +IF(CMAKE_PYTHON_VERSION) + SET(CMAKE_PYTHON_VERSIONS ${CMAKE_PYTHON_VERSION}) +ELSE(CMAKE_PYTHON_VERSION) + IF(NO_DEBIAN_PY_DEFAULT) + SET(CMAKE_PYTHON_VERSIONS 2.6 2.5 2.4 2.3 2.2 2.1 2.0 1.6 1.5) + ELSE(NO_DEBIAN_PY_DEFAULT) + EXECUTE_PROCESS(COMMAND pyversions -dv + OUTPUT_VARIABLE _CMAKE_PYTHON_VERSIONS) + STRING(REPLACE "\n" "" CMAKE_PYTHON_VERSIONS ${_CMAKE_PYTHON_VERSIONS}) + ENDIF(NO_DEBIAN_PY_DEFAULT) +ENDIF(CMAKE_PYTHON_VERSION) + +FOREACH(_CURRENT_VERSION ${CMAKE_PYTHON_VERSIONS}) + FIND_PROGRAM(PYTHON_EXECUTABLE + NAMES python${_CURRENT_VERSION} + PATHS + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath] + ) +ENDFOREACH(_CURRENT_VERSION) # handle the QUIETLY and REQUIRED arguments and set PYTHONINTERP_FOUND to TRUE if # all listed variables are TRUE --- a/Modules/FindPythonLibs.cmake +++ b/Modules/FindPythonLibs.cmake @@ -27,7 +27,24 @@ INCLUDE(CMakeFindFrameworks) # Search for the python framework on Apple. CMAKE_FIND_FRAMEWORKS(Python) -FOREACH(_CURRENT_VERSION 2.6 2.5 2.4 2.3 2.2 2.1 2.0 1.6 1.5) +# The following was added for Debian by Kai Wasserbäch +# in 2010 and based on suggestions and patches by +# Didier Raboud and Jakub Wilk to fix the +# following bugs: #569321 and #580503. +# For further information please see the Debian.NEWS file for cmake-data. +IF(CMAKE_PYTHON_VERSION) + SET(CMAKE_PYTHON_VERSIONS ${CMAKE_PYTHON_VERSION}) +ELSE(CMAKE_PYTHON_VERSION) + IF(NO_DEBIAN_PY_DEFAULT) + SET(CMAKE_PYTHON_VERSIONS 2.6 2.5 2.4 2.3 2.2 2.1 2.0 1.6 1.5) + ELSE(NO_DEBIAN_PY_DEFAULT) + EXECUTE_PROCESS(COMMAND pyversions -dv + OUTPUT_VARIABLE _CMAKE_PYTHON_VERSIONS) + STRING(REPLACE "\n" "" CMAKE_PYTHON_VERSIONS ${_CMAKE_PYTHON_VERSIONS}) + ENDIF(NO_DEBIAN_PY_DEFAULT) +ENDIF(CMAKE_PYTHON_VERSION) + +FOREACH(_CURRENT_VERSION ${CMAKE_PYTHON_VERSIONS}) STRING(REPLACE "." "" _CURRENT_VERSION_NO_DOTS ${_CURRENT_VERSION}) IF(WIN32) FIND_LIBRARY(PYTHON_DEBUG_LIBRARY