summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@python.org>2020-11-18 18:01:52 +0000
committerGitHub <noreply@github.com>2020-11-18 13:01:52 -0500
commit9ae1742bdf85dc78788ae2d68ab5b02f67f69eb3 (patch)
tree477eedacf22a4e2353907e40ee87fbe51271ff81
parent[3.7] bpo-42103: Improve validation of Plist files. (GH-22882) (#23117) (diff)
downloadcpython-9ae1742bdf85dc78788ae2d68ab5b02f67f69eb3.tar.gz
cpython-9ae1742bdf85dc78788ae2d68ab5b02f67f69eb3.tar.bz2
cpython-9ae1742bdf85dc78788ae2d68ab5b02f67f69eb3.zip
[3.7] bpo-42336: Improve PCbuild batch files (GH-23325) (GH-23373)
* bpo-42336: Improve PCbuild batch files (GH-23325) * Remove ARM platforms
-rw-r--r--.azure-pipelines/ci.yml2
-rw-r--r--.azure-pipelines/pr.yml2
-rw-r--r--.github/workflows/build.yml4
-rw-r--r--PCbuild/env.bat21
-rw-r--r--PCbuild/env.ps12
-rw-r--r--PCbuild/idle.bat16
-rw-r--r--PCbuild/rt.bat14
7 files changed, 47 insertions, 14 deletions
diff --git a/.azure-pipelines/ci.yml b/.azure-pipelines/ci.yml
index b9038b982f7..b9070a4e00a 100644
--- a/.azure-pipelines/ci.yml
+++ b/.azure-pipelines/ci.yml
@@ -139,7 +139,7 @@ jobs:
matrix:
win32:
arch: win32
- buildOpt:
+ buildOpt: '-p Win32'
testRunTitle: '$(Build.SourceBranchName)-win32'
testRunPlatform: win32
win64:
diff --git a/.azure-pipelines/pr.yml b/.azure-pipelines/pr.yml
index 808b5f1c75b..026e2835596 100644
--- a/.azure-pipelines/pr.yml
+++ b/.azure-pipelines/pr.yml
@@ -139,7 +139,7 @@ jobs:
matrix:
win32:
arch: win32
- buildOpt:
+ buildOpt: '-p Win32'
testRunTitle: '$(System.PullRequest.TargetBranch)-win32'
testRunPlatform: win32
win64:
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index cf865059802..fb00d0c0d0f 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -39,7 +39,7 @@ jobs:
- name: Display build info
run: .\python.bat -m test.pythoninfo
- name: Tests
- run: .\PCbuild\rt.bat -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0
+ run: .\PCbuild\rt.bat -p Win32 -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0
build_win_amd64:
name: 'Windows (x64)'
@@ -53,7 +53,7 @@ jobs:
- name: Display build info
run: .\python.bat -m test.pythoninfo
- name: Tests
- run: .\PCbuild\rt.bat -x64 -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0
+ run: .\PCbuild\rt.bat -p x64 -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0
build_macos:
name: 'macOS'
diff --git a/PCbuild/env.bat b/PCbuild/env.bat
index 9d4c9d1c32f..7362447b8f0 100644
--- a/PCbuild/env.bat
+++ b/PCbuild/env.bat
@@ -9,8 +9,19 @@ rem 'v110', 'v120' or 'v140') to the build script.
echo Build environments: x86, amd64, x86_amd64
echo.
-set VSTOOLS=%VS140COMNTOOLS%
-if "%VSTOOLS%"=="" set VSTOOLS=%VS120COMNTOOLS%
-if "%VSTOOLS%"=="" set VSTOOLS=%VS110COMNTOOLS%
-if "%VSTOOLS%"=="" set VSTOOLS=%VS100COMNTOOLS%
-call "%VSTOOLS%..\..\VC\vcvarsall.bat" %*
+set _ARGS=%*
+if NOT DEFINED _ARGS set _ARGS=x86
+
+if not exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" goto :skip_vswhere
+set VSTOOLS=
+for /F "tokens=*" %%i in ('"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -property installationPath -latest -prerelease -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64') DO @(set VSTOOLS=%%i\VC\Auxiliary\Build\vcvarsall.bat)
+if not defined VSTOOLS goto :skip_vswhere
+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%
+call "%VSTOOLS%..\..\VC\vcvarsall.bat" %_ARGS%
diff --git a/PCbuild/env.ps1 b/PCbuild/env.ps1
new file mode 100644
index 00000000000..19d7ada4c10
--- /dev/null
+++ b/PCbuild/env.ps1
@@ -0,0 +1,2 @@
+$pcbuild = $script:MyInvocation.MyCommand.Path | Split-Path -parent;
+& cmd /K "$pcbuild\env.bat" $args
diff --git a/PCbuild/idle.bat b/PCbuild/idle.bat
index 1978b99f6ee..a680d14c098 100644
--- a/PCbuild/idle.bat
+++ b/PCbuild/idle.bat
@@ -4,12 +4,22 @@ rem Usage: idle [-d]
rem -d Run Debug build (python_d.exe). Else release build.
setlocal
-set exe=win32\python
+set PCBUILD=%~dp0
+set exedir=%PCBUILD%\win32
+set exe=python
PATH %PATH%;..\externals\tcltk\bin
-if "%1"=="-d" (set exe=%exe%_d) & shift
+:CheckOpts
+if "%1"=="-d" (set exe=%exe%_d) & shift & goto :CheckOpts
+if "%1"=="-p" (call :SetExeDir %2) & shift & shift & goto :CheckOpts
-set cmd=%exe% ../Lib/idlelib/idle.py %1 %2 %3 %4 %5 %6 %7 %8 %9
+set cmd=%exedir%\%exe% %PCBUILD%\..\Lib\idlelib\idle.py %1 %2 %3 %4 %5 %6 %7 %8 %9
echo on
%cmd%
+exit /B %LASTERRORCODE%
+
+:SetExeDir
+if /I %1 EQU Win32 (set exedir=%PCBUILD%\win32)
+if /I %1 EQU x64 (set exedir=%PCBUILD%\amd64)
+exit /B 0
diff --git a/PCbuild/rt.bat b/PCbuild/rt.bat
index 212befc95b0..02d29a8689a 100644
--- a/PCbuild/rt.bat
+++ b/PCbuild/rt.bat
@@ -6,8 +6,9 @@ rem -O Run python.exe or python_d.exe (see -d) with -O.
rem -q "quick" -- normally the tests are run twice, the first time
rem after deleting all the .pyc files reachable from Lib/.
rem -q runs the tests just once, and without deleting .pyc files.
-rem -x64 Run the 64-bit build of python (or python_d if -d was specified)
-rem When omitted, uses %PREFIX% if set or the 32-bit build
+rem -p <Win32|x64> or -win32, -x64
+rem Run the specified architecture of python (or python_d if -d
+rem was specified). If omitted, uses %PREFIX% if set or 32-bit.
rem All leading instances of these switches are shifted off, and
rem whatever remains (up to 9 arguments) is passed to regrtest.py.
rem For example,
@@ -38,7 +39,9 @@ set exe=
if "%1"=="-O" (set dashO=-O) & shift & goto CheckOpts
if "%1"=="-q" (set qmode=yes) & shift & goto CheckOpts
if "%1"=="-d" (set suffix=_d) & shift & goto CheckOpts
+if "%1"=="-win32" (set prefix=%pcbuild%win32) & shift & goto CheckOpts
if "%1"=="-x64" (set prefix=%pcbuild%amd64) & shift & goto CheckOpts
+if "%1"=="-p" (call :SetPlatform %~2) & shift & shift & goto CheckOpts
if NOT "%1"=="" (set regrtestargs=%regrtestargs% %1) & shift & goto CheckOpts
if not defined prefix set prefix=%pcbuild%win32
@@ -58,6 +61,13 @@ echo on
echo About to run again without deleting .pyc first:
pause
+goto Qmode
+
+:SetPlatform
+if /I %1 EQU Win32 (set prefix=%pcbuild%win32) & exit /B 0
+if /I %1 EQU x64 (set prefix=%pcbuild%amd64) & exit /B 0
+echo Invalid platform "%1"
+exit /B 1
:Qmode
echo on