[BuildRelease]Mozilla Build Tools(自动设置VC环境)

来自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% "  / " 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  / " 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  / " 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  / " tokens=2* delims=      "  %%A IN  ( 'REG QUERY  " %MSVC8KEY% "  / v ProductDir' )  DO  SET  VC8DIR = %%B
  
)
)

REG QUERY 
" %MSVC8EXPRESSKEY% "  / v ProductDir  > nul  2 > nul
if  " %VC8EXPRESSDIR% " == ""  (
  
IF  % ERRORLEVEL % EQU  0  (
    
FOR  / " tokens=2* delims=      "  %%A IN  ( 'REG QUERY  " %MSVC8EXPRESSKEY% "  / v ProductDir' )  DO  SET  VC8EXPRESSDIR = %%B
  
)
)

REG QUERY 
" %MSVC9KEY% "  / v ProductDir  > nul  2 > nul
if  " %VC9DIR% " == ""  (
  
REM  Newer SDKs (6.1, 7.0) install the VC9 compilers and set this key,
   REM  but they're functionally equivalent to the VC9 Express compilers.
   IF  % ERRORLEVEL % EQU  0  (
    
FOR  / " tokens=2* delims=      "  %%A IN  ( 'REG QUERY  " %MSVC9KEY% "  / v ProductDir' )  DO  SET  TEMPVC9DIR = %%B
  
)
)

REM  We'll double-check for a VC9 Pro install here per the comment above.
REG QUERY  " %MSVCROOTKEY%\9.0\InstalledProducts\Microsoft Visual C++ "  > nul  2 > nul
if  NOT  " %TEMPVC9DIR% " == ""  (
  
IF  % ERRORLEVEL % EQU  0  (
    
SET  " VC9DIR=%TEMPVC9DIR% "
  
)  ELSE  (
    
SET  " VC9EXPRESSDIR=%TEMPVC9DIR% "
  
)
)

REG QUERY 
" %MSVC9EXPRESSKEY% "  / v ProductDir  > nul  2 > nul
if  " %VC9EXPRESSDIR% " == ""  (
  
IF  % ERRORLEVEL % EQU  0  (
    
FOR  / " tokens=2* delims=      "  %%A IN  ( 'REG QUERY  " %MSVC9EXPRESSKEY% "  / v ProductDir' )  DO  SET  VC9EXPRESSDIR = %%B
  
)
)

REM  Look for Installed SDKs:
SET  SDKROOTKEY = HKLM \ SOFTWARE \ Microsoft \ MicrosoftSDK \ InstalledSDKs
SET  SDK2003SP1KEY = %SDKROOTKEY% \ 8F9E5EF3-A9A5-491B-A889-C58EFFECE8B3
SET  SDK2003SP2KEY = %SDKROOTKEY% \ D2FF9F89-8AA2- 4373 -8A31-C838BF4DBBE1
SET  SDK6KEY = HKLM \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v6 . 0
REM  6.0A comes with Visual C++ 2008. If you have 6.0 installed, even
REM
 the express edition will update you to 6.0A
SET  SDK6AKEY = HKLM \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v6 . 0A
SET  SDK61KEY = HKLM \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v6 . 1
SET  SDK7KEY = HKLM \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v7 . 0

REM  Just a base value to compare against
SET  SDKVER = 0
SET  SDKMINORVER = 0

REG QUERY 
" %SDK7KEY% "  / v InstallationFolder  > nul  2 > nul
if  " %SDKDIR% " == ""  (
  
IF  % ERRORLEVEL % EQU  0  (
    
FOR  / " tokens=2* usebackq delims=      "  %%A IN  ( `REG QUERY  " %SDK7KEY% "  / v InstallationFolder` )  DO  SET  SDKDIR = %%B
    
SET  SDKVER = 7
  
)
)

REG QUERY 
" %SDK61KEY% "  / v InstallationFolder  > nul  2 > nul
if  " %SDKDIR% " == ""  (
  
IF  % ERRORLEVEL % EQU  0  (
    
FOR  / " tokens=2* usebackq delims=      "  %%A IN  ( `REG QUERY  " %SDK61KEY% "  / v InstallationFolder` )  DO  SET  SDKDIR = %%B
    
SET  SDKVER = 6
    
SET  SDKMINORVER = 1
  
)
)

REG QUERY 
" %SDK6AKEY% "  / v InstallationFolder  > nul  2 > nul
if  " %SDKDIR% " == ""  (
  
IF  % ERRORLEVEL % EQU  0  (
    
FOR  / " tokens=2* usebackq delims=      "  %%A IN  ( `REG QUERY  " %SDK6AKEY% "  / v InstallationFolder` )  DO  SET  SDKDIR = %%B
    
SET  SDKVER = 6
    
REM  insane, I know!
     SET  SDKMINORVER = 0A
  
)
)

REG QUERY 
" %SDK6KEY% "  / v InstallationFolder  > nul  2 > nul
if  " %SDKDIR% " == ""  (
  
IF  % ERRORLEVEL % EQU  0  (
    
FOR  / " tokens=2* usebackq delims=      "  %%A IN  ( `REG QUERY  " %SDK6KEY% "  / v InstallationFolder` )  DO  SET  SDKDIR = %%B
    
SET  SDKVER = 6
  
)
)

REM  The Vista SDK (6.0 and 6.0A) ships with a VC8 Express install

if  " %SDKVER% " == " 6 "  (
  
if  " %VC8EXPRESSDIR% " == ""  (
    
SET  VC8EXPRESSDIR = %SDKDIR%VC \
  
)
)

REG QUERY 
" %SDK2003SP2KEY% "  / " Install Dir "  > nul  2 > nul
if  " %PSDKDIR% " == ""  (
  
IF  % ERRORLEVEL % EQU  0  (
    
FOR  / " tokens=3* delims=      "  %%A IN  ( 'REG QUERY  " %SDK2003SP2KEY% "  / " Install Dir " ' )  DO  SET  PSDKDIR = %%B
    
REM  arbitrary, but works for me
     SET  PSDKVER = 5
  
)
)

REG QUERY 
" %SDK2003SP1KEY% "  / " Install Dir "  > nul  2 > nul
if  " %PSDKDIR% " == ""  (
  
IF  % ERRORLEVEL % EQU  0  (
    
FOR  / " tokens=3* delims=      "  %%A IN  ( 'REG QUERY  " %SDK2003SP1KEY% "  / " Install Dir " ' )  DO  SET  PSDKDIR = %%B
    
SET  PSDKVER = 4
  
)
)

if  defined %VC6DIR%  ( ECHO  Visual C ++  6  directory: %VC6DIR% )
if  defined %VC71DIR%  ( ECHO  Visual C ++  7.1  directory: %VC71DIR% )
if  defined %VC8DIR%  ( ECHO  Visual C ++  8  directory: %VC8DIR% )
if  defined %VC8EXPRESSDIR%  ( ECHO  Visual C ++  8  Express directory: %VC8EXPRESSDIR% )
if  defined %VC9DIR%  ( ECHO  Visual C ++  9  directory: %VC9DIR% )
if  defined %VC9EXPRESSDIR%  ( ECHO  Visual C ++  9  Express directory: %VC9EXPRESSDIR% )
if  " %SDKDIR% " == ""  (
    
SET  SDKDIR = %PSDKDIR%
    
SET  SDKVER = %PSDKVER%
)  else  (
    
ECHO  Windows SDK directory: %SDKDIR%
    
ECHO  Windows SDK version: %SDKVER% . %SDKMINORVER%
)
if  not  " %PSDKDIR% " == ""  (
    
ECHO  Platform SDK directory: %PSDKDIR%
    
ECHO  Platform SDK version: %PSDKVER%
)

 

 

二 start-msvc9.bat

@echo  off

SET  MOZ_MSVCVERSION = 9
SET  MOZBUILDDIR = %~dp0
SET  MOZILLABUILD = %MOZBUILDDIR%

echo  " Mozilla tools directory: %MOZBUILDDIR% "

REM  Get MSVC paths
call  " %MOZBUILDDIR%guess-msvc.bat "

REM  Use the "new" moztools-static
set  MOZ_TOOLS = %MOZBUILDDIR%moztools

rem  append moztools to PATH
SET  PATH = % PATH % ; %MOZ_TOOLS% \ bin

if  " %VC9DIR% " == ""  (
    
if  " %VC9EXPRESSDIR% " == ""  (
        
ECHO  " Microsoft Visual C++ version 9 (2008) was not found. Exiting. "
        
pause
        
EXIT  / 1
    
)

    
if  " %SDKDIR% " == ""  (
        
ECHO  " Microsoft Platform SDK was not found. Exiting. "
        
pause
        
EXIT  / 1
    
)

    
rem  Prepend MSVC paths
     call  " %VC9EXPRESSDIR%\Bin\vcvars32.bat "

    
rem  Don't set SDK paths in this block, because blocks are early-evaluated.

    
rem  Fix problem with VC++Express Edition
     if  " %SDKVER% "  GEQ  " 6 "  (
        
rem  SDK Ver.6.0 (Windows Vista SDK) and newer
         rem  do not contain ATL header files.
         rem  We need to use the Platform SDK's ATL header files.
         SET  USEPSDKATL = 1
    
)
    
rem  SDK ver.6.0 does not contain OleAcc.idl
     rem  We need to use the Platform SDK's OleAcc.idl
     if  " %SDKVER% "  ==  " 6 "  (
        
if  " %SDKMINORVER% "  ==  " 0 "  (
          
SET  USEPSDKIDL = 1
        
)
    
)
)  else  (
    
rem  Prepend MSVC paths
     rem  If the SDK is Win2k8, we want to use it.
     rem  The Win7 SDK (or newer) should automatically integrate itself into vcvars32.bat
     if  " %SDKVER% "  ==  " 6 "  (
        
if  " %SDKMINORVER% "  ==  " 1 "  (
          
SET  USESDK = 1
        
)
    
)
    
if  " %USESDK% "  ==  " 0 "  (
        
ECHO  Using VC  2008  built-in SDK
    
)
    
call  " %VC9DIR%\Bin\vcvars32.bat "
)

if  " %VC9DIR% " == ""  (
    
rem  Prepend SDK paths - Don't use the SDK SetEnv.cmd because it pulls in
     rem  random VC paths which we don't want.
     rem  Add the atlthunk compat library to the end of our LIB
     set  " PATH=%SDKDIR%\bin;%PATH% "
    
set  " LIB=%SDKDIR%\lib;%LIB%;%MOZBUILDDIR%atlthunk_compat "

    
if  " %USEPSDKATL% " == " 1 "  (
        
if  " %USEPSDKIDL% " == " 1 "  (
            
set  " INCLUDE=%SDKDIR%\include;%PSDKDIR%\include\atl;%PSDKDIR%\include;%INCLUDE% "
        
)  else  (
            
set  " INCLUDE=%SDKDIR%\include;%PSDKDIR%\include\atl;%INCLUDE% "
        
)
    
)  else  (
        
if  " %USEPSDKIDL% " == " 1 "  (
            
set  " INCLUDE=%SDKDIR%\include;%SDKDIR%\include\atl;%PSDKDIR%\include;%INCLUDE% "
        
)  else  (
            
set  " INCLUDE=%SDKDIR%\include;%SDKDIR%\include\atl;%INCLUDE% "
        
)
    
)
)

cd  " %USERPROFILE% "

" %MOZILLABUILD%\msys\bin\bash "  --login -i

 

 

三 start-msvc9-x64.bat

 

@echo  off

SET  MOZ_MSVCVERSION = 9
SET  MOZBUILDDIR = %~dp0
SET  MOZILLABUILD = %MOZBUILDDIR%

echo  " Mozilla tools directory: %MOZBUILDDIR% "

REM  Get MSVC paths
call  " %MOZBUILDDIR%guess-msvc.bat "

REM  Use the "new" moztools-static
set  MOZ_TOOLS = %MOZBUILDDIR%moztools-x64

rem  append moztools to PATH
SET  PATH = % PATH % ; %MOZ_TOOLS% \ bin

if  " %VC9DIR% " == ""  (
    
if  " %VC9EXPRESSDIR% " == ""  (
        
ECHO  " Microsoft Visual C++ version 9 (2008) was not found. Exiting. "
        
pause
        
EXIT  / 1
    
)

    
if  " %SDKDIR% " == ""  (
        
ECHO  " Microsoft Platform SDK was not found. Exiting. "
        
pause
        
EXIT  / 1
    
)

    
rem  Prepend MSVC paths
     call  " %VC9EXPRESSDIR%\Bin\amd64\vcvarsamd64.bat "

    
rem  Don't set SDK paths in this block, because blocks are early-evaluated.

    
rem  Fix problem with VC++Express Edition
     if  " %SDKVER% "  GEQ  " 6 "  (
        
rem  SDK Ver.6.0 (Windows Vista SDK) and newer
         rem  do not contain ATL header files.
         rem  We need to use the Platform SDK's ATL header files.
         SET  USEPSDKATL = 1
    
)
    
rem  SDK ver.6.0 does not contain OleAcc.idl
     rem  We need to use the Platform SDK's OleAcc.idl
     if  " %SDKVER% "  ==  " 6 "  (
        
if  " %SDKMINORVER% "  ==  " 0 "  (
          
SET  USEPSDKIDL = 1
        
)
    
)
)  else  (
    
rem  Prepend MSVC paths
     rem  If the SDK is Win2k8, we want to use it.
     rem  The Win7 SDK (or newer) should automatically integrate itself into vcvars32.bat
     if  " %SDKVER% "  ==  " 6 "  (
        
if  " %SDKMINORVER% "  ==  " 1 "  (
          
SET  USESDK = 1
        
)
    
)
    
if  " %USESDK% "  ==  " 0 "  (
        
ECHO  Using VC  2008  built-in SDK
    
)
    
call  " %VC9DIR%\Bin\amd64\vcvarsamd64.bat "
)

if  " %VC9DIR% " == ""  (
    
rem  Prepend SDK paths - Don't use the SDK SetEnv.cmd because it pulls in
     rem  random VC paths which we don't want.
     rem  Add the atlthunk compat library to the end of our LIB
     set  " PATH=%SDKDIR%\bin\x64;%SDKDIR%\bin;%PATH% "
    
set  " LIB=%SDKDIR%\lib\x64;%SDKDIR%\lib;%LIB%;%MOZBUILDDIR%atlthunk_compat "

    
if  " %USEPSDKATL% " == " 1 "  (
        
if  " %USEPSDKIDL% " == " 1 "  (
            
set  " INCLUDE=%SDKDIR%\include;%PSDKDIR%\include\atl;%PSDKDIR%\include;%INCLUDE% "
        
)  else  (
            
set  " INCLUDE=%SDKDIR%\include;%PSDKDIR%\include\atl;%INCLUDE% "
        
)
    
)  else  (
        
if  " %USEPSDKIDL% " == " 1 "  (
            
set  " INCLUDE=%SDKDIR%\include;%SDKDIR%\include\atl;%PSDKDIR%\include;%INCLUDE% "
        
)  else  (
            
set  " INCLUDE=%SDKDIR%\include;%SDKDIR%\include\atl;%INCLUDE% "
        
)
    
)
)

cd  " %USERPROFILE% "

" %MOZILLABUILD%\msys\bin\bash "  --login -i

 

 

完!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值