diff --git a/PCbuild/build.bat b/PCbuild/build.bat index fa9f403f2f9..3f8e231df02 100644 --- a/PCbuild/build.bat +++ b/PCbuild/build.bat @@ -9,8 +9,10 @@ rem -r Target Rebuild instead of Build rem -t Set the target manually (Build, Rebuild, Clean, or CleanAll) rem -d Set the configuration to Debug rem -e Pull in external libraries using get_externals.bat +rem -m Enable parallel build (enabled by default) rem -M Disable parallel build rem -v Increased output messages +rem -k Attempt to kill any running Pythons before building (usually unnecessary) setlocal set platf=Win32 @@ -20,6 +22,7 @@ set target=Build set dir=%~dp0 set parallel=/m set verbose=/nologo /v:m +set kill= :CheckOpts if '%1'=='-c' (set conf=%2) & shift & shift & goto CheckOpts @@ -28,14 +31,20 @@ if '%1'=='-r' (set target=Rebuild) & shift & goto CheckOpts if '%1'=='-t' (set target=%2) & shift & shift & goto CheckOpts if '%1'=='-d' (set conf=Debug) & shift & goto CheckOpts if '%1'=='-e' call "%dir%get_externals.bat" & shift & goto CheckOpts +if '%1'=='-m' (set parallel=/m) & shift & goto CheckOpts if '%1'=='-M' (set parallel=) & shift & goto CheckOpts if '%1'=='-v' (set verbose=/v:n) & shift & goto CheckOpts +if '%1'=='-k' (set kill=true) & shift & goto CheckOpts if '%platf%'=='x64' (set vs_platf=x86_amd64) rem Setup the environment call "%dir%env.bat" %vs_platf% >nul +if '%kill%'=='true' ( + msbuild /v:m /nologo /target:KillPython "%pcbuild%\pythoncore.vcxproj" /p:Configuration=%conf% /p:Platform=%platf% /p:KillPython=true +) + rem Call on MSBuild to do the work, echo the command. rem Passing %1-9 is not the preferred option, but argument parsing in rem batch is, shall we say, "lackluster" diff --git a/Tools/buildbot/build.bat b/Tools/buildbot/build.bat index 1debfc19d79..5e840cc7eac 100644 --- a/Tools/buildbot/build.bat +++ b/Tools/buildbot/build.bat @@ -1,10 +1,7 @@ @rem Used by the buildbot "compile" step. @rem Clean up -set PLAT= -if '%1' EQU '-p' if '%2' EQU 'x64' (set PLAT=-amd64) - -call "%~dp0clean%PLAT%.bat" +call "%~dp0clean.bat" %* @rem If you need the buildbots to start fresh (such as when upgrading to @rem a new version of an external library, especially Tcl/Tk): @@ -17,4 +14,4 @@ call "%~dp0clean%PLAT%.bat" @rem 4) re-comment, commit and push again @rem Do the build -call "%~dp0..\..\PCbuild\build.bat" -e -d -v %* +call "%~dp0..\..\PCbuild\build.bat" -e -d -k -v %* diff --git a/Tools/buildbot/clean-amd64.bat b/Tools/buildbot/clean-amd64.bat index 5e68e30a64b..6bbbb654dba 100644 --- a/Tools/buildbot/clean-amd64.bat +++ b/Tools/buildbot/clean-amd64.bat @@ -1,2 +1,2 @@ @rem Used by the buildbot "clean" step. -@call "%~dp0clean.bat" x64 +call "%~dp0clean.bat" -p x64 %* diff --git a/Tools/buildbot/clean.bat b/Tools/buildbot/clean.bat index 6890453cf5f..0fc68fd7271 100644 --- a/Tools/buildbot/clean.bat +++ b/Tools/buildbot/clean.bat @@ -5,25 +5,12 @@ setlocal set root=%~dp0..\.. set pcbuild=%root%\PCbuild -if "%1" == "x64" ( - set vcvars_target=x86_amd64 - set platform=x64 -) else ( - set vcvars_target=x86 - set platform=Win32 -) - -call "%pcbuild%\env.bat" %vcvars_target% - -echo.Attempting to kill Pythons... -msbuild /v:m /nologo /target:KillPython "%pcbuild%\pythoncore.vcxproj" /p:Configuration=Release /p:Platform=%platform% /p:KillPython=true +echo Deleting build +call "%pcbuild%\build.bat" -t Clean -k %* +call "%pcbuild%\build.bat" -t Clean -k -d %* echo Deleting .pyc/.pyo files ... del /s "%root%\Lib\*.pyc" "%root%\Lib\*.pyo" echo Deleting test leftovers ... rmdir /s /q "%root%\build" - -echo Deleting build -msbuild /v:m /nologo /target:clean "%pcbuild%\pcbuild.proj" /p:Configuration=Release /p:Platform=%platform% -msbuild /v:m /nologo /target:clean "%pcbuild%\pcbuild.proj" /p:Configuration=Debug /p:Platform=%platform% diff --git a/Tools/buildbot/test-amd64.bat b/Tools/buildbot/test-amd64.bat index 9467e86dcf8..859b37fce5a 100644 --- a/Tools/buildbot/test-amd64.bat +++ b/Tools/buildbot/test-amd64.bat @@ -1,5 +1,2 @@ @rem Used by the buildbot "test" step. - -setlocal - -call "%~dp0..\..\PCbuild\rt.bat" -d -q -x64 -uall -rwW -n --timeout=3600 %* +call "%~dp0test.bat" -x64 %* diff --git a/Tools/buildbot/test.bat b/Tools/buildbot/test.bat index 995f0122353..154dfa57f17 100644 --- a/Tools/buildbot/test.bat +++ b/Tools/buildbot/test.bat @@ -1,5 +1,15 @@ @rem Used by the buildbot "test" step. +@setlocal -setlocal +@set here=%~dp0 +@set rt_opts=-q -d -call "%~dp0..\..\PCbuild\rt.bat" -d -q -uall -rwW -n --timeout=3600 %* +:CheckOpts +@if '%1'=='-x64' (set rt_opts=%rt_opts% %1) & shift & goto CheckOpts +@if '%1'=='-d' (set rt_opts=%rt_opts% %1) & shift & goto CheckOpts +@if '%1'=='-O' (set rt_opts=%rt_opts% %1) & shift & goto CheckOpts +@if '%1'=='-q' (set rt_opts=%rt_opts% %1) & shift & goto CheckOpts +@if '%1'=='+d' (set rt_opts=%rt_opts:-d=%) & shift & goto CheckOpts +@if '%1'=='+q' (set rt_opts=%rt_opts:-q=%) & shift & goto CheckOpts + +call "%here%..\..\PCbuild\rt.bat" %rt_opts% -uall -rwW -n --timeout=3600 %1 %2 %3 %4 %5 %6 %7 %8 %9