[BuildRelease]Mozilla Build Tools(自动设置VC环境)
来自Mozilla build tools下的脚本:
一 guess-msvc.bat
@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%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "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 /F "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 /F "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 /F "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 /F "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 /F "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 /F "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%" /v "Install Dir" >nul 2>nul
if "%PSDKDIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=3* delims= " %%A IN ('REG QUERY "%SDK2003SP2KEY%" /v "Install Dir"') DO SET PSDKDIR=%%B
REM arbitrary, but works for me
SET PSDKVER=5
)
)
REG QUERY "%SDK2003SP1KEY%" /v "Install Dir" >nul 2>nul
if "%PSDKDIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=3* delims= " %%A IN ('REG QUERY "%SDK2003SP1KEY%" /v "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
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 /B 1
)
if "%SDKDIR%"=="" (
ECHO "Microsoft Platform SDK was not found. Exiting."
pause
EXIT /B 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
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 /B 1
)
if "%SDKDIR%"=="" (
ECHO "Microsoft Platform SDK was not found. Exiting."
pause
EXIT /B 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/archive/2011/09/14/2176421.html
[BuildRelease]Mozilla Build Tools(自动设置VC环境)相关推荐
- java环境变量自动设置_自动设置Java环境变量
@echo off SETLOCAL ENABLEDELAYEDEXPANSION for /f "tokens=2* delims= " %%i in ('reg query & ...
- Java初学者福音——自动设置环境变量
刚开始编程尤其是以开始就接触Java时,往往对path和classpath不太理解.无论从理论还是实践都有些文章都能讲得很通透.但是即便如此,对于新手,依然有存在不会设置的. 不会设置这两个变量,基本 ...
- Windows 典藏篇-vc++运行库安装,Microsoft Visual C++ Build Tools官方工具
以前: 想安装最全最完整最新的 vc++ 运行库,莫非用 vs2017 安装了,这是 Microsoft 官方出品的,但是安装要安装整个 vs,非常的麻烦. 如今: 终于,终于,被我找到了这款工具! ...
- vc build tools完美解决
我想问问大家,大家学Python吗? 如果你学的话,你一定遇到过和我一样的问题. 没有vc. 完美解决办法: 1. 去microsoft官网下载 vc build tools,并运行 2. 如果第一个 ...
- Windows vc++运行库安装,Microsoft Visual C++ Build Tools官方工具
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools&quo ...
- Windows 下 vc++运行库安装,Microsoft Visual C++ Build Tools官方工具
在用pycharm过程中,用pip去安装一些第三方包的时候会出现如下错误,缺少C++编译器,因为有些程序需要使用,没有C++接口会报错,查阅相关资料及自己的解决方案 error: Microsoft ...
- VC环境下的静态库(lib)使用和动态库(Dll)的使用(清晰版)
VC环境下的静态库使用 一. 静态库包括.lib和.h文件,在工程中使用静态库分为3步: <1> 在工程中加入静态库,有三种方法: **方法一:项目设置中引用.lib,project-& ...
- Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“(已解决)
这个error的产生原因是,因为我们在install一些python包的时候,由于windows需要一个c++编译器而产生的(我道听途说的).这里,我install的是inplace_abn,是一个训 ...
- androidsdktools安装_如何命令行安装Android SDK Build Tools(构建工具)?
Android构建工具安装的问题 我想从命令行建立Android开发环境,遇到了如下问题: wget http://dl.google.com/android/android-sdk_r22.0.5- ...
最新文章
- Spring boot切换日志框架
- 张亚勤:PC之外的争夺战
- 北京区域赛I题,Uva7676,A Boring Problem,前缀和差分
- 【Linux】Linux中变量#,@,0,1,2,*,$$,$?的解释
- Linux emacs考场配置及对拍脚本
- Linux. C open创建文件,c-为什么open()用错误的权限创建我的文件?
- 广州大学机器学习与数据挖掘实验一:线性回归
- matlab 傅里叶变换 频谱图,傅里叶变换与信号频谱图.PDF
- R语言实现 懒惰学习——使用近邻分类
- matlab c盘空间,手动清理C盘空间
- qq飞车鸿蒙车队,qq飞车手游鸿蒙版
- 16进制颜色值与百分比颜色值的换算关系
- 1696C. Fishingprince Plays With Array【思维题 + 中间状态 + 优化存储】
- apollo github的说明介绍
- 验证码——python去除干扰线
- 【愚人特稿】数学家应该重新设计角度制--(转自果壳网)
- Rocketmq同项目多个生产者多个消费者问题
- ORACLE 获取某一日期所在周的周一
- android读取主板数据恢复,技术大招!只剩主板的坏手机也能数据恢复
- 【UE4源代码观察】尝试调试UBT
热门文章
- PHP注入漏洞(附代码,具体步骤)
- 2017 Multi-University Training Contest - Team 7:1003. Color the chessboard(...)
- bzoj 2440: [中山市选2011]完全平方数(二分+莫比乌斯函数)
- python基础系列教程——python基础语法全解
- 基于Struts2框架的超市人事工资管理系统
- quartsu仿真8:二五十计数器74290的基本功能
- AD画PCB焊盘上出现白圈改网络
- ZooKeeper CentOS7上安装
- VScode 同时开多个窗口
- .bash_profile和.bashrc的什么区别