diff options
author | Björn Ricks <bjoern.ricks@intevation.de> | 2011-07-14 11:16:00 +0200 |
---|---|---|
committer | Björn Ricks <bjoern.ricks@intevation.de> | 2011-08-23 09:51:23 +0200 |
commit | 20980ef56a847fec7922983257fd5be467b689bd (patch) | |
tree | 21dde572e530250a682a8fd97643c40fb3e21cb0 /Modules/FindPythonInterp.cmake | |
parent | fe46e7e4866bd1a7678e1381da02df8c9f533aa0 (diff) | |
download | cmake-20980ef56a847fec7922983257fd5be467b689bd.tar.gz |
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.
Diffstat (limited to 'Modules/FindPythonInterp.cmake')
-rw-r--r-- | Modules/FindPythonInterp.cmake | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/Modules/FindPythonInterp.cmake b/Modules/FindPythonInterp.cmake index 46cde437f5..871d66687d 100644 --- a/Modules/FindPythonInterp.cmake +++ b/Modules/FindPythonInterp.cmake @@ -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,19 +29,18 @@ 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}) - set(_Python_NAMES python${_CURRENT_VERSION}) - if(WIN32) - list(APPEND _Python_NAMES python) - endif() - find_program(PYTHON_EXECUTABLE - 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) + foreach(_CURRENT_VERSION ${_Python_VERSIONS}) + set(_Python_NAMES python${_CURRENT_VERSION}) + if(WIN32) + list(APPEND _Python_NAMES python) + endif() + find_program(PYTHON_EXECUTABLE + NAMES ${_Python_NAMES} + PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath] + ) + endforeach() endif() |