FindPythonInterp: Add -32 and -64 registry entry variants

As of 3.6.1 Python (only version tested in this case), installing 32-bit
version on 64-bit windows has a slightly different registry key path.
`-32` is appended to the end of the version number in the path.  Also
added a few more registry path guesses based on 64-bit version of
Python.

Also the module now checks if the host is WIN32 instead of the target,
which is required if you are cross compiling.
This commit is contained in:
Robert Dailey
2017-04-07 10:31:12 -05:00
committed by Brad King
parent b8fc447c1d
commit 9d15d3c748

View File

@@ -91,12 +91,15 @@ unset(_PYTHON3_VERSIONS)
if(NOT PYTHON_EXECUTABLE)
foreach(_CURRENT_VERSION IN LISTS _Python_VERSIONS)
set(_Python_NAMES python${_CURRENT_VERSION})
if(WIN32)
if(CMAKE_HOST_WIN32)
list(APPEND _Python_NAMES python)
endif()
find_program(PYTHON_EXECUTABLE
NAMES ${_Python_NAMES}
PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]
PATHS
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-32\\InstallPath]
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-64\\InstallPath]
)
endforeach()
endif()