[Cmake-commits] CMake branch, next, updated. v2.8.5-1683-g2980df2
Björn Ricks
bjoern.ricks at intevation.de
Tue Aug 23 03:56:35 EDT 2011
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via 2980df20a6a19cf83dffecffd8bf2b997c086ac1 (commit)
via 1c2508a569da51041db7345e0c9eb41aa6aaefd9 (commit)
via d1795002956f8da746077fffb1c2aa0262063db2 (commit)
via 4fd1e28495e09af154f361602d30a0c5fc998ff4 (commit)
via 20980ef56a847fec7922983257fd5be467b689bd (commit)
via fe46e7e4866bd1a7678e1381da02df8c9f533aa0 (commit)
via 29b285c6a1b583f56257f3ca8113d6ce29f5d8d6 (commit)
via 3848b397ef6cae97ca28826582c0567cbe5a8ec0 (commit)
from c868ef8d18322adf14ee1cd6d004b3a263c55861 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2980df20a6a19cf83dffecffd8bf2b997c086ac1
commit 2980df20a6a19cf83dffecffd8bf2b997c086ac1
Merge: c868ef8 1c2508a
Author: Björn Ricks <bjoern.ricks at intevation.de>
AuthorDate: Tue Aug 23 03:56:33 2011 -0400
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Aug 23 03:56:33 2011 -0400
Merge topic 'FindPythonInterp-Refactoring' into next
1c2508a Use FIND_PACKAGE_HANDLE_STANDARD_ARGS second mode
d179500 Update documentation of FindPythonInterp.cmake
4fd1e28 Determine python version
20980ef Search for the installed python interpreter first
fe46e7e KWSys Nightly Date Stamp
29b285c KWSys Nightly Date Stamp
3848b39 KWSys Nightly Date Stamp
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1c2508a569da51041db7345e0c9eb41aa6aaefd9
commit 1c2508a569da51041db7345e0c9eb41aa6aaefd9
Author: Björn Ricks <bjoern.ricks at intevation.de>
AuthorDate: Tue Aug 23 09:36:17 2011 +0200
Commit: Björn Ricks <bjoern.ricks at intevation.de>
CommitDate: Tue Aug 23 09:52:35 2011 +0200
Use FIND_PACKAGE_HANDLE_STANDARD_ARGS second mode
Using the second mode of FIND_PACKAGE_HANDLE_STANDARD_ARGS allows for
checking the version number. Now a user can require a minimum version of
the python interpreter with find_package(PythonInterp VERSION)
diff --git a/Modules/FindPythonInterp.cmake b/Modules/FindPythonInterp.cmake
index 7acf7be..a10ec23 100644
--- a/Modules/FindPythonInterp.cmake
+++ b/Modules/FindPythonInterp.cmake
@@ -61,6 +61,6 @@ endif()
# handle the QUIETLY and REQUIRED arguments and set PYTHONINTERP_FOUND to TRUE if
# all listed variables are TRUE
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(PythonInterp DEFAULT_MSG PYTHON_EXECUTABLE)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(PythonInterp REQUIRED_VARS PYTHON_EXECUTABLE VERSION_VAR PYTHON_VERSION_STRING)
mark_as_advanced(PYTHON_EXECUTABLE)
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d1795002956f8da746077fffb1c2aa0262063db2
commit d1795002956f8da746077fffb1c2aa0262063db2
Author: Björn Ricks <bjoern.ricks at intevation.de>
AuthorDate: Fri Aug 5 09:53:39 2011 +0200
Commit: Björn Ricks <bjoern.ricks at intevation.de>
CommitDate: Tue Aug 23 09:52:28 2011 +0200
Update documentation of FindPythonInterp.cmake
Document new variables and update also comments in cmake code to explain
the current behaviour of FindPythonInterp.cmake module
diff --git a/Modules/FindPythonInterp.cmake b/Modules/FindPythonInterp.cmake
index 934602d..7acf7be 100644
--- a/Modules/FindPythonInterp.cmake
+++ b/Modules/FindPythonInterp.cmake
@@ -4,11 +4,17 @@
#
# PYTHONINTERP_FOUND - Was the Python executable found
# PYTHON_EXECUTABLE - path to the Python interpreter
-# Python_ADDITIONAL_VERSIONS - list of additional Python versions to search for
#
+# PYTHON_VERSION_STRING - Python version found e.g. 2.5.2
+# PYTHON_VERSION_MAJOR - Python major version found e.g. 2
+# PYTHON_VERSION_MINOR - Python minor version found e.g. 5
+# PYTHON_VERSION_PATCH - Python patch version found e.g. 2
+#
+# Python_ADDITIONAL_VERSIONS - list of additional Python versions to search for
#=============================================================================
# Copyright 2005-2010 Kitware, Inc.
+# Copyright 2011 Bjoern Ricks <bjoern.ricks at gmail.com>
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
@@ -20,6 +26,7 @@
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
+# Search for the current active python version first
find_program(PYTHON_EXECUTABLE NAMES python)
# Set up the versions we know about, in the order we will search. Always add
@@ -28,8 +35,7 @@ set(_Python_VERSIONS
${Python_ADDITIONAL_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
-
+# Search for newest python version if python executable isn't found
if(NOT PYTHON_EXECUTABLE)
foreach(_CURRENT_VERSION ${_Python_VERSIONS})
set(_Python_NAMES python${_CURRENT_VERSION})
@@ -43,6 +49,7 @@ if(NOT PYTHON_EXECUTABLE)
endforeach()
endif()
+# determine python version string
if(PYTHON_EXECUTABLE)
execute_process(COMMAND "${PYTHON_EXECUTABLE}" --version ERROR_VARIABLE _VERSION OUTPUT_QUIET ERROR_STRIP_TRAILING_WHITESPACE)
string(REPLACE "Python " "" PYTHON_VERSION_STRING "${_VERSION}")
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4fd1e28495e09af154f361602d30a0c5fc998ff4
commit 4fd1e28495e09af154f361602d30a0c5fc998ff4
Author: Björn Ricks <bjoern.ricks at intevation.de>
AuthorDate: Thu Jul 14 11:43:47 2011 +0200
Commit: Björn Ricks <bjoern.ricks at intevation.de>
CommitDate: Tue Aug 23 09:52:02 2011 +0200
Determine python version
Use PYTHON_EXECUTABLE to determine PYTHON_VERSION_STRING,
PYTHON_VERSION_MINOR, PYTHON_VERSION_MAJOR and PYTHON_VERSION_PATCH
diff --git a/Modules/FindPythonInterp.cmake b/Modules/FindPythonInterp.cmake
index 871d666..934602d 100644
--- a/Modules/FindPythonInterp.cmake
+++ b/Modules/FindPythonInterp.cmake
@@ -43,6 +43,13 @@ if(NOT PYTHON_EXECUTABLE)
endforeach()
endif()
+if(PYTHON_EXECUTABLE)
+ execute_process(COMMAND "${PYTHON_EXECUTABLE}" --version ERROR_VARIABLE _VERSION OUTPUT_QUIET ERROR_STRIP_TRAILING_WHITESPACE)
+ string(REPLACE "Python " "" PYTHON_VERSION_STRING "${_VERSION}")
+ string(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" PYTHON_VERSION_MAJOR "${PYTHON_VERSION_STRING}")
+ string(REGEX REPLACE "^[0-9]+\\.([0-9])+\\.[0-9]+.*" "\\1" PYTHON_VERSION_MINOR "${PYTHON_VERSION_STRING}")
+ string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" PYTHON_VERSION_PATCH "${PYTHON_VERSION_STRING}")
+endif()
# handle the QUIETLY and REQUIRED arguments and set PYTHONINTERP_FOUND to TRUE if
# all listed variables are TRUE
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=20980ef56a847fec7922983257fd5be467b689bd
commit 20980ef56a847fec7922983257fd5be467b689bd
Author: Björn Ricks <bjoern.ricks at intevation.de>
AuthorDate: Thu Jul 14 11:16:00 2011 +0200
Commit: Björn Ricks <bjoern.ricks at intevation.de>
CommitDate: Tue Aug 23 09:51:23 2011 +0200
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.
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()
-----------------------------------------------------------------------
Summary of changes:
Modules/FindPythonInterp.cmake | 45 ++++++++++++++++++++++++------------
Source/kwsys/kwsysDateStamp.cmake | 2 +-
2 files changed, 31 insertions(+), 16 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list