来自Mozilla build tools下的脚本:
一 guess-msvc.bat
REM
-*- Mode: fundamental; tab-width: 8; indent-tabs-mode: 1 -*-
@ECHO OFF
set CYGWIN =
if not defined MOZ_NO_RESET_PATH (
set PATH = %SystemRoot% \ System32 ; %SystemRoot% ; %SystemRoot% \ System32 \ Wbem
)
REM if DISPLAY is set, rxvt attempts to load libX11.dll and fails to start
REM (see mozilla bug 376828)
SET DISPLAY =
SET INCLUDE =
SET LIB =
SET WINCURVERKEY = HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion
REG QUERY " %WINCURVERKEY% " / v " ProgramFilesDir (x86) " > nul 2 > nul
if % ERRORLEVEL % EQU 0 (
SET WIN64 = 1
) else (
SET WIN64 = 0
)
if " %WIN64% " == " 1 " (
SET MSVCROOTKEY = HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio
SET MSVCEXPROOTKEY = HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ VCExpress
) else (
SET MSVCROOTKEY = HKLM \ SOFTWARE \ Microsoft \ VisualStudio
SET MSVCEXPROOTKEY = HKLM \ SOFTWARE \ Microsoft \ VCExpress
)
SET MSVC6KEY = %MSVCROOTKEY% \ 6.0 \ Setup \ Microsoft Visual C ++
SET MSVC71KEY = %MSVCROOTKEY% \ 7.1 \ Setup \ VC
SET MSVC8KEY = %MSVCROOTKEY% \ 8.0 \ Setup \ VC
SET MSVC8EXPRESSKEY = %MSVCEXPROOTKEY% \ 8.0 \ Setup \ VC
SET MSVC9KEY = %MSVCROOTKEY% \ 9.0 \ Setup \ VC
SET MSVC9EXPRESSKEY = %MSVCEXPROOTKEY% \ 9.0 \ Setup \ VC
REM First see if we can find MSVC, then set the variable
REM NOTE: delims=<tab><space>
REM NOTE: run the initial REQ QUERY outside of the if() to set ERRORLEVEL correctly
REG QUERY " %MSVC6KEY% " / v ProductDir > nul 2 > nul
if " %VC6DIR% " == "" (
IF % ERRORLEVEL % EQU 0 (
FOR / F " tokens=2* delims= " %%A IN ( 'REG QUERY " %MSVC6KEY% " / v ProductDir' ) DO SET VC6DIR = %%B
)
)
REG QUERY " %MSVC71KEY% " / v ProductDir > nul 2 > nul
if " %VC71DIR% " == "" (
IF % ERRORLEVEL % EQU 0 (
FOR / F " tokens=2* delims= " %%A IN ( 'REG QUERY " %MSVC71KEY% " / v ProductDir' ) DO SET VC71DIR = %%B
)
)
REG QUERY " %MSVC8KEY% " / v ProductDir > nul 2 > nul
if " %VC8DIR% " == "" (
IF % ERRORLEVEL % EQU 0 (
FOR / F " tokens=2* delims= " %%A IN ( 'REG QUERY " %MSVC8KEY% " / v ProductDir' ) DO SET VC8DIR = %%B
)
)
REG QUERY " %MSVC8EXPRESSKEY% " / v ProductDir > nul 2 > nul
if " %VC8EXPRESSDIR% " ==
@ECHO OFF
set CYGWIN =
if not defined MOZ_NO_RESET_PATH (
set PATH = %SystemRoot% \ System32 ; %SystemRoot% ; %SystemRoot% \ System32 \ Wbem
)
REM if DISPLAY is set, rxvt attempts to load libX11.dll and fails to start
REM (see mozilla bug 376828)
SET DISPLAY =
SET INCLUDE =
SET LIB =
SET WINCURVERKEY = HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion
REG QUERY " %WINCURVERKEY% " / v " ProgramFilesDir (x86) " > nul 2 > nul
if % ERRORLEVEL % EQU 0 (
SET WIN64 = 1
) else (
SET WIN64 = 0
)
if " %WIN64% " == " 1 " (
SET MSVCROOTKEY = HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio
SET MSVCEXPROOTKEY = HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ VCExpress
) else (
SET MSVCROOTKEY = HKLM \ SOFTWARE \ Microsoft \ VisualStudio
SET MSVCEXPROOTKEY = HKLM \ SOFTWARE \ Microsoft \ VCExpress
)
SET MSVC6KEY = %MSVCROOTKEY% \ 6.0 \ Setup \ Microsoft Visual C ++
SET MSVC71KEY = %MSVCROOTKEY% \ 7.1 \ Setup \ VC
SET MSVC8KEY = %MSVCROOTKEY% \ 8.0 \ Setup \ VC
SET MSVC8EXPRESSKEY = %MSVCEXPROOTKEY% \ 8.0 \ Setup \ VC
SET MSVC9KEY = %MSVCROOTKEY% \ 9.0 \ Setup \ VC
SET MSVC9EXPRESSKEY = %MSVCEXPROOTKEY% \ 9.0 \ Setup \ VC
REM First see if we can find MSVC, then set the variable
REM NOTE: delims=<tab><space>
REM NOTE: run the initial REQ QUERY outside of the if() to set ERRORLEVEL correctly
REG QUERY " %MSVC6KEY% " / v ProductDir > nul 2 > nul
if " %VC6DIR% " == "" (
IF % ERRORLEVEL % EQU 0 (
FOR / F " tokens=2* delims= " %%A IN ( 'REG QUERY " %MSVC6KEY% " / v ProductDir' ) DO SET VC6DIR = %%B
)
)
REG QUERY " %MSVC71KEY% " / v ProductDir > nul 2 > nul
if " %VC71DIR% " == "" (
IF % ERRORLEVEL % EQU 0 (
FOR / F " tokens=2* delims= " %%A IN ( 'REG QUERY " %MSVC71KEY% " / v ProductDir' ) DO SET VC71DIR = %%B
)
)
REG QUERY " %MSVC8KEY% " / v ProductDir > nul 2 > nul
if " %VC8DIR% " == "" (
IF % ERRORLEVEL % EQU 0 (
FOR / F " tokens=2* delims= " %%A IN ( 'REG QUERY " %MSVC8KEY% " / v ProductDir' ) DO SET VC8DIR = %%B
)
)
REG QUERY " %MSVC8EXPRESSKEY% " / v ProductDir > nul 2 > nul
if " %VC8EXPRESSDIR% " ==