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 authored and Brad King committed 2017-04-10 09:47:04 -04:00
1 parent b8fc447c1d
commit 9d15d3c748
1 file changed
+5 -2
+5 -2
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()