From 512d450fe31eee5772339c27333e0d56f4bfbd45 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Mon, 28 Aug 2023 18:47:20 +0200 Subject: Fix CMake CMP0148 deprecation warning introduced with CMake 3.27.4 --- indra/cmake/Python.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/cmake/Python.cmake') diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake index f9259f6c2b..2167fb7864 100644 --- a/indra/cmake/Python.cmake +++ b/indra/cmake/Python.cmake @@ -40,7 +40,7 @@ elseif (WINDOWS) ${regpaths} ${pymaybe} ) - include(FindPythonInterp) + find_package(Python3 COMPONENTS Interpreter) else() find_program(python python3) -- cgit v1.2.3 From 7efe86cdde1fd8821d73e330c52145cdb786999b Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Tue, 5 Sep 2023 16:42:48 -0400 Subject: DRTVWR-587: Simplify Python.cmake by omitting find_package(Python3). Elsewhere in CMake land, we reference PYTHONINTERP_FOUND and PYTHON_EXECUTABLE, both of which are explicitly set by Python.cmake. We don't seem to need the find_package(Python3 COMPONENTS Interpreter) call. Given that we take some pains to be careful about which Windows Python interpreter we find, this eliminates a wildcard. --- indra/cmake/Python.cmake | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'indra/cmake/Python.cmake') diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake index 2167fb7864..676cf31f2f 100644 --- a/indra/cmake/Python.cmake +++ b/indra/cmake/Python.cmake @@ -40,18 +40,15 @@ elseif (WINDOWS) ${regpaths} ${pymaybe} ) - find_package(Python3 COMPONENTS Interpreter) else() find_program(python python3) - - if (python) - set(PYTHONINTERP_FOUND ON) - endif (python) endif (DEFINED ENV{PYTHON}) -if (NOT python) +if (python) + set(PYTHONINTERP_FOUND ON) +else() message(FATAL_ERROR "No Python interpreter found") -endif (NOT python) +endif (python) set(PYTHON_EXECUTABLE "${python}" CACHE FILEPATH "Python interpreter for builds") mark_as_advanced(PYTHON_EXECUTABLE) -- cgit v1.2.3 From 566ace0d5694922638806d36b331479e37cb8f2b Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Fri, 8 Sep 2023 14:37:09 -0400 Subject: DRTVWR-587: Adopt Ansariel's Python.cmake Windows simplification. --- indra/cmake/Python.cmake | 38 +++++--------------------------------- 1 file changed, 5 insertions(+), 33 deletions(-) (limited to 'indra/cmake/Python.cmake') 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}) -- cgit v1.2.3 From 03d2dc5d2c53abac8471c3d6e2972637d4575f87 Mon Sep 17 00:00:00 2001 From: Andrey Lihatskiy Date: Wed, 4 Oct 2023 19:58:30 +0300 Subject: Revert "DRTVWR-587: Simplify Python.cmake by omitting find_package(Python3)." --- indra/cmake/Python.cmake | 47 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) (limited to 'indra/cmake/Python.cmake') diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake index 316f49ba59..2167fb7864 100644 --- a/indra/cmake/Python.cmake +++ b/indra/cmake/Python.cmake @@ -7,20 +7,51 @@ if (DEFINED ENV{PYTHON}) set(python "$ENV{PYTHON}") set(PYTHONINTERP_FOUND ON) elseif (WINDOWS) - if (DEFINED ENV{VIRTUAL_ENV}) - set(Python3_FIND_VIRTUALENV "ONLY") - endif() + # 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} + ) find_package(Python3 COMPONENTS Interpreter) - set(python ${Python3_EXECUTABLE}) else() find_program(python python3) + + if (python) + set(PYTHONINTERP_FOUND ON) + endif (python) endif (DEFINED ENV{PYTHON}) -if (python) - set(PYTHONINTERP_FOUND ON) -else() +if (NOT python) message(FATAL_ERROR "No Python interpreter found") -endif (python) +endif (NOT python) set(PYTHON_EXECUTABLE "${python}" CACHE FILEPATH "Python interpreter for builds") mark_as_advanced(PYTHON_EXECUTABLE) -- cgit v1.2.3 From e9f493cea08a9114cb48d05820e7b4d4fb5aa741 Mon Sep 17 00:00:00 2001 From: Bennett Goble Date: Sun, 8 Oct 2023 16:36:54 -0700 Subject: Add python 3.12 to FindPython search path Look for python 3.12 in the registry along with all the other versions. --- indra/cmake/Python.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/cmake/Python.cmake') diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake index f9259f6c2b..afc0d85fe0 100644 --- a/indra/cmake/Python.cmake +++ b/indra/cmake/Python.cmake @@ -13,7 +13,7 @@ elseif (WINDOWS) 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) + foreach(pyver 3.12 3.11 3.10 3.9 3.8 3.7) list(APPEND regpaths "[${hive}\\SOFTWARE\\Python\\PythonCore\\${pyver}\\InstallPath]") endforeach() endforeach() -- cgit v1.2.3 From 9d49edbc48d81f820870d43edb2c975beffa5485 Mon Sep 17 00:00:00 2001 From: Andrey Lihatskiy Date: Fri, 27 Oct 2023 00:04:00 +0300 Subject: DRTVWR-587 Bring back the previously reverted change --- indra/cmake/Python.cmake | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'indra/cmake/Python.cmake') diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake index da5d2ef22c..c8af9a528b 100644 --- a/indra/cmake/Python.cmake +++ b/indra/cmake/Python.cmake @@ -40,18 +40,15 @@ elseif (WINDOWS) ${regpaths} ${pymaybe} ) - find_package(Python3 COMPONENTS Interpreter) else() find_program(python python3) - - if (python) - set(PYTHONINTERP_FOUND ON) - endif (python) endif (DEFINED ENV{PYTHON}) -if (NOT python) +if (python) + set(PYTHONINTERP_FOUND ON) +else() message(FATAL_ERROR "No Python interpreter found") -endif (NOT python) +endif (python) set(PYTHON_EXECUTABLE "${python}" CACHE FILEPATH "Python interpreter for builds") mark_as_advanced(PYTHON_EXECUTABLE) -- cgit v1.2.3 From 630b4432da9c2731fa9a1d3c5c33efdc263264f7 Mon Sep 17 00:00:00 2001 From: Andrey Lihatskiy Date: Mon, 30 Oct 2023 20:10:09 +0200 Subject: Revert "DRTVWR-587 Bring back the previously reverted change" This reverts commit 9d49edbc48d81f820870d43edb2c975beffa5485. --- indra/cmake/Python.cmake | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'indra/cmake/Python.cmake') diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake index c8af9a528b..da5d2ef22c 100644 --- a/indra/cmake/Python.cmake +++ b/indra/cmake/Python.cmake @@ -40,15 +40,18 @@ elseif (WINDOWS) ${regpaths} ${pymaybe} ) + find_package(Python3 COMPONENTS Interpreter) else() find_program(python python3) + + if (python) + set(PYTHONINTERP_FOUND ON) + endif (python) endif (DEFINED ENV{PYTHON}) -if (python) - set(PYTHONINTERP_FOUND ON) -else() +if (NOT python) message(FATAL_ERROR "No Python interpreter found") -endif (python) +endif (NOT python) set(PYTHON_EXECUTABLE "${python}" CACHE FILEPATH "Python interpreter for builds") mark_as_advanced(PYTHON_EXECUTABLE) -- cgit v1.2.3