zoukankan      html  css  js  c++  java
  • [BuildRelease]Mozilla Build Tools(自动设置VC环境)

    来自Mozilla build tools下的脚本:

    一 guess-msvc.bat

    REM -*- Mode: fundamental; tab- 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

    完!

  • 相关阅读:
    白菜:小白菜、青菜
    蔬菜:白菜
    蔬菜-白菜:娃娃菜
    玉米:黑玉米
    坚果-花生:彩色花生
    养生-坚果-花生:黑花生
    汉语-词语:气质
    汉语-词语:痛楚
    汉语-词语:酸楚
    汉语-词语:心酸
  • 原文地址:https://www.cnblogs.com/itech/p/2176421.html
Copyright © 2011-2022 走看看