[Greater-commits] r275 - trunk/GREAT-ER-DB/cmake

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Mon Jun 27 13:16:20 CEST 2011


Author: bricks
Date: 2011-06-27 13:16:20 +0200 (Mon, 27 Jun 2011)
New Revision: 275

Added:
   trunk/GREAT-ER-DB/cmake/FindPythonInterp.cmake
Log:
Add modified FindPythonInterp cmake file

In opposite to the original file this file searches first for the python executable
and if it's not found it tries to search for python27, python26, ... executables.
This allows to set the wanted python version in the environment. Cmake doesn't use
the newest version anylonger. Imho this is a much cleaner solution then before.


Added: trunk/GREAT-ER-DB/cmake/FindPythonInterp.cmake
===================================================================
--- trunk/GREAT-ER-DB/cmake/FindPythonInterp.cmake	2011-06-27 10:45:52 UTC (rev 274)
+++ trunk/GREAT-ER-DB/cmake/FindPythonInterp.cmake	2011-06-27 11:16:20 UTC (rev 275)
@@ -0,0 +1,59 @@
+# - Find python interpreter
+# This module finds if Python interpreter is installed and determines where the
+# executables are. This code sets the following variables:
+#
+#  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
+#
+
+#=============================================================================
+# Copyright 2005-2010 Kitware, Inc.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (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
+  ${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
+
+if(NOT PYTHON_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()
+endif()
+
+if(PYTHON_EXECUTABLE)
+    execute_process(COMMAND "${PYTHON_EXECUTABLE}" --version ERROR_VARIABLE _VERSION OUTPUT_QUIET ERROR_STRIP_TRAILING_WHITESPACE)
+    string(REPLACE "Python " "" PYTHON_VERSION "${_VERSION}")
+    STRING(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" PYTHON_VERSION_MAJOR "${PYTHON_VERSION}")
+    STRING(REGEX REPLACE "^[0-9]+\\.([0-9])+\\.[0-9]+.*" "\\1" PYTHON_VERSION_MINOR "${PYTHON_VERSION}")
+    STRING(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" PYTHON_VERSION_PATCH "${PYTHON_VERSION}")
+endif()
+
+# handle the QUIETLY and REQUIRED arguments and set PYTHONINTERP_FOUND to TRUE if
+# all listed variables are TRUE
+find_package(PackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(PythonInterp DEFAULT_MSG PYTHON_EXECUTABLE)
+
+mark_as_advanced(PYTHON_EXECUTABLE)



More information about the Greater-commits mailing list