https://github.com/python/cpython/commit/27a62e7371f062a80704f6bf4d6e8f06568d37aa
commit: 27a62e7371f062a80704f6bf4d6e8f06568d37aa
branch: main
author: Wulian <[email protected]>
committer: zooba <[email protected]>
date: 2024-09-23T23:09:22Z
summary:
gh-124102: Update internal PCbuild docs to accurately list build dependencies
(GH-124103)
files:
A Misc/NEWS.d/next/Build/2024-09-16-09-42-05.gh-issue-124102.Ow254j.rst
M PCbuild/build.bat
M PCbuild/env.bat
M PCbuild/find_msbuild.bat
M PCbuild/get_externals.bat
M PCbuild/python.props
M PCbuild/pythoncore.vcxproj
M PCbuild/readme.txt
M PCbuild/tcltk.props
M Tools/msi/README.txt
M Tools/msi/bundle/bootstrap/pythonba.vcxproj
diff --git
a/Misc/NEWS.d/next/Build/2024-09-16-09-42-05.gh-issue-124102.Ow254j.rst
b/Misc/NEWS.d/next/Build/2024-09-16-09-42-05.gh-issue-124102.Ow254j.rst
new file mode 100644
index 00000000000000..6edc9a6abbced4
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2024-09-16-09-42-05.gh-issue-124102.Ow254j.rst
@@ -0,0 +1,2 @@
+Update internal documentation under PCbuild, so it now correctly states that
+Windows requires VS2017 or later and Python 3.10 or later
diff --git a/PCbuild/build.bat b/PCbuild/build.bat
index 6c76f09a071312..abe649553756a7 100644
--- a/PCbuild/build.bat
+++ b/PCbuild/build.bat
@@ -8,7 +8,7 @@ echo.version(s) of Microsoft Visual Studio to be installed (see
readme.txt).
echo.
echo.After the flags recognized by this script, up to 9 arguments to be passed
echo.directly to MSBuild may be passed. If the argument contains an '=', the
-echo.entire argument must be quoted (e.g. `%~nx0 "/p:PlatformToolset=v100"`).
+echo.entire argument must be quoted (e.g. `%~nx0 "/p:PlatformToolset=v141"`).
echo.Alternatively you can put extra flags for MSBuild in a file named
echo.`msbuild.rsp` in the `PCbuild` directory, one flag per line. This file
echo.will be picked automatically by MSBuild. Flags put in this file does not
diff --git a/PCbuild/env.bat b/PCbuild/env.bat
index 2820e304582cff..cf4638b7aa63a7 100644
--- a/PCbuild/env.bat
+++ b/PCbuild/env.bat
@@ -4,8 +4,8 @@ rem command window. However, most builds of Python will ignore
the version
rem of the tools on PATH and use PlatformToolset instead. Ideally, both sets of
rem tools should be the same version to avoid potential conflicts.
rem
-rem To build Python with an earlier toolset, pass "/p:PlatformToolset=v100" (or
-rem 'v110', 'v120' or 'v140') to the build script.
+rem To build Python with an earlier toolset, pass "/p:PlatformToolset=v141" (or
+rem 'v142', 'v143') to the build script.
echo Build environments: x86, amd64, x86_amd64
echo.
@@ -20,8 +20,7 @@ call "%VSTOOLS%" %_ARGS%
exit /B 0
:skip_vswhere
-if not defined VSTOOLS set VSTOOLS=%VS140COMNTOOLS%
-if not defined VSTOOLS set VSTOOLS=%VS120COMNTOOLS%
-if not defined VSTOOLS set VSTOOLS=%VS110COMNTOOLS%
-if not defined VSTOOLS set VSTOOLS=%VS100COMNTOOLS%
+if not defined VSTOOLS set VSTOOLS=%VS143COMNTOOLS%
+if not defined VSTOOLS set VSTOOLS=%VS142COMNTOOLS%
+if not defined VSTOOLS set VSTOOLS=%VS141COMNTOOLS%
call "%VSTOOLS%..\..\VC\vcvarsall.bat" %_ARGS%
diff --git a/PCbuild/find_msbuild.bat b/PCbuild/find_msbuild.bat
index ce7e71efa31f6c..82dd34beede6ee 100644
--- a/PCbuild/find_msbuild.bat
+++ b/PCbuild/find_msbuild.bat
@@ -39,16 +39,6 @@
@if defined MSBUILD @if exist %MSBUILD% (set _Py_MSBuild_Source=Visual Studio
installation) & goto :found
:skip_vswhere
-@rem VS 2015 and earlier register MSBuild separately, so we can find it.
-@reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0"
/v MSBuildToolsPath /reg:32 >nul 2>nul
-@if NOT ERRORLEVEL 1 @for /F "tokens=1,2*" %%i in ('reg query
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0" /v
MSBuildToolsPath /reg:32') DO @(
- @if "%%i"=="MSBuildToolsPath" @if exist "%%k\msbuild.exe" @(set
MSBUILD="%%k\msbuild.exe")
-)
-@if exist %MSBUILD% (set _Py_MSBuild_Source=registry) & goto :found
-
-
-@exit /b 1
-
:found
@pushd %MSBUILD% >nul 2>nul
@if not ERRORLEVEL 1 @(
diff --git a/PCbuild/get_externals.bat b/PCbuild/get_externals.bat
index a1a67966182863..137c94789e1809 100644
--- a/PCbuild/get_externals.bat
+++ b/PCbuild/get_externals.bat
@@ -45,7 +45,7 @@ if "%ORG%"=="" (set ORG=python)
call "%PCBUILD%\find_python.bat" "%PYTHON%"
if NOT DEFINED PYTHON (
- where /Q git || echo Python 3.6 could not be found or installed, and
git.exe is not on your PATH && exit /B 1
+ where /Q git || echo Python 3.10 or later could not be found or installed,
and git.exe is not on your PATH && exit /B 1
)
echo.Fetching external libraries...
diff --git a/PCbuild/python.props b/PCbuild/python.props
index c8ecdb4515ae9a..6e90178f4ea8ab 100644
--- a/PCbuild/python.props
+++ b/PCbuild/python.props
@@ -6,7 +6,7 @@
<Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
<!--
Use the latest available version of Visual Studio to build. To override
- this and build with an earlier version, pass "/p:PlatformToolset=v100"
+ this and build with an earlier version, pass "/p:PlatformToolset=v141"
(for example) when building.
We set BasePlatformToolset for ICC's benefit, it's otherwise ignored.
@@ -14,10 +14,6 @@
<BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and
'$(VisualStudioVersion)' == '17.0'">v143</BasePlatformToolset>
<BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and
'$(VisualStudioVersion)' == '16.0'">v142</BasePlatformToolset>
<BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and
('$(MSBuildToolsVersion)' == '15.0' or '$(VisualStudioVersion)' ==
'15.0')">v141</BasePlatformToolset>
- <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and
'$(VCTargetsPath14)' != ''">v140</BasePlatformToolset>
- <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and
'$(VCTargetsPath12)' != ''">v120</BasePlatformToolset>
- <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and
'$(VCTargetsPath11)' != ''">v110</BasePlatformToolset>
- <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and
'$(VCTargetsPath10)' != ''">v100</BasePlatformToolset>
<PlatformToolset Condition="'$(PlatformToolset)' ==
''">$(BasePlatformToolset)</PlatformToolset>
<ICCBuild>false</ICCBuild>
diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj
index 6399eac313db29..19b982db7f5b87 100644
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -738,7 +738,7 @@
</ClCompile>
</ItemGroup>
</Target>
- <Target Name="_WarnAboutToolset" BeforeTargets="PrepareForBuild"
Condition="$(PlatformToolset) != 'v140' and $(PlatformToolset) != 'v141' and
$(PlatformToolset) != 'v142' and $(PlatformToolset) != 'v143'">
+ <Target Name="_WarnAboutToolset" BeforeTargets="PrepareForBuild"
Condition="$(PlatformToolset) != 'v141' and $(PlatformToolset) != 'v142' and
$(PlatformToolset) != 'v143'">
<Warning Text="Toolset $(PlatformToolset) is not used for official builds.
Your build may have errors or incompatibilities." />
</Target>
<Target Name="_WarnAboutZlib" BeforeTargets="PrepareForBuild"
Condition="!$(IncludeExternals)">
diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt
index f4dfe0e9015f02..865e294d260a49 100644
--- a/PCbuild/readme.txt
+++ b/PCbuild/readme.txt
@@ -3,7 +3,7 @@ Quick Start Guide
1. Install Microsoft Visual Studio 2017 or later with Python workload and
Python native development component.
-1a. Optionally install Python 3.6 or later. If not installed,
+1a. Optionally install Python 3.10 or later. If not installed,
get_externals.bat (via build.bat) will download and use Python via
NuGet.
2. Run "build.bat" to build Python in 32-bit Release configuration.
@@ -57,7 +57,7 @@ Building Python using the build.bat script
In this directory you can find build.bat, a script designed to make
building Python on Windows simpler. This script will use the env.bat
-script to detect either Visual Studio 2017 or 2015, either of
+script to detect either Visual Studio 2017 or later, either of
which may be used to build Python. Currently Visual Studio 2017 is
officially supported.
@@ -172,7 +172,7 @@ _lzma
Homepage:
https://tukaani.org/xz/
_ssl
- Python wrapper for version 3.0 of the OpenSSL secure sockets
+ Python wrapper for version 3.0.15 of the OpenSSL secure sockets
library, which is downloaded from our binaries repository at
https://github.com/python/cpython-bin-deps.
@@ -195,7 +195,7 @@ _sqlite3
Homepage:
https://www.sqlite.org/
_tkinter
- Wraps version 8.6.6 of the Tk windowing system, which is downloaded
+ Wraps version 8.6.14 of the Tk windowing system, which is downloaded
from our binaries repository at
https://github.com/python/cpython-bin-deps.
diff --git a/PCbuild/tcltk.props b/PCbuild/tcltk.props
index 95b699b4cac0aa..83c38c993d5754 100644
--- a/PCbuild/tcltk.props
+++ b/PCbuild/tcltk.props
@@ -37,9 +37,6 @@
<BuildDirTop Condition="$(Configuration) == 'Debug'">Debug</BuildDirTop>
<BuildDirTop Condition="$(TclMachine) !=
'IX86'">$(BuildDirTop)_$(TclMachine)</BuildDirTop>
<BuildDirTop
Condition="$(PlatformToolset.StartsWith('v14'))">$(BuildDirTop)_VC13</BuildDirTop>
- <BuildDirTop Condition="$(PlatformToolset) ==
'v120'">$(BuildDirTop)_VC12</BuildDirTop>
- <BuildDirTop Condition="$(PlatformToolset) ==
'v110'">$(BuildDirTop)_VC11</BuildDirTop>
- <BuildDirTop Condition="$(PlatformToolset) ==
'v100'">$(BuildDirTop)_VC10</BuildDirTop>
</PropertyGroup>
<!--
diff --git a/Tools/msi/README.txt b/Tools/msi/README.txt
index c25ada8397cd95..98e5ba039d2bcd 100644
--- a/Tools/msi/README.txt
+++ b/Tools/msi/README.txt
@@ -9,7 +9,7 @@ script:
For an official release, the installer should be built with the
Tools/msi/buildrelease.bat script and environment variables:
- set PYTHON=<path to Python 3.8 or later>
+ set PYTHON=<path to Python 3.10 or later>
set SPHINXBUILD=<path to sphinx-build.exe>
set PATH=<path to Git (git.exe)>;%PATH%
@@ -66,19 +66,13 @@ Tools\msi\get_externals.bat. (Note that this is in addition
to the
similarly named file in PCbuild.)
One of the dependencies used in builds is WiX, a toolset that lets developers
-create installers for Windows Installer, the Windows installation engine. WiX
-has a dependency on the Microsoft .NET Framework Version 3.5 (which may not be
-configured on recent versions of Windows, such as Windows 10). If you are
-building on a recent Windows version, use the Control Panel (Programs |
Programs
-and Features | Turn Windows Features on or off) and ensure that the entry
-".NET Framework 3.5 (includes .NET 2.0 and 3.0)" is enabled.
-
-For Python 3.11.x and above, enable "Microsoft .NET Framework 4.8 Advanced
Services"
-instead of "Microsoft .NET Framework Version 3.5" available for Windows 10 and
above.
-Also make sure "MSVC v143 - VS 2022 C++ ARM64 build tools" are selected under
-"Desktop Development with C++" in "Visual Studio installer" even if you are not
-building on ARM64 along with other x64 related v143 build tools. This is
because for
-3.11.x and above we have upgraded to Wix-3.14.
+create installers for Windows Installer, the Windows installation engine.
+
+Additionally, make sure "MSVC v14x - VS 20xx C++ ARM64 build tools" are
+selected under "Desktop Development with C++" in "Visual Studio installer",
+even if you are not building on ARM64. This is required because we have
+upgraded to WiX-3.14, which requires these tools for Python 3.11 and later
+versions.
For testing, the installer should be built with the Tools/msi/build.bat
script:
@@ -107,7 +101,7 @@ be available alongside. This takes longer, but is easier to
share.
For an official release, the installer should be built with the
Tools/msi/buildrelease.bat script:
- set PYTHON=<path to Python 2.7 or 3.4>
+ set PYTHON=<path to Python 3.10 or later>
set SPHINXBUILD=<path to sphinx-build.exe>
set PATH=<path to Git (git.exe)>;%PATH%
diff --git a/Tools/msi/bundle/bootstrap/pythonba.vcxproj
b/Tools/msi/bundle/bootstrap/pythonba.vcxproj
index bb383bfcaa240e..3970e857894ba5 100644
--- a/Tools/msi/bundle/bootstrap/pythonba.vcxproj
+++ b/Tools/msi/bundle/bootstrap/pythonba.vcxproj
@@ -24,7 +24,6 @@
<PlatformToolset Condition="'$(PlatformToolset)' == '' and
'$(VisualStudioVersion)' == '17.0'">v143</PlatformToolset>
<PlatformToolset Condition="'$(PlatformToolset)' == '' and
'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
<PlatformToolset Condition="'$(PlatformToolset)' == '' and
('$(MSBuildToolsVersion)' == '15.0' or '$(VisualStudioVersion)' ==
'15.0')">v141</PlatformToolset>
- <PlatformToolset Condition="'$(PlatformToolset)' ==
''">v140</PlatformToolset>
<ProjectGuid>{7A09B132-B3EE-499B-A700-A4B2157FEA3D}</ProjectGuid>
<TargetName>PythonBA</TargetName>
</PropertyGroup>
@@ -51,8 +50,6 @@
<Link>
<AdditionalDependencies>comctl32.lib;gdiplus.lib;msimg32.lib;shlwapi.lib;wininet.lib;dutil.lib;balutil.lib;version.lib;uxtheme.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories
Condition="$(PlatformToolset.StartsWith(`v14`))">$(WixInstallPath)sdk\vs2017\lib\x86</AdditionalLibraryDirectories>
- <AdditionalLibraryDirectories Condition="'$(PlatformToolset)' ==
'v140'">$(WixInstallPath)sdk\vs2015\lib\x86</AdditionalLibraryDirectories>
- <AdditionalLibraryDirectories Condition="'$(PlatformToolset)' ==
'v120'">$(WixInstallPath)sdk\vs2013\lib\x86</AdditionalLibraryDirectories>
<ModuleDefinitionFile>pythonba.def</ModuleDefinitionFile>
<GenerateDebugInformation
Condition="'$(Configuration)'=='Debug'">true</GenerateDebugInformation>
</Link>
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]