1setlocal 2rem M.m e.g. 2.7 3.6 etc 3set PYTHON_VER=%1 4rem 32 or 64 5set PYTHON_ARCH=%2 6rem 10.0, 14.0 7set VC_VER=%3 8rem 3.5 etc 9set API=%4 10 11echo ------------------------------------------------------ 12echo Testing limited API %4 for python %1 %2 using VC %3 13echo ------------------------------------------------------ 14if %PYTHON_ARCH% == win32 ( 15 if exist "C:\Program Files (x86)\Microsoft Visual Studio %VC_VER%\VC\vcvarsall.bat" ( 16 call "C:\Program Files (x86)\Microsoft Visual Studio %VC_VER%\VC\vcvarsall.bat" 17 ) 18 if exist "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" ( 19 call "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" 20 ) 21) 22if %PYTHON_ARCH% == win64 ( 23 if exist "C:\Program Files (x86)\Microsoft Visual Studio %VC_VER%\VC\bin\amd64\vcvars64.bat" ( 24 call "C:\Program Files (x86)\Microsoft Visual Studio %VC_VER%\VC\bin\amd64\vcvars64.bat" 25 ) 26 if exist "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" ( 27 call "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" 28 ) 29) 30 31if exist c:\python%PYTHON_VER%.%PYTHON_ARCH%\python.exe ( 32 py -%PYTHON_VER%-%PYTHON_ARCH% setup_makefile.py win%PYTHON_ARCH% tmp-%PYTHON_ARCH%-python%PYTHON_VER%-limited-%API%-build.mak --limited-api=%API% 33 if errorlevel 1 exit /b 1 34 nmake -f tmp-%PYTHON_ARCH%-python%PYTHON_VER%-limited-%API%-build.mak clean all 2>&1 | py -3 build_tee tmp-%PYTHON_ARCH%-python%PYTHON_VER%-limited-%API%-build.log 35 if not exist obj\pycxx_iter.pyd exit /b 1 36 nmake -f tmp-%PYTHON_ARCH%-python%PYTHON_VER%-limited-%API%-build.mak test 2>&1 | py -3 build_tee -a tmp-%PYTHON_ARCH%-python%PYTHON_VER%-limited-%API%-test.log 37 echo All done 38) 39endlocal 40