From e0ed229a4e9d9e3b0c84ffea9279a089696b70d1 Mon Sep 17 00:00:00 2001 From: "benjamin%smedbergs.us" Date: Thu, 4 Jan 2007 17:06:35 +0000 Subject: [PATCH] Bug 363942 - MozillaBuild needs to handle MSVC8 express + SDK, r=luser --- tools/build-environment/win32/guess-msvc.bat | 61 ++++++++++++++++--- tools/build-environment/win32/start-msvc6.bat | 2 +- .../build-environment/win32/start-msvc71.bat | 2 +- tools/build-environment/win32/start-msvc8.bat | 38 +++++++++--- 4 files changed, 83 insertions(+), 20 deletions(-) diff --git a/tools/build-environment/win32/guess-msvc.bat b/tools/build-environment/win32/guess-msvc.bat index 7411a3250f75..6e57c10678e4 100755 --- a/tools/build-environment/win32/guess-msvc.bat +++ b/tools/build-environment/win32/guess-msvc.bat @@ -1,3 +1,4 @@ +REM -*- Mode: fundamental; tab-width: 8; indent-tabs-mode: 1 -*- @ECHO OFF set CYGWIN= @@ -12,21 +13,61 @@ SET MSVCROOTKEY=HKLM\SOFTWARE\Microsoft\VisualStudio SET MSVC6KEY=%MSVCROOTKEY%\6.0\Setup\Microsoft Visual C++ SET MSVC71KEY=%MSVCROOTKEY%\7.1\Setup\VC SET MSVC8KEY=%MSVCROOTKEY%\8.0\Setup\VC - -SET VC6DIR=Not Found -SET VC71DIR=Not Found -SET VC8DIR=Not Found +SET MSVC8EXPRESSKEY=HKLM\SOFTWARE\Microsoft\VCExpress\8.0\Setup\VC REM First see if we can find MSVC, then set the variable -REG QUERY "%MSVC6KEY%" /v ProductDir > nul -IF %ERRORLEVEL% EQU 0 FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "%MSVC6KEY%" /v ProductDir') DO SET VC6DIR=%%B +REM NOTE: delims= +REM NOTE: run the initial REQ QUERY outside of the if() to set ERRORLEVEL correctly -REG QUERY "%MSVC71KEY%" /v ProductDir > nul -IF %ERRORLEVEL% EQU 0 FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "%MSVC71KEY%" /v ProductDir') DO SET VC71DIR=%%B +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 "%MSVC8KEY%" /v ProductDir > nul -IF %ERRORLEVEL% EQU 0 FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "%MSVC8KEY%" /v ProductDir') DO SET VC8DIR=%%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 + ) +) + +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 + +REG QUERY "%SDK2003SP2KEY%" /v "Install Dir" >nul 2>nul +if "%SDKDIR%"=="" ( + IF %ERRORLEVEL% EQU 0 ( + FOR /F "tokens=3* delims= " %%A IN ('REG QUERY "%SDK2003SP2KEY%" /v "Install Dir"') DO SET SDKDIR=%%B + ) +) + +REG QUERY "%SDK2003SP1KEY%" /v "Install Dir" >nul 2>nul +if "%SDKDIR%"=="" ( + IF %ERRORLEVEL% EQU 0 ( + FOR /F "tokens=3* delims= " %%A IN ('REG QUERY "%SDK2003SP1KEY%" /v "Install Dir"') DO SET SDKDIR=%%B + ) +) ECHO Visual C++ 6 directory: %VC6DIR% ECHO Visual C++ 7.1 directory: %VC71DIR% ECHO Visual C++ 8 directory: %VC8DIR% +ECHO Visual C++ 8 Express directory: %VC8EXPRESSDIR% +ECHO SDK directory: %SDKDIR% diff --git a/tools/build-environment/win32/start-msvc6.bat b/tools/build-environment/win32/start-msvc6.bat index b8be612c2e2a..a85e0b71ff69 100755 --- a/tools/build-environment/win32/start-msvc6.bat +++ b/tools/build-environment/win32/start-msvc6.bat @@ -11,7 +11,7 @@ echo "Mozilla tools directory: %MOZILLABUILD%" REM Get MSVC paths call "%MOZILLABUILD%\guess-msvc.bat" -if "%VC6DIR%"=="Not Found" ( +if "%VC6DIR%"=="" ( ECHO "Microsoft Visual C++ version 6 was not found. Exiting." pause EXIT /B 1 diff --git a/tools/build-environment/win32/start-msvc71.bat b/tools/build-environment/win32/start-msvc71.bat index 0035b1018ab5..43197cdac5d2 100755 --- a/tools/build-environment/win32/start-msvc71.bat +++ b/tools/build-environment/win32/start-msvc71.bat @@ -11,7 +11,7 @@ echo "Mozilla tools directory: %MOZILLABUILD%" REM Get MSVC paths call "%MOZILLABUILD%\guess-msvc.bat" -if "%VC71DIR%"=="Not Found" ( +if "%VC71DIR%"=="" ( ECHO "Microsoft Visual C++ version 7.1 was not found. Exiting." pause EXIT /B 1 diff --git a/tools/build-environment/win32/start-msvc8.bat b/tools/build-environment/win32/start-msvc8.bat index 112089515c64..3193c46b4874 100755 --- a/tools/build-environment/win32/start-msvc8.bat +++ b/tools/build-environment/win32/start-msvc8.bat @@ -11,20 +11,42 @@ echo "Mozilla tools directory: %MOZILLABUILD%" REM Get MSVC paths call "%MOZILLABUILD%\guess-msvc.bat" -if "%VC8DIR%"=="Not Found" ( - ECHO "Microsoft Visual C++ version 8 was not found. Exiting." - pause - EXIT /B 1 -) - REM Use the "new" moztools-static set MOZ_TOOLS=%MOZILLABUILD%\moztools rem append moztools to PATH SET PATH=%PATH%;%MOZ_TOOLS%\bin -rem Prepend MSVC paths -call "%VC8DIR%\Bin\vcvars32.bat" +if "%VC8DIR%"=="" ( + if "%VC8EXPRESSDIR%"=="" ( + ECHO "Microsoft Visual C++ version 8 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 "%VC8EXPRESSDIR%\Bin\vcvars32.bat" + + rem Don't set SDK paths in this block, because blocks are early-evaluated. +) +else ( + rem Prepend MSVC paths + call "%VC8DIR%\Bin\vcvars32.bat" +) + +if "%VC8DIR%"=="" ( + rem Prepend SDK paths - Don't use the SDK SetEnv.cmd because it pulls in + rem random VC paths which we don't want. + set PATH=%SDKDIR%\bin;%PATH% + set LIB=%SDKDIR%\lib;%LIB% + set INCLUDE=%SDKDIR%\include;%SDKDIR%\include\atl;%INCLUDE% +) cd "%USERPROFILE%" start "MSYS Shell - MSVC8 Environment" "%MOZILLABUILD%\msys\bin\rxvt" -backspacekey  -sl 2500 -fg %FGCOLOR% -bg %BGCOLOR% -sr -fn "Lucida Console" -tn msys -geometry 80x25 -e /bin/sh --login -i