anchor.diff:  REM Determine if the packages are being built
   ECHO.
   IF "!ENABLE_BUILD_PACKAGES!" == "!FALSE!" (
  -	ECHO Building Library Dependencies
  -
  -	REM Determine if libuv needs to be built
  -	IF NOT EXIST "!ABSOLUTE_LIBUV_LIBRARY_DIRECTORY!" (
  -		SET IS_WINDOWS_SDK_ENABLED=!FALSE!
  -		IF DEFINED WINDOWS_SDK_SELECTED SET IS_WINDOWS_SDK_ENABLED=!TRUE!
  -		CALL :BUILDLIBUV "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!LIBUV_DIRECTORY!" "!ABSOLUTE_LIBUV_LIBRARY_DIRECTORY!" !TARGET_ARCHITECTURE! !LIBRARY_TYPE! !IS_WINDOWS_SDK_ENABLED! !FALSE! "!LOG_LIBUV_BUILD!"
  -		IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  -	)
  -
  -	REM Determine if zlib needs to be built
  -	IF !ENABLE_ZLIB! EQU !TRUE! (
  -		IF NOT EXIST "!ABSOLUTE_ZLIB_LIBRARY_DIRECTORY!" (
  -			CALL :BUILDZLIB "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!ZLIB_DIRECTORY!" "!ABSOLUTE_ZLIB_LIBRARY_DIRECTORY!" "!LOG_ZLIB_BUILD!"
  -			IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  -		)
  -	) ELSE (
  -		REM Indicate zlib is disabled
  -		SET ABSOLUTE_ZLIB_LIBRARY_DIRECTORY=
  -	)
  -
  -	REM Determine is OpenSSL should be built
  -	IF !ENABLE_OPENSSL! EQU !TRUE! (
  -		REM Determine if OpenSSL needs to be built
  -		IF NOT EXIST "!ABSOLUTE_OPENSSL_LIBRARY_DIRECTORY!" (
  -			REM Determine if OpenSSL should be built with zlib support
  -			CALL :BUILDOPENSSL "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!OPENSSL_DIRECTORY!" "!ABSOLUTE_OPENSSL_LIBRARY_DIRECTORY!" "!ABSOLUTE_ZLIB_LIBRARY_DIRECTORY!" !TARGET_ARCHITECTURE! !LIBRARY_TYPE! !FALSE! "!LOG_OPENSSL_BUILD!"
  -			IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  -		)
  -	) ELSE (
  -		REM Indicate OpenSSL is disabled
  -		SET ABSOLUTE_OPENSSL_LIBRARY_DIRECTORY=
  -	)
  -
  -	REM Determine is libssh2 should be built
  -	IF !ENABLE_LIBSSH2! EQU !TRUE! (
  -		REM Determine if libssh2 needs to be built
  -		IF NOT EXIST "!ABSOLUTE_LIBSSH2_LIBRARY_DIRECTORY!" (
  -			CALL :BUILDLIBSSH2 "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!LIBSSH2_DIRECTORY!" "!ABSOLUTE_LIBSSH2_LIBRARY_DIRECTORY!" "!ABSOLUTE_OPENSSL_LIBRARY_DIRECTORY!" "!ABSOLUTE_ZLIB_LIBRARY_DIRECTORY!" !TARGET_ARCHITECTURE! !VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSION! !FALSE! "!LOG_LIBSSH2_BUILD!"
  -			IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  -		)
  -	) ELSE (
  -		REM Indicate libssh2 is disabled
  -		SET ABSOLUTE_LIBSSH2_LIBRARY_DIRECTORY=
  -	)
  -
  -	REM Determine if driver should be built
  -	IF !BUILD_DEPENDENCIES_ONLY! EQU !FALSE! (
  -		ECHO.
  -		ECHO Building Driver
  -
  -		REM Determine if the driver needs to be built
  -		SET DRIVER_INSTALLATION_DIRECTORY_OVERRIDDEN=!TRUE!
  -		IF "!DRIVER_INSTALLATION_DIRECTORY!" == "" (
  -			SET "DRIVER_INSTALLATION_DIRECTORY=!ABSOLUTE_DRIVER_LIBRARY_DIRECTORY!"
  -			SET DRIVER_INSTALLATION_DIRECTORY_OVERRIDDEN=!FALSE!
  -		)
  -		IF NOT EXIST "!DRIVER_INSTALLATION_DIRECTORY!" (
  -			SET BOOST_DEPENDENCY_SOURCE_DIRECTORY=
  -			IF !USE_BOOST_ATOMIC! EQU !TRUE! SET "BOOST_DEPENDENCY_SOURCE_DIRECTORY=!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!BOOST_DIRECTORY!"
  -			CALL :BUILDDRIVER "!ABSOLUTE_BATCH_DIRECTORY!" "!ABSOLUTE_BUILD_DIRECTORY!\!DRIVER_DRIVER_DIRECTORY!" "!DRIVER_INSTALLATION_DIRECTORY!" "!ABSOLUTE_LIBUV_LIBRARY_DIRECTORY!" "!ABSOLUTE_OPENSSL_LIBRARY_DIRECTORY!" "!ABSOLUTE_ZLIB_LIBRARY_DIRECTORY!" "!BOOST_ROOT_DIRECTORY!" "!ABSOLUTE_LIBSSH2_LIBRARY_DIRECTORY!" !BUILD_TYPE! !TARGET_ARCHITECTURE! !LIBRARY_TYPE! !VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSION! !ENABLE_EXAMPLES! !ENABLE_TESTS! !ENABLE_INTEGRATION_TESTS! !ENABLE_UNIT_TESTS! !GENERATE_SOLUTION! "!BOOST_DEPENDENCY_SOURCE_DIRECTORY!" "!LOG_DRIVER_BUILD!"
  -			IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  -		)
  -
  -		REM Determine if dependencies should be copied
  -		IF !DRIVER_INSTALLATION_DIRECTORY_OVERRIDDEN! EQU !TRUE! (
  -			IF EXIST "!DRIVER_INSTALLATION_DIRECTORY!\..\" (
  -				ECHO | SET /P=Installing cpp-driver dependencies ... 
  -				XCOPY /E /Y "!ABSOLUTE_DEPENDENCIES_LIBRARIES_DIRECTORY!" "!DRIVER_INSTALLATION_DIRECTORY!\..\" >> "!LOG_DRIVER_BUILD!" 2>&1
  -				IF NOT !ERRORLEVEL! EQU 0 (
  -					ECHO FAILED!
  -					ECHO 	See !LOG_DRIVER_BUILD! for more details
  -				)
  -				ECHO done.
  -			)
  -		)
  -
  -		REM Display success message with location to built driver library
  -		ECHO.
  -		IF !DRIVER_GENERATE_SOLUTION! EQU !TRUE! (
  -			ECHO Visual Studio !VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSION! solution has been successfully generated
  -			ECHO 	!ABSOLUTE_BUILD_DIRECTORY!\!DRIVER_DRIVER_DIRECTORY!\cassandra.sln
  -		) ELSE (
  -			ECHO Driver has been successfully built [!TARGET_ARCHITECTURE!-bit !BUILD_TYPE!]
  -			ECHO 	!DRIVER_INSTALLATION_DIRECTORY!
  -		)
  -	) ELSE (
  -		REM Display success message with location to built dependencies
  -		ECHO.
  -		ECHO Dependencies have been successfully built [!TARGET_ARCHITECTURE!-bit !BUILD_TYPE!]
  -		ECHO 	!ABSOLUTE_DEPENDENCIES_DIRECTORY!
  -	)
  +  ECHO Building Library Dependencies
  +
  +  REM Determine if libuv needs to be built
  +  IF NOT EXIST "!ABSOLUTE_LIBUV_LIBRARY_DIRECTORY!" (
  +    CALL :BUILDLIBUV "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!LIBUV_DIRECTORY!" "!ABSOLUTE_LIBUV_LIBRARY_DIRECTORY!" !TARGET_ARCHITECTURE! !LIBRARY_TYPE! !VISUAL_STUDIO_VERSION! !FALSE! "!LOG_LIBUV_BUILD!"
  +    IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  +  )
  +
  +  REM Determine if zlib needs to be built
  +  IF !ENABLE_ZLIB! EQU !TRUE! (
  +    IF NOT EXIST "!ABSOLUTE_ZLIB_LIBRARY_DIRECTORY!" (
  +      CALL :BUILDZLIB "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!ZLIB_DIRECTORY!" "!ABSOLUTE_ZLIB_LIBRARY_DIRECTORY!" "!LOG_ZLIB_BUILD!"
  +      IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  +    )
  +  ) ELSE (
  +    REM Indicate zlib is disabled
  +    SET ABSOLUTE_ZLIB_LIBRARY_DIRECTORY=
  +  )
  +
  +  REM Determine is OpenSSL should be built
  +  IF !ENABLE_OPENSSL! EQU !TRUE! (
  +    REM Determine if OpenSSL needs to be built
  +    IF NOT EXIST "!ABSOLUTE_OPENSSL_LIBRARY_DIRECTORY!" (
  +      CALL :BUILDOPENSSL "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!OPENSSL_DIRECTORY!" "!ABSOLUTE_OPENSSL_LIBRARY_DIRECTORY!" "!ABSOLUTE_ZLIB_LIBRARY_DIRECTORY!" !TARGET_ARCHITECTURE! !LIBRARY_TYPE! !ENABLE_SHARED_OPENSSL! !OPENSSL_VERSION! !FALSE! "!LOG_OPENSSL_BUILD!"
  +      IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  +    )
  +  ) ELSE (
  +    REM Indicate OpenSSL is disabled
  +    SET ABSOLUTE_OPENSSL_LIBRARY_DIRECTORY=
  +  )
  +
  +  REM Determine is libssh2 should be built
  +  IF !ENABLE_LIBSSH2! EQU !TRUE! (
  +    REM Determine if libssh2 needs to be built
  +    IF NOT EXIST "!ABSOLUTE_LIBSSH2_LIBRARY_DIRECTORY!" (
  +      CALL :BUILDLIBSSH2 "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!LIBSSH2_DIRECTORY!" "!ABSOLUTE_LIBSSH2_LIBRARY_DIRECTORY!" "!ABSOLUTE_OPENSSL_LIBRARY_DIRECTORY!" "!ABSOLUTE_ZLIB_LIBRARY_DIRECTORY!" !TARGET_ARCHITECTURE! !VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSION! !FALSE! "!LOG_LIBSSH2_BUILD!"
  +      IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  +    )
  +  ) ELSE (
  +    REM Indicate libssh2 is disabled
  +    SET ABSOLUTE_LIBSSH2_LIBRARY_DIRECTORY=
  +  )
  +
  +  REM Determine if driver should be built
  +  IF !BUILD_DEPENDENCIES_ONLY! EQU !FALSE! (
  +    ECHO.
  +    ECHO Building Driver
  +
  +    REM Determine if the driver needs to be built
  +    SET DRIVER_INSTALLATION_DIRECTORY_OVERRIDDEN=!TRUE!
  +    IF "!DRIVER_INSTALLATION_DIRECTORY!" == "" (
  +      SET "DRIVER_INSTALLATION_DIRECTORY=!ABSOLUTE_DRIVER_LIBRARY_DIRECTORY!"
  +      SET DRIVER_INSTALLATION_DIRECTORY_OVERRIDDEN=!FALSE!
  +    )
  +    IF NOT EXIST "!DRIVER_INSTALLATION_DIRECTORY!" (
  +      SET BOOST_DEPENDENCY_SOURCE_DIRECTORY=
  +      IF !USE_BOOST_ATOMIC! EQU !TRUE! SET "BOOST_DEPENDENCY_SOURCE_DIRECTORY=!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!BOOST_DIRECTORY!"
  +      CALL :BUILDDRIVER "!ABSOLUTE_BATCH_DIRECTORY!" "!ABSOLUTE_BUILD_DIRECTORY!\!DRIVER_DRIVER_DIRECTORY!" "!DRIVER_INSTALLATION_DIRECTORY!" "!ABSOLUTE_LIBUV_LIBRARY_DIRECTORY!" "!ABSOLUTE_OPENSSL_LIBRARY_DIRECTORY!" "!ABSOLUTE_ZLIB_LIBRARY_DIRECTORY!" "!BOOST_ROOT_DIRECTORY!" "!ABSOLUTE_LIBSSH2_LIBRARY_DIRECTORY!" !BUILD_TYPE! !TARGET_ARCHITECTURE! !LIBRARY_TYPE! !VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSION! !ENABLE_EXAMPLES! !ENABLE_TESTS! !ENABLE_INTEGRATION_TESTS! !ENABLE_UNIT_TESTS! !GENERATE_SOLUTION! "!BOOST_DEPENDENCY_SOURCE_DIRECTORY!" "!LOG_DRIVER_BUILD!"
  +      IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  +    )
  +
  +    REM Determine if dependencies should be copied
  +    IF !DRIVER_INSTALLATION_DIRECTORY_OVERRIDDEN! EQU !TRUE! (
  +      IF EXIST "!DRIVER_INSTALLATION_DIRECTORY!\..\" (
  +        ECHO | SET /P="Installing cpp-driver dependencies ... "
  +        XCOPY /E /Y "!ABSOLUTE_DEPENDENCIES_LIBRARIES_DIRECTORY!" "!DRIVER_INSTALLATION_DIRECTORY!\..\" >> "!LOG_DRIVER_BUILD!" 2>&1
  +        IF NOT !ERRORLEVEL! EQU 0 (
  +          ECHO FAILED!
  +          ECHO 	See !LOG_DRIVER_BUILD! for more details
  +          EXIT /B !EXIT_CODE_BUILD_DRIVER_FAILED!
  +        )
  +        ECHO done.
  +      )
  +    )
  +
  +    REM Display success message with location to built driver library
  +    IF !DRIVER_GENERATE_SOLUTION! EQU !TRUE! (
  +      ECHO.
  +      ECHO Visual Studio !VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSION! solution has been successfully generated
  +      ECHO 	!ABSOLUTE_BUILD_DIRECTORY!\!DRIVER_DRIVER_DIRECTORY!\cassandra.sln
  +    ) ELSE (
  +      REM Determine if runtime libraries should be copied
  +      SET RUNTIME_LIBRARIES_REQUIRED=!FALSE!
  +      SET "DRIVER_BUILD_DIRECTORY=!ABSOLUTE_BUILD_DIRECTORY!\!DRIVER_DRIVER_DIRECTORY!"
  +      SET "DRIVER_RUNTIME_DIRECTORY=!DRIVER_BUILD_DIRECTORY!\!BUILD_TYPE!"
  +      IF !ENABLE_TESTS! EQU !TRUE! SET RUNTIME_LIBRARIES_REQUIRED=!TRUE!
  +      IF !ENABLE_INTEGRATION_TESTS! EQU !TRUE! SET RUNTIME_LIBRARIES_REQUIRED=!TRUE!
  +      IF !ENABLE_UNIT_TESTS! EQU !TRUE! SET RUNTIME_LIBRARIES_REQUIRED=!TRUE!
  +      IF !RUNTIME_LIBRARIES_REQUIRED! EQU !TRUE! (
  +        ECHO | SET /P="Copying runtime libraries for tests ... "
  +        IF !ENABLE_SHARED_OPENSSL! EQU !TRUE! (
  +          XCOPY /Y /E "!ABSOLUTE_OPENSSL_LIBRARY_DIRECTORY!\!LIBRARY_RUNTIME_DIRECTORY!\*.dll" "!DRIVER_RUNTIME_DIRECTORY!" >> "!LOG_DRIVER_BUILD!" 2>&1
  +          IF NOT !ERRORLEVEL! EQU 0 (
  +            ECHO FAILED!
  +            ECHO 	See !LOG_DRIVER_BUILD! for more details
  +            EXIT /B !EXIT_CODE_BUILD_DRIVER_FAILED!
  +          )
  +        )
  +        ECHO done.
  +      )
  +      IF !ENABLE_EXAMPLES! EQU !TRUE! (
  +        SET "EXAMPLES_DIRECTORY=!DRIVER_BUILD_DIRECTORY!\examples"
  +        ECHO | SET /P="Copying runtime libraries for examples ... "
  +        FOR /D %%A IN ("!EXAMPLES_DIRECTORY!\*") DO (
  +          SET "EXAMPLE_DIRECTORY=!EXAMPLES_DIRECTORY!\%%~NA\!BUILD_TYPE!"
  +          IF !ENABLE_SHARED_OPENSSL! EQU !TRUE! (
  +            XCOPY /Y /E "!ABSOLUTE_OPENSSL_LIBRARY_DIRECTORY!\!LIBRARY_RUNTIME_DIRECTORY!\*.dll" "!EXAMPLE_DIRECTORY!" >> "!LOG_DRIVER_BUILD!" 2>&1
  +            IF NOT !ERRORLEVEL! EQU 0 (
  +              ECHO FAILED!
  +              ECHO 	See !LOG_DRIVER_BUILD! for more details
  +              EXIT /B !EXIT_CODE_BUILD_DRIVER_FAILED!
  +            )
  +          )
  +        )
  +        ECHO done.
  +      )
  +
  +      REM Indicate the driver has been built
  +      ECHO.
  +      ECHO Driver has been successfully built [!TARGET_ARCHITECTURE!-bit !BUILD_TYPE!]
  +      ECHO 	!DRIVER_INSTALLATION_DIRECTORY!
  +    )
  +  ) ELSE (
  +    REM Display success message with location to built dependencies
  +    ECHO.
  +    ECHO Dependencies have been successfully built [!TARGET_ARCHITECTURE!-bit !BUILD_TYPE!]
  +    ECHO 	!ABSOLUTE_DEPENDENCIES_DIRECTORY!
  +  )
   ) ELSE (
  -	REM Ensure the Windows SDK version is undefined (unset)
  -	IF DEFINED WindowsSDKDir SET WindowsSDKDir=
  -
  -	REM Store current Visual Studio tools environment variables
  -	FOR %%A IN (!VISUAL_STUDIO_INTERNAL_VERSIONS!) DO (
  -		SET "STORED_VS%%ACOMNTOOLS=!VS%%ACOMNTOOLS!"
  -	)
  -
  -	REM Iterate through all available Visual Studio versions
  -	SET INDEX=0
  -	SET "STORED_PATH=!PATH!"
  -	FOR %%A IN (!AVAILABLE_VISUAL_STUDIO_VERSIONS!) DO (
  -		SET /A INDEX+=1
  -		CALL :GETARRAYELEMENT VISUAL_STUDIO_VERSIONS %%A VISUAL_STUDIO_VERSION
  -		CALL :GETARRAYELEMENT AVAILABLE_VISUAL_STUDIO_VERSIONS !INDEX! USER_SELECTION
  -		CALL :GETARRAYELEMENT VISUAL_STUDIO_INTERNAL_VERSIONS !USER_SELECTION! VISUAL_STUDIO_INTERNAL_VERSION
  -		CALL :GETARRAYELEMENT VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSIONS !USER_SELECTION! VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSION
  -		CALL :GETARRAYELEMENT VISUAL_STUDIO_VERSIONS !USER_SELECTION! VISUAL_STUDIO_VERSION	
  -
  -		REM Determine if both 32 and 64-bit targets can be built
  -		SET AVAILABLE_TARGET_ARCHITECTURES=!ARCHITECTURE_32BIT!
  -		IF !SYSTEM_ARCHITECTURE! EQU !ARCHITECTURE_64BIT! (
  -			SET "AVAILABLE_TARGET_ARCHITECTURES=!AVAILABLE_TARGET_ARCHITECTURES! !ARCHITECTURE_64BIT!"
  -		)
  -
  -		REM Ensure the other versions of VSXXXCOMNTOOLS are undefined (unset)
  -		FOR %%B IN (!VISUAL_STUDIO_INTERNAL_VERSIONS!) DO (
  -			SET VS%%BCOMNTOOLS=
  -			IF %%B EQU !VISUAL_STUDIO_INTERNAL_VERSION! SET "VS%%BCOMNTOOLS=!STORED_VS%%BCOMNTOOLS!"
  -		)
  -
  -		REM Iterate through all available target architectures
  -		FOR %%C IN (!AVAILABLE_TARGET_ARCHITECTURES!) DO (
  -			REM Setup the Visual Studio environment
  -			CALL :CONFIGUREVISUALSTUDIOENVIRONMENT !VISUAL_STUDIO_INTERNAL_VERSION! %%C
  -			CALL :GETFULLPATH "!DEVENV!" DEVENV_FOUND
  -			CALL :GETFULLPATH "!MSBUILD!" MSBUILD_FOUND
  -			CALL :GETFULLPATH "!NMAKE!" NMAKE_FOUND
  -
  -			REM Create the base installation locations
  -			SET DRIVER_PACKAGE_INSTALLATION_DIRECTORY=win%%C\msvc!VISUAL_STUDIO_INTERNAL_VERSION!
  -			SET DEPENDENCY_PACKAGE_INSTALLATION_DIRECTORY=!DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!DEPENDENCIES_DIRECTORY!
  -			SET "ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY=!ABSOLUTE_PACKAGES_DIRECTORY!\!DRIVER_PACKAGE_INSTALLATION_DIRECTORY!"
  -
  -			REM Iterate through shared and static builds
  -			FOR %%D IN (!LIBRARY_TYPE_SHARED! !LIBRARY_TYPE_STATIC!) DO (
  -				REM Display summary of build options
  -				ECHO Building %%D Visual Studio !VISUAL_STUDIO_VERSION! Win%%C Package
  -
  -				REM Create the installation locations
  -				CALL :LOWERCASE %%D LOWERCASE_LIBRARY_TYPE
  -				SET DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY=!DEPENDENCY_PACKAGE_INSTALLATION_DIRECTORY!\!LIBUV_DIRECTORY!\!LOWERCASE_LIBRARY_TYPE!
  -				SET DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY=!DEPENDENCY_PACKAGE_INSTALLATION_DIRECTORY!\!OPENSSL_DIRECTORY!\!LOWERCASE_LIBRARY_TYPE!
  -				SET "ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY=!ABSOLUTE_PACKAGES_DIRECTORY!\!DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!"
  -				SET "ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY=!ABSOLUTE_PACKAGES_DIRECTORY!\!DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!"
  -
  -				REM Build the dependencies and driver
  -				CALL :BUILDLIBUV "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!LIBUV_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!" %%C %%D !FALSE! !TRUE! "!LOG_LIBUV_BUILD!"
  -				IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  -				CALL :BUILDOPENSSL "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!OPENSSL_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!" "" %%C %%D !TRUE! "!LOG_OPENSSL_BUILD!"
  -				IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  -				IF !BUILD_DEPENDENCIES_ONLY! EQU !FALSE! (
  -					IF EXIST "!ABSOLUTE_BUILD_DIRECTORY!\!DRIVER_DRIVER_DIRECTORY!" CALL :CLEANDIRECTORY "!ABSOLUTE_BUILD_DIRECTORY!\!DRIVER_DRIVER_DIRECTORY!" "Cleaning driver library directory"
  -					SET BOOST_DEPENDENCY_SOURCE_DIRECTORY=
  -					IF !VISUAL_STUDIO_VERSION! EQU 2010 SET "BOOST_DEPENDENCY_SOURCE_DIRECTORY=!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!BOOST_DIRECTORY!"
  -					CALL :BUILDDRIVER "!ABSOLUTE_BATCH_DIRECTORY!" "!ABSOLUTE_BUILD_DIRECTORY!\!DRIVER_DRIVER_DIRECTORY!" "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!" "" "" "" !BUILD_TYPE_RELEASE! %%C %%D !VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSION! !FALSE! !FALSE! !FALSE! !FALSE! !GENERATE_SOLUTION! "!BOOST_DEPENDENCY_SOURCE_DIRECTORY!" "!LOG_DRIVER_BUILD!"
  -					IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  -				)
  -
  -				REM Build libssh2 (static) as well for dependency only builds
  -				IF !ENABLE_LIBSSH2! EQU !TRUE! (
  -					IF "%%D" == "!LIBRARY_TYPE_STATIC!" (
  -						SET DEPENDENCY_PACKAGE_LIBSSH2_INSTALLATION_DIRECTORY=!DEPENDENCY_PACKAGE_INSTALLATION_DIRECTORY!\!LIBSSH2_DIRECTORY!
  -						SET "ABSOLUTE_DEPENDENCY_PACKAGE_LIBSSH2_INSTALLATION_DIRECTORY=!ABSOLUTE_PACKAGES_DIRECTORY!\!DEPENDENCY_PACKAGE_LIBSSH2_INSTALLATION_DIRECTORY!"
  -						CALL :BUILDLIBSSH2 "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!LIBSSH2_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBSSH2_INSTALLATION_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!" "" %%C !VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSION! !TRUE! "!LOG_LIBSSH2_BUILD!"
  -						IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  -					)
  -				)
  -
  -				REM Clean-up the dependency packages
  -				IF NOT EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\..\!LIBRARY_INCLUDE_DIRECTORY!" MOVE /Y "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\..\!LIBRARY_INCLUDE_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  -				IF EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!" RMDIR /S /Q "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  -				IF NOT EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\..\!LIBRARY_INCLUDE_DIRECTORY!" MOVE /Y "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\..\!LIBRARY_INCLUDE_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  -				IF NOT EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\openssl.cnf" MOVE /Y "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\openssl.cnf" "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  -				IF EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!" RMDIR /S /Q "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  -				IF EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\openssl.cnf" ERASE /S /Q "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\openssl.cnf" >> "!LOG_PACKAGE_BUILD!" 2>&1
  -
  -				REM Copy distribution files into packages
  -				IF NOT EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\..\LICENSE" COPY /Y "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!LIBUV_DIRECTORY!\LICENSE" "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\.." >> "!LOG_PACKAGE_BUILD!" 2>&1
  -				IF NOT EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\..\LICENSE" COPY /Y "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!OPENSSL_DIRECTORY!\LICENSE" "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\.." >> "!LOG_PACKAGE_BUILD!" 2>&1
  -				IF !BUILD_DEPENDENCIES_ONLY! EQU !FALSE! (
  -					IF NOT EXIST "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\CHANGELOG.md" COPY /Y "!ABSOLUTE_BATCH_DIRECTORY!\CHANGELOG.md" "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  -					IF NOT EXIST "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\LICENSE.txt" COPY /Y "!ABSOLUTE_BATCH_DIRECTORY!\LICENSE.txt" "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  -					IF NOT EXIST "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\README.md" COPY /Y "!ABSOLUTE_BATCH_DIRECTORY!\README.md" "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  -				)
  -
  -				REM Skip a line on the display
  -				ECHO.
  -			)
  -
  -			REM Build the zip packages for the current target architecture and Visual Studio version
  -			IF !BUILD_DEPENDENCIES_ONLY! EQU !FALSE! (
  -				ECHO | SET /P=Building the driver package for Win%%C MSVC!VISUAL_STUDIO_INTERNAL_VERSION! ... 
  -				ECHO !ZIP! a -tzip !ABSOLUTE_PACKAGES_DIRECTORY!\!BUILD_PACKAGE_PREFIX!-!BUILD_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip -r !ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\ -xr^^!!DEPENDENCIES_DIRECTORY! >> "!LOG_PACKAGE_BUILD!"
  -				!ZIP! a -tzip "!ABSOLUTE_PACKAGES_DIRECTORY!\!BUILD_PACKAGE_PREFIX!-!BUILD_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip" -r "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\*" -xr^^!!DEPENDENCIES_DIRECTORY! >> "!LOG_PACKAGE_BUILD!" 2>&1
  -				IF NOT !ERRORLEVEL! EQU 0 (
  -					ECHO FAILED!
  -					ECHO 	See !LOG_PACKAGE_BUILD! for more details
  -					EXIT /B !EXIT_CODE_PACKAGE_FAILED!
  -				)
  -				ECHO done.
  -			)
  -			ECHO | SET /P=Building the libuv package for Win%%C MSVC!VISUAL_STUDIO_INTERNAL_VERSION! ... 
  -			ECHO !ZIP! a -tzip "!ABSOLUTE_PACKAGES_DIRECTORY!\libuv-!LIBUV_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip" -r !ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!DEPENDENCIES_DIRECTORY!\!LIBUV_DIRECTORY!\ >> "!LOG_PACKAGE_BUILD!"
  -			!ZIP! a -tzip "!ABSOLUTE_PACKAGES_DIRECTORY!\libuv-!LIBUV_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip" -r "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!DEPENDENCIES_DIRECTORY!\!LIBUV_DIRECTORY!\*" >> "!LOG_PACKAGE_BUILD!" 2>&1
  -			IF NOT !ERRORLEVEL! EQU 0 (
  -				ECHO FAILED!
  -				ECHO 	See !LOG_PACKAGE_BUILD! for more details
  -				EXIT /B !EXIT_CODE_PACKAGE_FAILED!
  -			)
  -			ECHO done.
  -			ECHO | SET /P=Building the OpenSSL package for Win%%C MSVC!VISUAL_STUDIO_INTERNAL_VERSION! ... 
  -			ECHO !ZIP! a -tzip !ABSOLUTE_PACKAGES_DIRECTORY!\openssl-!OPENSSL_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip -r !ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!OPENSSL_DIRECTORY!\ >> "!LOG_PACKAGE_BUILD!"
  -			!ZIP! a -tzip "!ABSOLUTE_PACKAGES_DIRECTORY!\openssl-!OPENSSL_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip" -r "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!DEPENDENCIES_DIRECTORY!\!OPENSSL_DIRECTORY!\*" >> "!LOG_PACKAGE_BUILD!" 2>&1
  -			IF NOT !ERRORLEVEL! EQU 0 (
  -				ECHO FAILED!
  -				ECHO 	See !LOG_PACKAGE_BUILD! for more details
  -				EXIT /B !EXIT_CODE_PACKAGE_FAILED!
  -			)
  -			ECHO done.
  -			IF !ENABLE_LIBSSH2! EQU !TRUE! (
  -				ECHO | SET /P=Building the libssh2 package for Win%%C MSVC!VISUAL_STUDIO_INTERNAL_VERSION! ... 
  -				ECHO !ZIP! a -tzip "!ABSOLUTE_PACKAGES_DIRECTORY!\libssh2-!LIBSSH2_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip" -r !ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!DEPENDENCIES_DIRECTORY!\!LIBSSH2_DIRECTORY!\ >> "!LOG_PACKAGE_BUILD!"
  -				!ZIP! a -tzip "!ABSOLUTE_PACKAGES_DIRECTORY!\libssh2-!LIBSSH2_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip" -r "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!DEPENDENCIES_DIRECTORY!\!LIBSSH2_DIRECTORY!\*" >> "!LOG_PACKAGE_BUILD!" 2>&1
  -				IF NOT !ERRORLEVEL! EQU 0 (
  -					ECHO FAILED!
  -					ECHO 	See !LOG_PACKAGE_BUILD! for more details
  -					EXIT /B !EXIT_CODE_PACKAGE_FAILED!
  -				)
  -				ECHO done.
  -			)
  -			ECHO.
  -
  -			REM Reset the system PATH
  -			SET "PATH=!STORED_PATH!"
  -		)
  -	)
  +  REM Ensure the Windows SDK version is undefined (unset)
  +  IF DEFINED WindowsSDKDir SET WindowsSDKDir=
  +
  +  REM Store current Visual Studio tools environment variables
  +  FOR %%A IN (!VISUAL_STUDIO_INTERNAL_VERSIONS!) DO (
  +    SET "STORED_VS%%ACOMNTOOLS=!VS%%ACOMNTOOLS!"
  +  )
  +
  +  REM Iterate through all available Visual Studio versions
  +  SET INDEX=0
  +  SET "STORED_PATH=!PATH!"
  +  FOR %%A IN (!AVAILABLE_VISUAL_STUDIO_VERSIONS!) DO (
  +    SET /A INDEX+=1
  +    CALL :GETARRAYELEMENT VISUAL_STUDIO_VERSIONS %%A VISUAL_STUDIO_VERSION
  +    CALL :GETARRAYELEMENT AVAILABLE_VISUAL_STUDIO_VERSIONS !INDEX! USER_SELECTION
  +    CALL :GETARRAYELEMENT VISUAL_STUDIO_INTERNAL_VERSIONS !USER_SELECTION! VISUAL_STUDIO_INTERNAL_VERSION
  +    CALL :GETARRAYELEMENT VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSIONS !USER_SELECTION! VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSION
  +    CALL :GETARRAYELEMENT VISUAL_STUDIO_VERSIONS !USER_SELECTION! VISUAL_STUDIO_VERSION
  +
  +    REM Determine if both 32 and 64-bit targets can be built
  +    SET AVAILABLE_TARGET_ARCHITECTURES=!ARCHITECTURE_32BIT!
  +    IF !SYSTEM_ARCHITECTURE! EQU !ARCHITECTURE_64BIT! (
  +      SET "AVAILABLE_TARGET_ARCHITECTURES=!AVAILABLE_TARGET_ARCHITECTURES! !ARCHITECTURE_64BIT!"
  +    )
  +
  +    REM Ensure the other versions of VSXXXCOMNTOOLS are undefined (unset)
  +    FOR %%B IN (!VISUAL_STUDIO_INTERNAL_VERSIONS!) DO (
  +      SET VS%%BCOMNTOOLS=
  +      IF %%B EQU !VISUAL_STUDIO_INTERNAL_VERSION! SET "VS%%BCOMNTOOLS=!STORED_VS%%BCOMNTOOLS!"
  +    )
  +
  +    REM Iterate through all available target architectures
  +    FOR %%C IN (!AVAILABLE_TARGET_ARCHITECTURES!) DO (
  +      REM Setup the Visual Studio environment
  +      CALL :CONFIGUREVISUALSTUDIOENVIRONMENT !VISUAL_STUDIO_INTERNAL_VERSION! !VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSION! %%C
  +      CALL :GETFULLPATH "!DEVENV!" DEVENV_FOUND
  +      CALL :GETFULLPATH "!MSBUILD!" MSBUILD_FOUND
  +      CALL :GETFULLPATH "!NMAKE!" NMAKE_FOUND
  +
  +      REM Create the base installation locations
  +      SET DRIVER_PACKAGE_INSTALLATION_DIRECTORY=win%%C\msvc!VISUAL_STUDIO_INTERNAL_VERSION!
  +      SET DEPENDENCY_PACKAGE_INSTALLATION_DIRECTORY=!DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!DEPENDENCIES_DIRECTORY!
  +      SET "ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY=!ABSOLUTE_PACKAGES_DIRECTORY!\!DRIVER_PACKAGE_INSTALLATION_DIRECTORY!"
  +
  +      REM Iterate through shared and static builds
  +      FOR %%D IN (!LIBRARY_TYPE_SHARED! !LIBRARY_TYPE_STATIC!) DO (
  +        REM Display summary of build options
  +        ECHO Building %%D Visual Studio !VISUAL_STUDIO_VERSION! Win%%C Package
  +
  +        REM Create the installation locations
  +        CALL :LOWERCASE %%D LOWERCASE_LIBRARY_TYPE
  +        SET DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY=!DEPENDENCY_PACKAGE_INSTALLATION_DIRECTORY!\!LIBUV_DIRECTORY!\!LOWERCASE_LIBRARY_TYPE!
  +        SET DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY=!DEPENDENCY_PACKAGE_INSTALLATION_DIRECTORY!\!OPENSSL_DIRECTORY!\!LOWERCASE_LIBRARY_TYPE!
  +        SET "ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY=!ABSOLUTE_PACKAGES_DIRECTORY!\!DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!"
  +        SET "ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY=!ABSOLUTE_PACKAGES_DIRECTORY!\!DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!"
  +
  +        REM Build the dependencies and driver
  +        CALL :BUILDLIBUV "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!LIBUV_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!" %%C %%D !VISUAL_STUDIO_VERSION! !TRUE! "!LOG_LIBUV_BUILD!"
  +        IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  +        CALL :BUILDOPENSSL "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!OPENSSL_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!" "" %%C %%D !FALSE! !OPENSSL_VERSION! !TRUE! "!LOG_OPENSSL_BUILD!"
  +        IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  +        IF !BUILD_DEPENDENCIES_ONLY! EQU !FALSE! (
  +          IF EXIST "!ABSOLUTE_BUILD_DIRECTORY!\!DRIVER_DRIVER_DIRECTORY!" CALL :CLEANDIRECTORY "!ABSOLUTE_BUILD_DIRECTORY!\!DRIVER_DRIVER_DIRECTORY!" "Cleaning driver library directory"
  +          SET BOOST_DEPENDENCY_SOURCE_DIRECTORY=
  +          IF !VISUAL_STUDIO_VERSION! EQU 2010 SET "BOOST_DEPENDENCY_SOURCE_DIRECTORY=!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!BOOST_DIRECTORY!"
  +          CALL :BUILDDRIVER "!ABSOLUTE_BATCH_DIRECTORY!" "!ABSOLUTE_BUILD_DIRECTORY!\!DRIVER_DRIVER_DIRECTORY!" "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!" "" "" "" !BUILD_TYPE_RELEASE! %%C %%D !VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSION! !FALSE! !FALSE! !FALSE! !FALSE! !GENERATE_SOLUTION! "!BOOST_DEPENDENCY_SOURCE_DIRECTORY!" "!LOG_DRIVER_BUILD!"
  +          IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  +        )
  +
  +        REM Build libssh2 (static) as well for dependency only builds
  +        IF !ENABLE_LIBSSH2! EQU !TRUE! (
  +          IF "%%D" == "!LIBRARY_TYPE_STATIC!" (
  +            SET DEPENDENCY_PACKAGE_LIBSSH2_INSTALLATION_DIRECTORY=!DEPENDENCY_PACKAGE_INSTALLATION_DIRECTORY!\!LIBSSH2_DIRECTORY!
  +            SET "ABSOLUTE_DEPENDENCY_PACKAGE_LIBSSH2_INSTALLATION_DIRECTORY=!ABSOLUTE_PACKAGES_DIRECTORY!\!DEPENDENCY_PACKAGE_LIBSSH2_INSTALLATION_DIRECTORY!"
  +            CALL :BUILDLIBSSH2 "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!LIBSSH2_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBSSH2_INSTALLATION_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!" "" %%C !VISUAL_STUDIO_INTERNAL_SHORTHAND_VERSION! !TRUE! "!LOG_LIBSSH2_BUILD!"
  +            IF !ERRORLEVEL! NEQ 0 EXIT /B !ERRORLEVEL!
  +          )
  +        )
  +
  +        REM Clean-up the dependency packages
  +        IF NOT EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\..\!LIBRARY_INCLUDE_DIRECTORY!" MOVE /Y "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\..\!LIBRARY_INCLUDE_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  +        IF EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!" RMDIR /S /Q "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  +        IF NOT EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\..\!LIBRARY_INCLUDE_DIRECTORY!" MOVE /Y "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!" "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\..\!LIBRARY_INCLUDE_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  +        IF NOT EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\openssl.cnf" MOVE /Y "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\openssl.cnf" "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  +        IF EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!" RMDIR /S /Q "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  +        IF EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\openssl.cnf" ERASE /S /Q "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\openssl.cnf" >> "!LOG_PACKAGE_BUILD!" 2>&1
  +
  +        REM Copy distribution files into packages
  +        IF NOT EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\..\LICENSE" COPY /Y "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!LIBUV_DIRECTORY!\LICENSE" "!ABSOLUTE_DEPENDENCY_PACKAGE_LIBUV_INSTALLATION_DIRECTORY!\.." >> "!LOG_PACKAGE_BUILD!" 2>&1
  +        IF NOT EXIST "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\..\LICENSE" COPY /Y "!ABSOLUTE_DEPENDENCIES_DIRECTORY!\!DEPENDENCIES_SOURCE_DIRECTORY!\!OPENSSL_DIRECTORY!\LICENSE" "!ABSOLUTE_DEPENDENCY_PACKAGE_OPENSSL_INSTALLATION_DIRECTORY!\.." >> "!LOG_PACKAGE_BUILD!" 2>&1
  +        IF !BUILD_DEPENDENCIES_ONLY! EQU !FALSE! (
  +          IF NOT EXIST "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\CHANGELOG.md" COPY /Y "!ABSOLUTE_BATCH_DIRECTORY!\CHANGELOG.md" "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  +          IF NOT EXIST "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\LICENSE.txt" COPY /Y "!ABSOLUTE_BATCH_DIRECTORY!\LICENSE.txt" "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  +          IF NOT EXIST "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\README.md" COPY /Y "!ABSOLUTE_BATCH_DIRECTORY!\README.md" "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!" >> "!LOG_PACKAGE_BUILD!" 2>&1
  +        )
  +
  +        REM Skip a line on the display
  +        ECHO.
  +      )
  +
  +      REM Build the zip packages for the current target architecture and Visual Studio version
  +      IF !BUILD_DEPENDENCIES_ONLY! EQU !FALSE! (
  +        ECHO | SET /P="Building the driver package for Win%%C MSVC!VISUAL_STUDIO_INTERNAL_VERSION! ... "
  +        ECHO !ZIP! a -tzip !ABSOLUTE_PACKAGES_DIRECTORY!\!BUILD_PACKAGE_PREFIX!-!BUILD_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip -r !ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\ -xr^^!!DEPENDENCIES_DIRECTORY! >> "!LOG_PACKAGE_BUILD!"
  +        !ZIP! a -tzip "!ABSOLUTE_PACKAGES_DIRECTORY!\!BUILD_PACKAGE_PREFIX!-!BUILD_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip" -r "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\*" -xr^^!!DEPENDENCIES_DIRECTORY! >> "!LOG_PACKAGE_BUILD!" 2>&1
  +        IF NOT !ERRORLEVEL! EQU 0 (
  +          ECHO FAILED!
  +          ECHO 	See !LOG_PACKAGE_BUILD! for more details
  +          EXIT /B !EXIT_CODE_PACKAGE_FAILED!
  +        )
  +        ECHO done.
  +      )
  +      ECHO | SET /P="Building the libuv package for Win%%C MSVC!VISUAL_STUDIO_INTERNAL_VERSION! ... "
  +      ECHO !ZIP! a -tzip "!ABSOLUTE_PACKAGES_DIRECTORY!\libuv-!LIBUV_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip" -r !ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!DEPENDENCIES_DIRECTORY!\!LIBUV_DIRECTORY!\ >> "!LOG_PACKAGE_BUILD!"
  +      !ZIP! a -tzip "!ABSOLUTE_PACKAGES_DIRECTORY!\libuv-!LIBUV_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip" -r "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!DEPENDENCIES_DIRECTORY!\!LIBUV_DIRECTORY!\*" >> "!LOG_PACKAGE_BUILD!" 2>&1
  +      IF NOT !ERRORLEVEL! EQU 0 (
  +        ECHO FAILED!
  +        ECHO 	See !LOG_PACKAGE_BUILD! for more details
  +        EXIT /B !EXIT_CODE_PACKAGE_FAILED!
  +      )
  +      ECHO done.
  +      ECHO | SET /P="Building the OpenSSL package for Win%%C MSVC!VISUAL_STUDIO_INTERNAL_VERSION! ... "
  +      ECHO !ZIP! a -tzip !ABSOLUTE_PACKAGES_DIRECTORY!\openssl-!OPENSSL_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip -r !ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!OPENSSL_DIRECTORY!\ >> "!LOG_PACKAGE_BUILD!"
  +      !ZIP! a -tzip "!ABSOLUTE_PACKAGES_DIRECTORY!\openssl-!OPENSSL_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip" -r "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!DEPENDENCIES_DIRECTORY!\!OPENSSL_DIRECTORY!\*" >> "!LOG_PACKAGE_BUILD!" 2>&1
  +      IF NOT !ERRORLEVEL! EQU 0 (
  +        ECHO FAILED!
  +        ECHO 	See !LOG_PACKAGE_BUILD! for more details
  +        EXIT /B !EXIT_CODE_PACKAGE_FAILED!
  +      )
  +      ECHO done.
  +      IF !ENABLE_LIBSSH2! EQU !TRUE! (
  +        ECHO | SET /P="Building the libssh2 package for Win%%C MSVC!VISUAL_STUDIO_INTERNAL_VERSION! ... "
  +        ECHO !ZIP! a -tzip "!ABSOLUTE_PACKAGES_DIRECTORY!\libssh2-!LIBSSH2_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip" -r !ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!DEPENDENCIES_DIRECTORY!\!LIBSSH2_DIRECTORY!\ >> "!LOG_PACKAGE_BUILD!"
  +        !ZIP! a -tzip "!ABSOLUTE_PACKAGES_DIRECTORY!\libssh2-!LIBSSH2_PACKAGE_VERSION!-win%%C-msvc!VISUAL_STUDIO_INTERNAL_VERSION!.zip" -r "!ABSOLUTE_DRIVER_PACKAGE_INSTALLATION_DIRECTORY!\!DEPENDENCIES_DIRECTORY!\!LIBSSH2_DIRECTORY!\*" >> "!LOG_PACKAGE_BUILD!" 2>&1
  +        IF NOT !ERRORLEVEL! EQU 0 (
  +          ECHO FAILED!
  +          ECHO 	See !LOG_PACKAGE_BUILD! for more details
  +          EXIT /B !EXIT_CODE_PACKAGE_FAILED!
  +        )
  +        ECHO done.
  +      )
  +      ECHO.
  +
  +      REM Reset the system PATH
  +      SET "PATH=!STORED_PATH!"
  +    )
  +  )
   )
   
   REM Disable delayed expansion
  
positive.code: REM @param return-minor Minor version number parsed from version
  REM @param return-patch Patch version number parsed from version
  :GETVERSIONINFORMATION [version] [return-major] [return-minor] [return-patch]
  	FOR /F "TOKENS=1,2,3* DELIMS=." %%A IN ("%~1") DO (
  		SET %~2=%%A
  		SET %~3=%%B
  		SET %~4=%%C
  	)
  	EXIT /B
  
  REM Configure the Windows SDK environment
  REM
  REM @param build-type Debug or release
  REM @param target-architecture 32 or 64-bit
  :CONFIGUREWINDOWSSDKENVIRONMENT [build-type] [target-architecture]
  	REM Ensure Windows SDK environment is configured correctly
  	IF "%~1" == "!BUILD_TYPE_DEBUG!" CALL SetEnv /Debug > NUL 2>&1
  	IF "%~1" == "!BUILD_TYPE_RELEASE!" CALL SetEnv /Release > NUL 2>&1
  	IF "%~2" == "!ARCHITECTURE_32BIT!" CALL SetEnv /x86 > NUL 2>&1
  	IF "%~2" == "!ARCHITECTURE_64BIT!" CALL SetEnv /x64 > NUL 2>&1
  	EXIT /B
  
  REM Configure Visual Studio environment
  REM
  REM @param internal-version Visual Studio internal version (e.b 100, 110,
  REM                         120, 140, WINSDK)
  REM @param target-architecture 32 or 64-bit
  :CONFIGUREVISUALSTUDIOENVIRONMENT [internal-version] [target-architecture]
  	SET VISUAL_STUDIO_ENVIRONMENT_VARIABLE=VS%~1COMNTOOLS
  	CALL :GETVALUE !VISUAL_STUDIO_ENVIRONMENT_VARIABLE! VISUAL_STUDIO_COMMON_TOOLS_DIRECTORY
  	IF %~2 EQU !ARCHITECTURE_32BIT! (
  		IF NOT EXIST "!VISUAL_STUDIO_COMMON_TOOLS_DIRECTORY!\vsvars32.bat" (
  			ECHO Unable to Setup 32-bit Build Environment: !VISUAL_STUDIO_COMMON_TOOLS_DIRECTORY!\vsvars32.bat is missing
  			EXIT /B !EXIT_CODE_MISSING_VISUAL_STUDIO!
  		)
  		CALL "!VISUAL_STUDIO_COMMON_TOOLS_DIRECTORY!\vsvars32.bat"
  	) ELSE (
  		IF NOT EXIST "!VISUAL_STUDIO_COMMON_TOOLS_DIRECTORY!\..\..\VC\bin\x86_amd64\vcvarsx86_amd64.bat" (
  			ECHO Unable to Setup 64-bit Build Environment: !VISUAL_STUDIO_COMMON_TOOLS_DIRECTORY!\..\..\VC\bin\x86_amd64\vcvarsx86_amd64.bat is missing
  			EXIT /B !EXIT_CODE_MISSING_VISUAL_STUDIO!
  		)
  		CALL "!VISUAL_STUDIO_COMMON_TOOLS_DIRECTORY!\..\..\VC\bin\x86_amd64\vcvarsx86_amd64.bat"
  	)
  	EXIT /B
  
  REM Clean/Delete a directory
  REM
  REM @param directory Directory to clean
  REM @param message Message to display during clean
  :CLEANDIRECTORY [directory] [message]
  	IF EXIST "%~1" (
  		ECHO | SET /P=%~2 ... 
  		RMDIR /S /Q "%~1" > NUL 2>&1
  		IF NOT EXIST "%~1" (
  			ECHO done.
  		) ELSE (
  			ECHO not fully cleaned ... directory is in use.
  		)
  	)
  	EXIT /B
  
  REM Shorten a directory/path
  REM
  REM @param directory Directory to shorten
  REM @parem return-directory Shortened directory
  :SHORTENPATH [directory] [return-directory]
  	FOR %%A IN ("%~1") DO SET %~2=%%~SA
  	EXIT /B
  
  REM Build the libuv library
  REM
  
negative.code: REM @param install-directory Location to install libuv library
  REM @param target-architecture 32 or 64-bit
  REM @param library-type Shared or static
  REM @param visual-studio-version Shortened Visual Studio version
  REM @param is-clean-after-install True if clean should be performed after
  REM                               install; false otherwise
  REM @param log-filename Absolute path and filename for log output
  :BUILDLIBUV [source-directory] [install-directory] [target-architecture] [library-type] [visual-studio-version] [is-clean-after-install] [log-filename]
    REM Create library variables from arguments
    SET "LIBUV_SOURCE_DIRECTORY=%~1"
    SHIFT
    SET "LIBUV_INSTALL_DIRECTORY=%~1"
    SHIFT
    SET LIBUV_TARGET_ARCHITECTURE=%~1
    SHIFT
    SET "LIBUV_LIBRARY_TYPE=%~1"
    SHIFT
    SET "LIBUV_VISUAL_STUDIO_VERSION=%~1"
    SHIFT
    SET LIBUV_IS_CLEAN_AFTER_INSTALL=%~1
    SHIFT
    SET "LIBUV_LOG_FILENAME=%~1"
  
    REM Build libuv dependency
    ECHO Building libuv
    PUSHD "!LIBUV_SOURCE_DIRECTORY!" > NUL
    IF !LIBUV_TARGET_ARCHITECTURE! EQU !ARCHITECTURE_32BIT! (
      SET LIBUV_TARGET_ARCHITECTURE=x86
      SET LIBUV_VC_TARGET_ARCHITECTURE=Win32
    ) ELSE (
      SET LIBUV_TARGET_ARCHITECTURE=x64
      SET LIBUV_VC_TARGET_ARCHITECTURE=x64
    )
    IF "!LIBUV_LIBRARY_TYPE!" == "!LIBRARY_TYPE_SHARED!" (
      SET LIBUV_LIBRARY_TYPE=shared
    ) ELSE (
      SET LIBUV_LIBRARY_TYPE=static
    )
    ECHO | SET /P="Configuring libuv ... "
    REM Modify the libuv build script to ensure proper Visual Studio detection
    SET LIBUV_VCBUILD_SCRIPT=vcbuild.bat
    SET LIBUV_VCBUILD_SCRIPT=vcbuild-modified.bat
    TYPE vcbuild.bat | FINDSTR /V /C:"if defined WindowsSDKDir goto select-target" | FINDSTR /V /C:"if defined VCINSTALLDIR goto select-target" > !LIBUV_VCBUILD_SCRIPT!
    REM Handle long PATH issues that can be manifested by calling vcvarsall.bat
    IF DEFINED INCLUDE (
      SET "STORED_INCLUDE=!INCLUDE!"
      SET INCLUDE=
    )
    IF DEFINED LIB (
      SET "STORED_LIB=!LIB!"
      SET LIB=
    )
    IF DEFINED LIBPATH (
      SET "STORED_LIBPATH=!LIBPATH!"
      SET LIBPATH=
    )
    IF DEFINED STORED_PATH (
      SET BEFORE_BATCH_CALL_PATH=!PATH!
      SET PATH=!STORED_PATH!
    )
    ECHO !LIBUV_VCBUILD_SCRIPT! release nobuild vs!LIBUV_VISUAL_STUDIO_VERSION! !LIBUV_TARGET_ARCHITECTURE! !LIBUV_LIBRARY_TYPE! >> "!LIBUV_LOG_FILENAME!"
    CALL !LIBUV_VCBUILD_SCRIPT! release nobuild vs!LIBUV_VISUAL_STUDIO_VERSION! !LIBUV_TARGET_ARCHITECTURE! !LIBUV_LIBRARY_TYPE! >> "!LIBUV_LOG_FILENAME!" 2>&1
    IF NOT !ERRORLEVEL! EQU 0 (
      ECHO FAILED!
      ECHO 	See !LIBUV_LOG_FILENAME! for more details
      EXIT /B !EXIT_CODE_BUILD_DEPENDENCY_FAILED!
    )
    ECHO done.
    REM Restore PATH (if necessary)
    IF DEFINED STORED_INCLUDE (
      SET "INCLUDE=!STORED_INCLUDE!"
      SET STORED_INCLUDE=
    )
    IF DEFINED STORED_LIB (
      SET "LIB=!STORED_LIB!"
      SET STORED_LIB=
    )
    IF DEFINED STORED_LIBPATH (
      SET "LIBPATH=!STORED_LIBPATH!"
      SET STORED_LIBPATH=
    )
    IF DEFINED BEFORE_BATCH_CALL_PATH (
      SET "PATH=!BEFORE_BATCH_CALL_PATH!"
      SET BEFORE_BATCH_CALL_PATH=
    )
    ECHO | SET /P="Building libuv ... "
    ECHO !MSBUILD! uv.sln /T:libuv /P:Configuration=Release /P:Platform=!LIBUV_VC_TARGET_ARCHITECTURE! /CLP:NoSummary;NoItemAndPropertyList;Verbosity=minimal /NOLOGO >> "!LIBUV_LOG_FILENAME!"
    !MSBUILD! uv.sln /T:libuv /P:Configuration=Release /P:Platform=!LIBUV_VC_TARGET_ARCHITECTURE! /CLP:NoSummary;NoItemAndPropertyList;Verbosity=minimal /NOLOGO >> "!LIBUV_LOG_FILENAME!" 2>&1
    IF NOT !ERRORLEVEL! EQU 0 (
      ECHO FAILED!
      ECHO 	See !LIBUV_LOG_FILENAME! for more details
      EXIT /B !EXIT_CODE_BUILD_DEPENDENCY_FAILED!
    )
    ECHO done.
    ECHO | SET /P="Installing libuv ... "
    MKDIR "!LIBUV_INSTALL_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!"
    IF NOT !ERRORLEVEL! EQU 0 (
      ECHO FAILED!
      ECHO 	See !LIBUV_LOG_FILENAME! for more details
      EXIT /B !EXIT_CODE_BUILD_DEPENDENCY_FAILED!
    )
    XCOPY /E /Y include "!LIBUV_INSTALL_DIRECTORY!\!LIBRARY_INCLUDE_DIRECTORY!" >> "!LIBUV_LOG_FILENAME!" 2>&1
    IF NOT !ERRORLEVEL! EQU 0 (
      ECHO FAILED!
      ECHO 	See !LIBUV_LOG_FILENAME! for more details
      EXIT /B !EXIT_CODE_BUILD_DEPENDENCY_FAILED!
    )
    MKDIR "!LIBUV_INSTALL_DIRECTORY!\!LIBRARY_BINARY_DIRECTORY!"
    IF NOT !ERRORLEVEL! EQU 0 (
      ECHO FAILED!
      ECHO 	See !LIBUV_LOG_FILENAME! for more details
      EXIT /B !EXIT_CODE_BUILD_DEPENDENCY_FAILED!
    )
    XCOPY /E /Y Release\lib "!LIBUV_INSTALL_DIRECTORY!\!LIBRARY_BINARY_DIRECTORY!" >> "!LIBUV_LOG_FILENAME!" 2>&1
    IF NOT !ERRORLEVEL! EQU 0 (
      REM Try again in the other location libuv likes to put files
      XCOPY /Y Release\*.* "!LIBUV_INSTALL_DIRECTORY!\!LIBRARY_BINARY_DIRECTORY!" >> "!LIBUV_LOG_FILENAME!" 2>&1
      IF NOT !ERRORLEVEL! EQU 0 (
        ECHO FAILED!
        ECHO 	See !LIBUV_LOG_FILENAME! for more details
        EXIT /B !EXIT_CODE_BUILD_DEPENDENCY_FAILED!
      )
    )
    ECHO done.
    IF "!LIBUV_IS_CLEAN_AFTER_INSTALL!" == "!TRUE!" (
      ECHO | SET /P="Cleaning libuv build ... "
      ECHO !MSBUILD! uv.sln /T:Clean /P:Configuration=Release /P:Platform=!LIBUV_VC_TARGET_ARCHITECTURE! /CLP:NoSummary;NoItemAndPropertyList;Verbosity=minimal /NOLOGO >> "!LIBUV_LOG_FILENAME!"
      !MSBUILD! uv.sln /T:Clean /P:Configuration=Release /P:Platform=!LIBUV_VC_TARGET_ARCHITECTURE! /CLP:NoSummary;NoItemAndPropertyList;Verbosity=minimal /NOLOGO >> "!LIBUV_LOG_FILENAME!" 2>&1
      IF EXIST Release RMDIR /S /Q Release >> "!LIBUV_LOG_FILENAME!" 2>&1
      ECHO done.
    )
    POPD
    EXIT /B
  
  REM Build OpenSSL library
  REM
  