aboutsummaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/LocatePythonExecutable.cmake39
1 files changed, 26 insertions, 13 deletions
diff --git a/cmake/modules/LocatePythonExecutable.cmake b/cmake/modules/LocatePythonExecutable.cmake
index 125ed5fff5..603df2000a 100644
--- a/cmake/modules/LocatePythonExecutable.cmake
+++ b/cmake/modules/LocatePythonExecutable.cmake
@@ -2,17 +2,30 @@
# calling FindPythonInterp in order to keep us from using Cygwin's Python.
# http://public.kitware.com/Bug/view.php?id=13818
-if(NOT PYTHON_EXECUTABLE AND WIN32)
- foreach(_major_version 3 2)
- foreach(_minor_version 7 6 5 4 3 2 1)
- find_program(PYTHON_EXECUTABLE
- python.exe
- PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_major_version}.${_minor_version}\\InstallPath]
- NO_DEFAULT_PATH
- )
- if (PYTHON_EXECUTABLE)
- break()
- endif()
+if(WIN32)
+ # First check the HKLM and HKCU "App Paths" keys.
+ if(NOT PYTHON_EXECUTABLE)
+ get_filename_component(PYTHON_EXECUTABLE
+ "[HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Python.exe]"
+ )
+ endif()
+ if(NOT PYTHON_EXECUTABLE)
+ get_filename_component(PYTHON_EXECUTABLE
+ "[HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Python.exe]"
+ )
+ endif()
+ if(NOT PYTHON_EXECUTABLE)
+ foreach(_major_version 3 2)
+ foreach(_minor_version 7 6 5 4 3 2 1)
+ find_program(PYTHON_EXECUTABLE
+ python.exe
+ PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_major_version}.${_minor_version}\\InstallPath]
+ NO_DEFAULT_PATH
+ )
+ if (PYTHON_EXECUTABLE)
+ break()
+ endif()
+ endforeach()
endforeach()
- endforeach()
-endif() \ No newline at end of file
+ endif()
+endif(WIN32) \ No newline at end of file