summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@python.org>2024-02-29 21:24:05 (GMT)
committerGitHub <noreply@github.com>2024-02-29 21:24:05 (GMT)
commit83c5ecdeec80fbd1f667f234f626c4154d40ebb5 (patch)
treea9b28265687f76a0c1281abcbb167ec6b141fd7a
parent91c3c64237f56bde9d1c1b8127fdcb02a112b5a4 (diff)
downloadcpython-83c5ecdeec80fbd1f667f234f626c4154d40ebb5.zip
cpython-83c5ecdeec80fbd1f667f234f626c4154d40ebb5.tar.gz
cpython-83c5ecdeec80fbd1f667f234f626c4154d40ebb5.tar.bz2
gh-108051: Update versions found by find_python.bat and clarify readme (GH-116118)
-rw-r--r--PCbuild/find_python.bat7
-rw-r--r--PCbuild/readme.txt18
2 files changed, 18 insertions, 7 deletions
diff --git a/PCbuild/find_python.bat b/PCbuild/find_python.bat
index d3f62c9..af85f6d 100644
--- a/PCbuild/find_python.bat
+++ b/PCbuild/find_python.bat
@@ -29,6 +29,9 @@
:begin_search
@set PYTHON=
+@rem If PYTHON_FOR_BUILD is set, use that
+@if NOT "%PYTHON_FOR_BUILD%"=="" @(set PYTHON="%PYTHON_FOR_BUILD%") && (set _Py_Python_Source=found as PYTHON_FOR_BUILD) && goto :found
+
@rem If there is an active virtual env, use that one
@if NOT "%VIRTUAL_ENV%"=="" (set PYTHON="%VIRTUAL_ENV%\Scripts\python.exe") & (set _Py_Python_Source=found in virtual env) & goto :found
@@ -42,7 +45,9 @@
@if NOT "%HOST_PYTHON%"=="" @%HOST_PYTHON% -Ec "import sys; assert sys.version_info[:2] >= (3, 9)" >nul 2>nul && (set PYTHON="%HOST_PYTHON%") && (set _Py_Python_Source=found as HOST_PYTHON) && goto :found
@rem If py.exe finds a recent enough version, use that one
-@for %%p in (3.11 3.10 3.9) do @py -%%p -EV >nul 2>&1 && (set PYTHON=py -%%p) && (set _Py_Python_Source=found %%p with py.exe) && goto :found
+@rem It is fine to add new versions to this list when they have released,
+@rem but we do not use prerelease builds here.
+@for %%p in (3.12 3.11 3.10 3.9) do @py -%%p -EV >nul 2>&1 && (set PYTHON=py -%%p) && (set _Py_Python_Source=found %%p with py.exe) && goto :found
@if NOT exist "%_Py_EXTERNALS_DIR%" mkdir "%_Py_EXTERNALS_DIR%"
@set _Py_NUGET=%NUGET%
diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt
index 3875655..a7c2a68 100644
--- a/PCbuild/readme.txt
+++ b/PCbuild/readme.txt
@@ -226,12 +226,18 @@ directory. This script extracts all the external sub-projects from
and
https://github.com/python/cpython-bin-deps
via a Python script called "get_external.py", located in this directory.
-If Python 3.6 or later is not available via the "py.exe" launcher, the
-path or command to use for Python can be provided in the PYTHON_FOR_BUILD
-environment variable, or get_externals.bat will download the latest
-version of NuGet and use it to download the latest "pythonx86" package
-for use with get_external.py. Everything downloaded by these scripts is
-stored in ..\externals (relative to this directory).
+Everything downloaded by these scripts is stored in ..\externals
+(relative to this directory), or the path specified by the EXTERNALS_DIR
+environment variable.
+
+The path or command to use for Python can be provided with the
+PYTHON_FOR_BUILD environment variable. If this is not set, an active
+virtual environment will be used. If none is active, and HOST_PYTHON is
+set to a recent enough version or "py.exe" is able to find a recent
+enough version, those will be used. If all else fails, a copy of Python
+will be downloaded from NuGet and extracted to the externals directory.
+This will then be used for later builds (see PCbuild/find_python.bat
+for the full logic).
It is also possible to download sources from each project's homepage,
though you may have to change folder names or pass the names to MSBuild