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