anchor.diff:  set VCINSTALLDIR=
   set DevEnvDir=
   goto:eof
  +
  +::-----------------------------------------------------------------------------
  +:: Build and update a particular subvariant of the library
  +::
  +:: Parameters:
  +::
  +::   %1     Plain name of the .sln solution file ("StormLib_vs19.sln")
  +::   %2     Target build platform ("Win32" or "x64")
  +::   %3     Target directory for the library ("lib32", "lib32\vs2008", "lib64" or "lib64\vs2008")
  +::   %4     Subvariant of the library ("DebugAD", "ReleaseUS", ...)
  +::
  +
  +:BuildAndCopyLib
  +if not exist %1 goto:eof
  +devenv.com %1 /project "%LIB_NAME%" /rebuild "%4|%2"
  +if not exist ..\aaa goto:eof
  +xcopy.exe /Y /D .\bin\StormLib\%2\%4\*.lib ..\aaa\%3 >nul
  +goto:eof
  
positive.code: ::
  ::   %1     Full path to the VCVARS.BAT file
  ::   %2     Target build platform (x86 or x64)
  ::   %3     Plain name of the /sln solution file
  ::   %4     Subdirectory for the target folder of the library ("\vs2008" or "")
  ::
  
  :BuildLibs
  call %1 %2
  if "%2" == "x86" set SLN_TRG=Win32
  if "%2" == "x86" set LIB_TRG=lib32
  if "%2" == "x64" set SLN_TRG=x64
  if "%2" == "x64" set LIB_TRG=lib64
  
  xcopy.exe /Y /D .\src\StormLib.h ..\aaa\inc
  xcopy.exe /Y /D .\src\StormPort.h ..\aaa\inc
  
  devenv.com %3 /project "%LIB_NAME%" /rebuild "DebugAD|%SLN_TRG%"
  xcopy.exe /Y /D .\bin\StormLib\%SLN_TRG%\DebugAD\*.lib ..\aaa\%LIB_TRG%%4
  
  devenv.com %3 /project "%LIB_NAME%" /rebuild "DebugAS|%SLN_TRG%"
  xcopy.exe /Y /D .\bin\StormLib\%SLN_TRG%\DebugAS\*.lib ..\aaa\%LIB_TRG%%4
  
  devenv.com %3 /project "%LIB_NAME%" /rebuild "DebugUD|%SLN_TRG%"
  xcopy.exe /Y /D .\bin\StormLib\%SLN_TRG%\DebugUD\*.lib ..\aaa\%LIB_TRG%%4
  
  devenv.com %3 /project "%LIB_NAME%" /rebuild "DebugUS|%SLN_TRG%"
  xcopy.exe /Y /D .\bin\StormLib\%SLN_TRG%\DebugUS\*.lib ..\aaa\%LIB_TRG%%4
  
  devenv.com %3 /project "%LIB_NAME%" /rebuild "ReleaseAD|%SLN_TRG%"
  xcopy.exe /Y /D .\bin\StormLib\%SLN_TRG%\ReleaseAD\*.lib ..\aaa\%LIB_TRG%%4
  
  devenv.com %3 /project "%LIB_NAME%" /rebuild "ReleaseAS|%SLN_TRG%"
  xcopy.exe /Y /D .\bin\StormLib\%SLN_TRG%\ReleaseAS\*.lib ..\aaa\%LIB_TRG%%4
  
  devenv.com %3 /project "%LIB_NAME%" /rebuild "ReleaseUD|%SLN_TRG%"
  xcopy.exe /Y /D .\bin\StormLib\%SLN_TRG%\ReleaseUD\*.lib ..\aaa\%LIB_TRG%%4
  
  devenv.com %3 /project "%LIB_NAME%" /rebuild "ReleaseUS|%SLN_TRG%"
  xcopy.exe /Y /D .\bin\StormLib\%SLN_TRG%\ReleaseUS\*.lib ..\aaa\%LIB_TRG%%4
  
  :: Restore environment variables to the old level
  set INCLUDE=%SAVE_INCLUDE%
  
negative.code: if exist "%PROGRAM_FILES_DIR%\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat" set VCVARS_2019=%PROGRAM_FILES_DIR%\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat
  if exist "%PROGRAM_FILES_DIR%\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat"   set VCVARS_2019=%PROGRAM_FILES_DIR%\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
  
  :: Copy the public headers
  xcopy.exe /Y /D .\src\StormLib.h ..\aaa\inc >nul
  xcopy.exe /Y /D .\src\StormPort.h ..\aaa\inc >nul
  
  :: Build all libraries using Visual Studio 2008 and 2017
  call :BuildLibs "%VCVARS_2008%" x86 %LIB_NAME%_vs08.sln \vs2008
  call :BuildLibs "%VCVARS_2008%" x64 %LIB_NAME%_vs08.sln \vs2008
  call :BuildLibs "%VCVARS_2019%" x86 %LIB_NAME%_vs19.sln
  