get_vsvars.bat 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. @REM @file
  2. @REM Windows batch file to find the Visual Studio set up script
  3. @REM
  4. @REM Copyright (c) 2013-2014, ARM Limited. All rights reserved.
  5. @REM SPDX-License-Identifier: BSD-2-Clause-Patent
  6. @REM
  7. @echo off
  8. set SCRIPT_ERROR=0
  9. if "%1"=="" goto main
  10. if /I "%1"=="VS2019" goto VS2019Vars
  11. if /I "%1"=="VS2017" goto VS2017Vars
  12. if /I "%1"=="VS2015" goto VS2015Vars
  13. if /I "%1"=="VS2013" goto VS2013Vars
  14. if /I "%1"=="VS2012" goto VS2012Vars
  15. :set_vsvars
  16. if defined VCINSTALLDIR goto :EOF
  17. call %* > vswhereInfo
  18. for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (
  19. if /i "%%i"=="installationPath" (
  20. call "%%j\VC\Auxiliary\Build\vcvars32.bat"
  21. )
  22. )
  23. del vswhereInfo
  24. goto :EOF
  25. :read_vsvars
  26. @rem Do nothing if already found, otherwise call vsvars32.bat if there
  27. if defined VCINSTALLDIR goto :EOF
  28. set GET_VSVARS_BAT_CHECK_DIR=%*
  29. set GET_VSVARS_BAT_CHECK_DIR=%GET_VSVARS_BAT_CHECK_DIR:"=%
  30. if exist "%GET_VSVARS_BAT_CHECK_DIR%\vsvars32.bat" call "%GET_VSVARS_BAT_CHECK_DIR%\vsvars32.bat"
  31. :vsvars_done
  32. goto :EOF
  33. :ToolNotInstall
  34. set SCRIPT_ERROR=1
  35. goto :EOF
  36. REM NOTE: This file will find the most recent Visual Studio installation
  37. REM apparent from the environment.
  38. REM To use an older version, modify your environment set up.
  39. REM (Or invoke the relevant vsvars32 file beforehand).
  40. :main
  41. if defined VCINSTALLDIR goto :done
  42. :VS2019Vars
  43. if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (
  44. if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\BuildTools" (
  45. call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 16,17
  46. ) else (
  47. call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version 16,17
  48. )
  49. )
  50. if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" (
  51. if exist "%ProgramFiles%\Microsoft Visual Studio\2019\BuildTools" (
  52. call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 16,17
  53. ) else (
  54. call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -version 16,17
  55. )
  56. )
  57. if /I "%1"=="VS2019" goto ToolNotInstall
  58. :VS2017Vars
  59. if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (
  60. if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\BuildTools" (
  61. call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 15,16
  62. ) else (
  63. call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version 15,16
  64. )
  65. )
  66. if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" (
  67. if exist "%ProgramFiles%\Microsoft Visual Studio\2017\BuildTools" (
  68. call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 15,16
  69. ) else (
  70. call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -version 15,16
  71. )
  72. )
  73. if /I "%1"=="VS2017" goto ToolNotInstall
  74. :VS2015Vars
  75. if defined VS140COMNTOOLS (call :read_vsvars "%VS140COMNTOOLS%") else (if /I "%1"=="VS2015" goto ToolNotInstall)
  76. :VS2013Vars
  77. if defined VS120COMNTOOLS ( call :read_vsvars "%VS120COMNTOOLS%") else (if /I "%1"=="VS2013" goto ToolNotInstall)
  78. :VS2012Vars
  79. if defined VS110COMNTOOLS (call :read_vsvars "%VS110COMNTOOLS%") else (if /I "%1"=="VS2012" goto ToolNotInstall)
  80. if defined VS100COMNTOOLS call :read_vsvars "%VS100COMNTOOLS%"
  81. if defined VS90COMNTOOLS call :read_vsvars "%VS90COMNTOOLS%"
  82. if defined VS80COMNTOOLS call :read_vsvars "%VS80COMNTOOLS%"
  83. if defined VS71COMNTOOLS call :read_vsvars "%VS71COMNTOOLS%"
  84. :done
  85. set GET_VSVARS_BAT_CHECK_DIR=