[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