anchor.diff:  IF "%VisualStudioVersion%"=="15.0" GOTO find_vs2017
   IF "%VisualStudioVersion%"=="14.0" GOTO find_vs2015
   SET DSN_TMP_VS_INSTALL_DIR=
  -FOR /f "usebackq tokens=1* delims=: " %%i in (`%bin_dir%\vswhere.exe -latest`) DO (
  +FOR /f "usebackq tokens=1* delims=: " %%i in (`"%bin_dir%\vswhere.exe" -latest`) DO (
     IF /i "%%i"=="installationPath" set DSN_TMP_VS_INSTALL_DIR=%%j
   )
   IF DEFINED DSN_TMP_VS_INSTALL_DIR (
  
positive.code: SET bin_dir=%~dp0
  SET TOP_DIR=%bin_dir%\..\..\
  SET build_type=%1
  SET build_dir=%~f2
  SET buildall=-DBUILD_PLUGINS=FALSE
  SET cdir=%cd%
  
  IF "%3" EQU "build_plugins" (
      SET buildall=-DBUILD_PLUGINS=TRUE
      pushd %TOP_DIR%\src\plugins_ext
      git submodule init
      git submodule update
      popd 
  )
  
  CALL %bin_dir%\pre-require.cmd
  IF ERRORLEVEL 1 (
      GOTO exit
  )
  
negative.code: GOTO start_build
  
  :start_build
  IF NOT EXIST "%build_dir%" mkdir "%build_dir%"
  pushd "%build_dir%"
  
  :: call cmake
  echo CALL "%TOP_DIR%\ext\cmake-%DSN_TMP_CMAKE_VERSION%\bin\cmake.exe" "%cdir%" %buildall% -DCMAKE_INSTALL_PREFIX="%build_dir%\output" -DCMAKE_BUILD_TYPE="%build_type%" -DBOOST_INCLUDEDIR="%TOP_DIR%\ext\boost_%DSN_TMP_BOOST_VERSION%" -DBOOST_LIBRARYDIR="%TOP_DIR%\ext\boost_%DSN_TMP_BOOST_VERSION%\%DSN_TMP_BOOST_LIB%" -DDSN_GIT_SOURCE="github" -G "%DSN_TMP_CMAKE_TARGET%"
  CALL "%TOP_DIR%\ext\cmake-%DSN_TMP_CMAKE_VERSION%\bin\cmake.exe" "%cdir%" %buildall% -DCMAKE_INSTALL_PREFIX="%build_dir%\output" -DCMAKE_BUILD_TYPE="%build_type%" -DBOOST_INCLUDEDIR="%TOP_DIR%\ext\boost_%DSN_TMP_BOOST_VERSION%" -DBOOST_LIBRARYDIR="%TOP_DIR%\ext\boost_%DSN_TMP_BOOST_VERSION%\%DSN_TMP_BOOST_LIB%" -DDSN_GIT_SOURCE="github" -G "%DSN_TMP_CMAKE_TARGET%"
  
  :: clean temp environment variables
  SET DSN_TMP_CMAKE_VERSION=
  