FindPythonInterp: Use consistent version with PythonLibs (#13794)
If find_package(PythonLibs) find_package(PythonInterp) is called, help PythonInterp to get a version of PYTHON_EXECUTABLE consistent with the library versions found by PythonLibs.
This commit is contained in:
parent
bf28ff1f42
commit
a9e6de2acc
@ -71,18 +71,23 @@ if(PythonInterp_FIND_VERSION)
|
|||||||
else()
|
else()
|
||||||
set(_PYTHON_FIND_OTHER_VERSIONS ${_PYTHON3_VERSIONS} ${_PYTHON2_VERSIONS} ${_PYTHON1_VERSIONS})
|
set(_PYTHON_FIND_OTHER_VERSIONS ${_PYTHON3_VERSIONS} ${_PYTHON2_VERSIONS} ${_PYTHON1_VERSIONS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
list(APPEND _Python_NAMES python)
|
|
||||||
|
|
||||||
# Search for the current active python version first
|
|
||||||
find_program(PYTHON_EXECUTABLE NAMES ${_Python_NAMES})
|
find_program(PYTHON_EXECUTABLE NAMES ${_Python_NAMES})
|
||||||
|
|
||||||
# Set up the versions we know about, in the order we will search. Always add
|
# Set up the versions we know about, in the order we will search. Always add
|
||||||
# the user supplied additional versions to the front.
|
# the user supplied additional versions to the front.
|
||||||
set(_Python_VERSIONS
|
set(_Python_VERSIONS ${Python_ADDITIONAL_VERSIONS})
|
||||||
${Python_ADDITIONAL_VERSIONS}
|
# If FindPythonInterp has already found the major and minor version,
|
||||||
${_PYTHON_FIND_OTHER_VERSIONS}
|
# insert that version next to get consistent versions of the interpreter and
|
||||||
)
|
# library.
|
||||||
|
if(DEFINED PYTHONLIBS_VERSION_STRING)
|
||||||
|
string(REPLACE "." ";" _PYTHONLIBS_VERSION "${PYTHONLIBS_VERSION_STRING}")
|
||||||
|
list(GET _PYTHONLIBS_VERSION 0 _PYTHONLIBS_VERSION_MAJOR)
|
||||||
|
list(GET _PYTHONLIBS_VERSION 1 _PYTHONLIBS_VERSION_MINOR)
|
||||||
|
list(APPEND _Python_VERSIONS ${_PYTHONLIBS_VERSION_MAJOR}.${_PYTHONLIBS_VERSION_MINOR})
|
||||||
|
endif()
|
||||||
|
# Search for the current active python version first
|
||||||
|
list(APPEND _Python_VERSIONS ";")
|
||||||
|
list(APPEND _Python_VERSIONS ${_PYTHON_FIND_OTHER_VERSIONS})
|
||||||
|
|
||||||
unset(_PYTHON_FIND_OTHER_VERSIONS)
|
unset(_PYTHON_FIND_OTHER_VERSIONS)
|
||||||
unset(_PYTHON1_VERSIONS)
|
unset(_PYTHON1_VERSIONS)
|
||||||
@ -91,7 +96,7 @@ unset(_PYTHON3_VERSIONS)
|
|||||||
|
|
||||||
# Search for newest python version if python executable isn't found
|
# Search for newest python version if python executable isn't found
|
||||||
if(NOT PYTHON_EXECUTABLE)
|
if(NOT PYTHON_EXECUTABLE)
|
||||||
foreach(_CURRENT_VERSION ${_Python_VERSIONS})
|
foreach(_CURRENT_VERSION IN LISTS _Python_VERSIONS)
|
||||||
set(_Python_NAMES python${_CURRENT_VERSION})
|
set(_Python_NAMES python${_CURRENT_VERSION})
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
list(APPEND _Python_NAMES python)
|
list(APPEND _Python_NAMES python)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user