@rem keep environment variables modifications local @setlocal @rem make script directory CWD @pushd %~dp0 @set dir=%~dp0 @rem modify PATH to find vcvarsall.bat @set PATH=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build;%PATH% @set PATH=C:\Program Files\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build;%PATH% @set PATH=C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build;%PATH% @set PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build;%PATH% @set PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise/VC\Auxiliary\Build;%PATH% @rem setup environment for MSVC dev tools @call vcvarsall.bat amd64 > nul @rem default compilation result @set PL_RESULT=Successful. @rem create main target output directoy @if not exist "../out" @mkdir "../out" @echo. @if exist "../out/pilot_light_test.exe" del "../out/pilot_light_test.exe" @if exist "../out/pilot_light_test_*.pdb" del "../out/pilot_light_test_*.pdb" @rem create output directory @if not exist "../out" @mkdir "../out" @rem preprocessor defines @set PL_DEFINES=-D_USE_MATH_DEFINES -D_DEBUG @rem include directories @set PL_INCLUDE_DIRECTORIES=-I".." -I"%WindowsSdkDir%Include\um" -I"%WindowsSdkDir%Include\shared" @rem compiler flags @set PL_COMPILER_FLAGS=-Zc:preprocessor -nologo -std:c11 -W4 -WX -wd4201 -wd4100 -wd4996 -wd4505 -wd4189 -wd5105 -wd4115 -permissive- -Od -MDd -Zi @rem run compiler (and linker) @echo. @echo Step: pilot_light_test @echo ~~~~~~~~~~~~~~~~~~~~~~ @echo Compiling and Linking... @rem call compiler cl %PL_INCLUDE_DIRECTORIES% %PL_DEFINES% %PL_COMPILER_FLAGS% "main_tests.c" -Fe"../out/pilot_light_test.exe" -Fo"../out/" -link -incremental:no -PDB:"../out/pilot_light_test_%random%.pdb" @rem check build status @set PL_BUILD_STATUS=%ERRORLEVEL% @rem failed @if %PL_BUILD_STATUS% NEQ 0 ( @echo Compilation Failed with error code: %PL_BUILD_STATUS% @set PL_RESULT=Failed. goto Cleanuppilot_light_test ) @rem cleanup obj files :Cleanuppilot_light_test @echo Cleaning... @del "../out/*.obj" > nul 2> nul @rem print results @echo. @echo Result:  %PL_RESULT% @echo ~~~~~~~~~~~~~~~~~~~~~~ @rem return CWD to previous CWD @popd