summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2023-09-08 14:37:09 -0400
committerNat Goodspeed <nat@lindenlab.com>2023-09-08 14:37:09 -0400
commit566ace0d5694922638806d36b331479e37cb8f2b (patch)
treef06d6123691b4c190cc1f5216e07d1a428756d2b
parent7efe86cdde1fd8821d73e330c52145cdb786999b (diff)
DRTVWR-587: Adopt Ansariel's Python.cmake Windows simplification.
-rw-r--r--indra/cmake/Python.cmake38
1 files changed, 5 insertions, 33 deletions
diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake
index 676cf31f2f..316f49ba59 100644
--- a/indra/cmake/Python.cmake
+++ b/indra/cmake/Python.cmake
@@ -7,39 +7,11 @@ if (DEFINED ENV{PYTHON})
set(python "$ENV{PYTHON}")
set(PYTHONINTERP_FOUND ON)
elseif (WINDOWS)
- # On Windows, explicitly avoid Cygwin Python.
-
- # if the user has their own version of Python installed, prefer that
- foreach(hive HKEY_CURRENT_USER HKEY_LOCAL_MACHINE)
- # prefer more recent Python versions to older ones, if multiple versions
- # are installed
- foreach(pyver 3.11 3.10 3.9 3.8 3.7)
- list(APPEND regpaths "[${hive}\\SOFTWARE\\Python\\PythonCore\\${pyver}\\InstallPath]")
- endforeach()
- endforeach()
-
- # TODO: This logic has the disadvantage that if you have multiple versions
- # of Python installed, the selected path won't necessarily be the newest -
- # e.g. this GLOB will prefer Python310 to Python311. But since pymaybe is
- # checked AFTER the registry entries, this will only surface as a problem if
- # no installed Python appears in the registry.
- file(GLOB pymaybe
- "$ENV{PROGRAMFILES}/Python*"
-## "$ENV{PROGRAMFILES(X86)}/Python*"
- # The Windows environment variable is in fact as shown above, but CMake
- # disallows querying an environment variable containing parentheses -
- # thanks, Windows. Fudge by just appending " (x86)" to $PROGRAMFILES and
- # hoping for the best.
- "$ENV{PROGRAMFILES} (x86)/Python*"
- "c:/Python*")
-
- find_program(python
- NAMES python3.exe python.exe
- NO_DEFAULT_PATH # added so that cmake does not find cygwin python
- PATHS
- ${regpaths}
- ${pymaybe}
- )
+ if (DEFINED ENV{VIRTUAL_ENV})
+ set(Python3_FIND_VIRTUALENV "ONLY")
+ endif()
+ find_package(Python3 COMPONENTS Interpreter)
+ set(python ${Python3_EXECUTABLE})
else()
find_program(python python3)
endif (DEFINED ENV{PYTHON})