summaryrefslogtreecommitdiffstats
path: root/Modules/FindPythonInterp.cmake
diff options
context:
space:
mode:
authorBjörn Ricks <bjoern.ricks@intevation.de>2011-07-14 09:16:00 (GMT)
committerBjörn Ricks <bjoern.ricks@intevation.de>2011-08-23 07:51:23 (GMT)
commit20980ef56a847fec7922983257fd5be467b689bd (patch)
tree21dde572e530250a682a8fd97643c40fb3e21cb0 /Modules/FindPythonInterp.cmake
parentfe46e7e4866bd1a7678e1381da02df8c9f533aa0 (diff)
downloadCMake-20980ef56a847fec7922983257fd5be467b689bd.zip
CMake-20980ef56a847fec7922983257fd5be467b689bd.tar.gz
CMake-20980ef56a847fec7922983257fd5be467b689bd.tar.bz2
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.cmake25
1 files changed, 13 insertions, 12 deletions
diff --git a/Modules/FindPythonInterp.cmake b/Modules/FindPythonInterp.cmake
index 46cde43..871d666 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()