summaryrefslogtreecommitdiff
path: root/cmake/FindPython3Interp.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/FindPython3Interp.cmake')
-rw-r--r--cmake/FindPython3Interp.cmake162
1 files changed, 0 insertions, 162 deletions
diff --git a/cmake/FindPython3Interp.cmake b/cmake/FindPython3Interp.cmake
deleted file mode 100644
index d2f5d74..0000000
--- a/cmake/FindPython3Interp.cmake
+++ /dev/null
@@ -1,162 +0,0 @@
-#.rst:
-# FindPython3Interp
-# ----------------
-#
-# Find python 3 interpreter (based on original FindPythonInterp from cmake)
-#
-# This module finds if Python interpreter is installed and determines
-# where the executables are. This code sets the following variables:
-#
-# ::
-#
-# PYTHON3INTERP_FOUND - Was the Python executable found
-# PYTHON3_EXECUTABLE - path to the Python interpreter
-#
-#
-#
-# ::
-#
-# PYTHON3_VERSION_STRING - Python version found e.g. 3.5.1
-# PYTHON3_VERSION_MAJOR - Python major version found e.g. 3
-# PYTHON3_VERSION_MINOR - Python minor version found e.g. 5
-# PYTHON3_VERSION_PATCH - Python patch version found e.g. 1
-#
-#=============================================================================
-# Copyright 2005-2010 Kitware, Inc.
-# Copyright 2011 Bjoern Ricks <bjoern.ricks@gmail.com>
-# Copyright 2012 Rolf Eike Beer <eike@sf-mail.de>
-# Copyright 2016 Dominique Leuenberger <dimstar@opensuse.org>
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# * Neither the name of Kitware, Inc. nor the names of Contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-unset(_Python3_NAMES)
-
-set(_Python3_VERSIONS 3.11 3.10 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
-
-if(Python3Interp_FIND_VERSION)
- if(Python3Interp_FIND_VERSION_COUNT GREATER 1)
- set(_PYTHON3_FIND_MAJ_MIN "${Python3Interp_FIND_VERSION_MAJOR}.${Python3Interp_FIND_VERSION_MINOR}")
- list(APPEND _Python3_NAMES
- python${_PYTHON3_FIND_MAJ_MIN}
- python${Python3Interp_FIND_VERSION_MAJOR})
- unset(_PYTHON3_FIND_OTHER_VERSIONS)
- if(NOT Python3Interp_FIND_VERSION_EXACT)
- foreach(_PYTHON3_V ${_PYTHON${Python3Interp_FIND_VERSION_MAJOR}_VERSIONS})
- if(NOT _PYTHON3_V VERSION_LESS _PYTHON3_FIND_MAJ_MIN)
- list(APPEND _PYTHON3_FIND_OTHER_VERSIONS ${_PYTHON3_V})
- endif()
- endforeach()
- endif()
- unset(_PYTHON3_FIND_MAJ_MIN)
- else()
- list(APPEND _Python3_NAMES python${Python3Interp_FIND_VERSION_MAJOR})
- set(_PYTHON3_FIND_OTHER_VERSIONS ${_PYTHON${Python3Interp_FIND_VERSION_MAJOR}_VERSIONS})
- endif()
-else()
- set(_PYTHON3_FIND_OTHER_VERSIONS ${_PYTHON3_VERSIONS})
-endif()
-find_program(PYTHON3_EXECUTABLE NAMES ${_Python3_NAMES})
-
-# If FindPythonInterp has already found the major and minor version,
-# insert that version next to get consistent versions of the interpreter and
-# library.
-if(DEFINED PYTHON3LIBS_VERSION_STRING)
- string(REPLACE "." ";" _PYTHON3LIBS_VERSION "${PYTHON3LIBS_VERSION_STRING}")
- list(GET _PYTHON3LIBS_VERSION 0 _PYTHON3LIBS_VERSION_MAJOR)
- list(GET _PYTHON3LIBS_VERSION 1 _PYTHON3LIBS_VERSION_MINOR)
- list(APPEND _Python3_VERSIONS ${_PYTHON3LIBS_VERSION_MAJOR}.${_PYTHON3LIBS_VERSION_MINOR})
-endif()
-# Search for the current active python version first
-list(APPEND _Python3_VERSIONS ";")
-
-unset(_PYTHON3_VERSIONS)
-
-# Search for newest python version if python executable isn't found
-if(NOT PYTHON3_EXECUTABLE)
- foreach(_CURRENT_VERSION IN LISTS _Python3_VERSIONS)
- set(_Python3_NAMES python${_CURRENT_VERSION})
- if(WIN32)
- list(APPEND _Python3_NAMES python3)
- endif()
- find_program(PYTHON3_EXECUTABLE
- NAMES ${_Python3_NAMES}
- PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]
- )
- endforeach()
-endif()
-
-# determine python version string
-if(PYTHON3_EXECUTABLE)
- execute_process(COMMAND "${PYTHON3_EXECUTABLE}" -c
- "import sys; sys.stdout.write(';'.join([str(x) for x in sys.version_info[:3]]))"
- OUTPUT_VARIABLE _VERSION3
- RESULT_VARIABLE _PYTHON3_VERSION_RESULT
- ERROR_QUIET)
- if(NOT _PYTHON3_VERSION_RESULT)
- string(REPLACE ";" "." PYTHON3_VERSION_STRING "${_VERSION3}")
- list(GET _VERSION3 0 PYTHON3_VERSION_MAJOR)
- list(GET _VERSION3 1 PYTHON3_VERSION_MINOR)
- list(GET _VERSION3 2 PYTHON3_VERSION_PATCH)
- if(PYTHON3_VERSION_PATCH EQUAL 0)
- # it's called "Python 3.1", not "3.1.0"
- string(REGEX REPLACE "\\.0$" "" PYTHON3_VERSION_STRING "${PYTHON3_VERSION_STRING}")
- endif()
- else()
- # sys.version predates sys.version_info, so use that
- execute_process(COMMAND "${PYTHON3_EXECUTABLE}" -c "import sys; sys.stdout.write(sys.version)"
- OUTPUT_VARIABLE _VERSION3
- RESULT_VARIABLE _PYTHON3_VERSION_RESULT
- ERROR_QUIET)
- if(NOT _PYTHON3_VERSION_RESULT)
- string(REGEX REPLACE " .*" "" PYTHON3_VERSION_STRING "${_VERSION3}")
- string(REGEX REPLACE "^([0-9]+)\\.[0-9]+.*" "\\1" PYTHON3_VERSION_MAJOR "${PYTHON3_VERSION_STRING}")
- string(REGEX REPLACE "^[0-9]+\\.([0-9])+.*" "\\1" PYTHON3_VERSION_MINOR "${PYTHON3_VERSION_STRING}")
- if(PYTHON3_VERSION_STRING MATCHES "^[0-9]+\\.[0-9]+\\.([0-9]+)")
- set(PYTHON3_VERSION_PATCH "${CMAKE_MATCH_1}")
- else()
- set(PYTHON3_VERSION_PATCH "0")
- endif()
- else()
- # sys.version was first documented for Python 1.5, so assume
- # this is older.
- set(PYTHON3_VERSION_STRING "1.4")
- set(PYTHON3_VERSION_MAJOR "1")
- set(PYTHON3_VERSION_MINOR "4")
- set(PYTHON3_VERSION_PATCH "0")
- endif()
- endif()
- unset(_PYTHON3_VERSION_RESULT)
- unset(_VERSION3)
-endif()
-
-# handle the QUIETLY and REQUIRED arguments and set PYTHON3INTERP_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Python3Interp REQUIRED_VARS PYTHON3_EXECUTABLE PYTHON3_VERSION_STRING)
-
-mark_as_advanced(PYTHON3_EXECUTABLE)