set_vsprefix_envs.bat 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. @REM @file
  2. @REM This stand-alone program is typically called by the toolsetup.bat file,
  3. @REM however it may be executed directly from the BaseTools project folder
  4. @REM if the file is not executed within a WORKSPACE\BaseTools folder.
  5. @REM
  6. @REM Copyright (c) 2016-2020, Intel Corporation. All rights reserved.<BR>
  7. @REM
  8. @REM SPDX-License-Identifier: BSD-2-Clause-Patent
  9. @REM
  10. @echo off
  11. pushd .
  12. set SCRIPT_ERROR=0
  13. goto main
  14. :ToolNotInstall
  15. set SCRIPT_ERROR=1
  16. goto :EOF
  17. :main
  18. if /I "%1"=="VS2019" goto SetVS2019
  19. if /I "%1"=="VS2017" goto SetVS2017
  20. if /I "%1"=="VS2015" goto SetVS2015
  21. if /I "%1"=="VS2013" goto SetVS2013
  22. if /I "%1"=="VS2012" goto SetVS2012
  23. if defined VS71COMNTOOLS (
  24. if not defined VS2003_PREFIX (
  25. set "VS2003_PREFIX=%VS71COMNTOOLS:~0,-14%"
  26. )
  27. )
  28. if defined VS80COMNTOOLS (
  29. if not defined VS2005_PREFIX (
  30. set "VS2005_PREFIX=%VS80COMNTOOLS:~0,-14%"
  31. )
  32. )
  33. if defined VS90COMNTOOLS (
  34. if not defined VS2008_PREFIX (
  35. set "VS2008_PREFIX=%VS90COMNTOOLS:~0,-14%"
  36. )
  37. if not defined WINSDK_PREFIX (
  38. set "WINSDK_PREFIX=c:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\"
  39. )
  40. if not defined WINSDKx86_PREFIX (
  41. set "WINSDKx86_PREFIX=c:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin\"
  42. )
  43. )
  44. if defined VS100COMNTOOLS (
  45. if not defined VS2010_PREFIX (
  46. set "VS2010_PREFIX=%VS100COMNTOOLS:~0,-14%"
  47. )
  48. if not defined WINSDK7_PREFIX (
  49. set "WINSDK7_PREFIX=c:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin\"
  50. )
  51. if not defined WINSDK7x86_PREFIX (
  52. set "WINSDK7x86_PREFIX=c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\"
  53. )
  54. )
  55. :SetVS2012
  56. if defined VS110COMNTOOLS (
  57. if not defined VS2012_PREFIX (
  58. set "VS2012_PREFIX=%VS110COMNTOOLS:~0,-14%"
  59. )
  60. if not defined WINSDK71_PREFIX (
  61. set "WINSDK71_PREFIX=c:\Program Files\Microsoft SDKs\Windows\v7.1A\Bin\"
  62. )
  63. if not defined WINSDK71x86_PREFIX (
  64. set "WINSDK71x86_PREFIX=c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\"
  65. )
  66. ) else (
  67. if /I "%1"=="VS2012" goto ToolNotInstall
  68. )
  69. if /I "%1"=="VS2012" goto SetWinDDK
  70. :SetVS2013
  71. if defined VS120COMNTOOLS (
  72. if not defined VS2013_PREFIX (
  73. set "VS2013_PREFIX=%VS120COMNTOOLS:~0,-14%"
  74. )
  75. if not defined WINSDK8_PREFIX (
  76. set "WINSDK8_PREFIX=c:\Program Files\Windows Kits\8.0\bin\"
  77. )
  78. if not defined WINSDK8x86_PREFIX (
  79. set "WINSDK8x86_PREFIX=c:\Program Files (x86)\Windows Kits\8.0\bin\"
  80. )
  81. ) else (
  82. if /I "%1"=="VS2013" goto ToolNotInstall
  83. )
  84. if /I "%1"=="VS2013" goto SetWinDDK
  85. :SetVS2015
  86. if defined VS140COMNTOOLS (
  87. if not defined VS2015_PREFIX (
  88. set "VS2015_PREFIX=%VS140COMNTOOLS:~0,-14%"
  89. )
  90. if not defined WINSDK81_PREFIX (
  91. set "WINSDK81_PREFIX=c:\Program Files\Windows Kits\8.1\bin\"
  92. )
  93. if not defined WINSDK81x86_PREFIX (
  94. set "WINSDK81x86_PREFIX=c:\Program Files (x86)\Windows Kits\8.1\bin\"
  95. )
  96. ) else (
  97. if /I "%1"=="VS2015" goto ToolNotInstall
  98. )
  99. if /I "%1"=="VS2015" goto SetWinDDK
  100. :SetVS2017
  101. if not defined VS150COMNTOOLS (
  102. @REM clear two envs so that vcvars32.bat can run successfully.
  103. set VSINSTALLDIR=
  104. set VCToolsVersion=
  105. if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (
  106. if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\BuildTools" (
  107. call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 15,16 > vswhereInfo
  108. for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (
  109. if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"
  110. )
  111. del vswhereInfo
  112. ) else (
  113. call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version 15,16 > vswhereInfo
  114. for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (
  115. if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"
  116. )
  117. del vswhereInfo
  118. )
  119. ) else if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" (
  120. if exist "%ProgramFiles%\Microsoft Visual Studio\2017\BuildTools" (
  121. call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 15,16 > vswhereInfo
  122. for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (
  123. if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"
  124. )
  125. del vswhereInfo
  126. ) else (
  127. call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -version 15,16 > vswhereInfo
  128. for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (
  129. if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"
  130. )
  131. del vswhereInfo
  132. )
  133. ) else (
  134. if /I "%1"=="VS2017" goto ToolNotInstall
  135. goto SetWinDDK
  136. )
  137. )
  138. if defined VCToolsInstallDir (
  139. if not defined VS2017_PREFIX (
  140. set "VS2017_PREFIX=%VCToolsInstallDir%"
  141. )
  142. if not defined WINSDK10_PREFIX (
  143. if defined WindowsSdkVerBinPath (
  144. set "WINSDK10_PREFIX=%WindowsSdkVerBinPath%"
  145. ) else if exist "%ProgramFiles(x86)%\Windows Kits\10\bin" (
  146. set "WINSDK10_PREFIX=%ProgramFiles(x86)%\Windows Kits\10\bin\"
  147. ) else if exist "%ProgramFiles%\Windows Kits\10\bin" (
  148. set "WINSDK10_PREFIX=%ProgramFiles%\Windows Kits\10\bin\"
  149. )
  150. )
  151. )
  152. if not defined WINSDK_PATH_FOR_RC_EXE (
  153. if defined WINSDK10_PREFIX (
  154. set "WINSDK_PATH_FOR_RC_EXE=%WINSDK10_PREFIX%x86"
  155. )
  156. )
  157. if /I "%1"=="VS2017" goto SetWinDDK
  158. :SetVS2019
  159. if not defined VS160COMNTOOLS (
  160. @REM clear two envs so that vcvars32.bat can run successfully.
  161. set VSINSTALLDIR=
  162. set VCToolsVersion=
  163. if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (
  164. if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\BuildTools" (
  165. call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 16,17 > vswhereInfo
  166. for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (
  167. if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"
  168. )
  169. del vswhereInfo
  170. ) else (
  171. call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version 16,17 > vswhereInfo
  172. for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (
  173. if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"
  174. )
  175. del vswhereInfo
  176. )
  177. ) else if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" (
  178. if exist "%ProgramFiles%\Microsoft Visual Studio\2019\BuildTools" (
  179. call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 16,17 > vswhereInfo
  180. for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (
  181. if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"
  182. )
  183. del vswhereInfo
  184. ) else (
  185. call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -version 16,17 > vswhereInfo
  186. for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (
  187. if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"
  188. )
  189. del vswhereInfo
  190. )
  191. ) else (
  192. if /I "%1"=="VS2019" goto ToolNotInstall
  193. goto SetWinDDK
  194. )
  195. )
  196. if defined VCToolsInstallDir (
  197. if not defined VS2019_PREFIX (
  198. set "VS2019_PREFIX=%VCToolsInstallDir%"
  199. )
  200. if not defined WINSDK10_PREFIX (
  201. if defined WindowsSdkVerBinPath (
  202. set "WINSDK10_PREFIX=%WindowsSdkVerBinPath%"
  203. ) else if exist "%ProgramFiles(x86)%\Windows Kits\10\bin" (
  204. set "WINSDK10_PREFIX=%ProgramFiles(x86)%\Windows Kits\10\bin\"
  205. ) else if exist "%ProgramFiles%\Windows Kits\10\bin" (
  206. set "WINSDK10_PREFIX=%ProgramFiles%\Windows Kits\10\bin\"
  207. )
  208. )
  209. )
  210. if not defined WINSDK_PATH_FOR_RC_EXE (
  211. if defined WINSDK10_PREFIX (
  212. set "WINSDK_PATH_FOR_RC_EXE=%WINSDK10_PREFIX%x86"
  213. )
  214. )
  215. if /I "%1"=="VS2019" goto SetWinDDK
  216. :SetWinDDK
  217. if not defined WINDDK3790_PREFIX (
  218. set WINDDK3790_PREFIX=C:\WINDDK\3790.1830\bin\
  219. )
  220. if not defined IASL_PREFIX (
  221. set IASL_PREFIX=C:\ASL\
  222. )
  223. popd