Search for the installed python interpreter first
The old approach to determine the python executeable chooses the newest version from _Python_VERSIONS if no additonal versions are passed. With python it is possible to install different versions side-by-side. Therefore a user can install e.g. python 2.5 and 2.7. Python 2.7 maybe only installed for testing new features and 2.5 for building and running his software. Thus the default installation for the user would be python 2.5 and then returning PYTHON_EXECUTEABLE python2.7 would be wrong. The new approuch searches first for the the default python executable e.g. /usr/bin/python on unix and if it can't be found _Python_VERSIONS is used.
This commit is contained in:
parent
fe46e7e486
commit
20980ef56a
|
@ -20,6 +20,8 @@
|
|||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
find_program(PYTHON_EXECUTABLE NAMES python)
|
||||
|
||||
# Set up the versions we know about, in the order we will search. Always add
|
||||
# the user supplied additional versions to the front.
|
||||
set(_Python_VERSIONS
|
||||
|
@ -27,7 +29,9 @@ set(_Python_VERSIONS
|
|||
2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0 1.6 1.5)
|
||||
|
||||
# Run first with the Python version in the executable
|
||||
foreach(_CURRENT_VERSION ${_Python_VERSIONS})
|
||||
|
||||
if(NOT PYTHON_EXECUTABLE)
|
||||
foreach(_CURRENT_VERSION ${_Python_VERSIONS})
|
||||
set(_Python_NAMES python${_CURRENT_VERSION})
|
||||
if(WIN32)
|
||||
list(APPEND _Python_NAMES python)
|
||||
|
@ -36,10 +40,7 @@ foreach(_CURRENT_VERSION ${_Python_VERSIONS})
|
|||
NAMES ${_Python_NAMES}
|
||||
PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]
|
||||
)
|
||||
endforeach()
|
||||
# Now without any version if we still haven't found it
|
||||
if(NOT PYTHON_EXECUTABLE)
|
||||
find_program(PYTHON_EXECUTABLE NAMES python)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue