From 059704edc1ef750302a3cee41ca6ce1ff98f43e0 Mon Sep 17 00:00:00 2001 From: Danny Scott Date: Thu, 28 Apr 2016 23:26:03 +0200 Subject: [PATCH] Update instructions for producing official MSW binaries Simplify the officialbuild.bat script by only checking for "vcXX" instead of accepting both them and "vsYYYY". Also add instructions for using it in the corresponding HOWTO. Closes #17514. --- build/tools/msvs/officialbuild.bat | 78 +++++++++-------------------- docs/contributing/how-to-release.md | 36 +++++++++++++ 2 files changed, 61 insertions(+), 53 deletions(-) diff --git a/build/tools/msvs/officialbuild.bat b/build/tools/msvs/officialbuild.bat index 7e61e96682..728436b870 100755 --- a/build/tools/msvs/officialbuild.bat +++ b/build/tools/msvs/officialbuild.bat @@ -1,4 +1,4 @@ -ECHO OFF +ECHO ON if "%1" == "" goto ERR_NOPARM @@ -19,59 +19,32 @@ if "%1" == "vc140" ( @echo Building for vc140 / vs2015 set comp=140 set compvers=vc140 - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat" -) -if "%1" == "vs2015" ( - @echo Building for vc140 / vs2015 - set comp=140 - set compvers=vc140 - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat" + call "%VS140COMNTOOLS%VsDevCmd.bat" ) if "%1" == "vc120" ( @echo Building for vc120 / vs2013 set comp=120 set compvers=vc120 - call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\VsDevCmd.bat" -) -if "%1" == "vs2013" ( - @echo Building for vc120 / vs2013 - set comp=120 - set compvers=vc120 - call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\VsDevCmd.bat" + call "%VS120COMNTOOLS%VsDevCmd.bat" ) if "%1" == "vc110" ( @echo Building for vc110 / vs2012 set comp=110 set compvers=vc110 - call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat" -) -if "%1" == "vs2012" ( - @echo Building for vc110 / vs2012 - set comp=110 - set compvers=vc110 - call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat" + call "%VS110COMNTOOLS%VsDevCmd.bat" ) if "%1" == "vc100" ( @echo Building for vc100 / vs2010 set comp=100 set compvers=vc100 - call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" -) -if "%1" == "vs2010" ( - @echo Building for vc100 / vs2010 - set comp=100 - set compvers=vc100 - call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" + if "%WINDOWS71SDK%" == "" set WINDOWS71SDK=C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\ + call "%WINDOWS71SDK%SetEnv.cmd" ) if "%1" == "vc90" ( @echo Building for vc90 / vs2008 set comp=90 set compvers=vc90 -) -if "%1" == "vs2008" ( - @echo Building for vc90 / vs2008 - set comp=90 - set compvers=vc90 + if "%WINDOWS61SDK%" == "" set WINDOWS61SDK=C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\ ) if %compvers% == "Unknown" goto ERR_UNKNOWNCOMP @@ -99,12 +72,11 @@ del %compvers%x86_Release.txt del %compvers%x64_Debug.txt del %compvers%x64_Release.txt -if "%compvers%" == "vc140" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64 -if "%compvers%" == "vc120" call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat" -if "%compvers%" == "vc110" call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat" -if "%compvers%" == "vc100" call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /X64 /Release -if "%compvers%" == "vc100" call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /X64 /Release -if "%compvers%" == "vc90" call "C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\SetEnv.Cmd" /X64 /Release +if "%compvers%" == "vc140" call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x64 +if "%compvers%" == "vc120" call "%VS120COMNTOOLS%..\..\VC\vcvarsall.bat" x64 +if "%compvers%" == "vc110" call "%VS110COMNTOOLS%..\..\VC\vcvarsall.bat" x64 +if "%compvers%" == "vc100" call "%WINDOWS71SDK%SetEnv.Cmd" /X64 /Release +if "%compvers%" == "vc90" call "%WINDOWS61SDK%SetEnv.Cmd" /X64 /Release @echo 64 bit release build @@ -114,18 +86,18 @@ if ERRORLEVEL 1 goto ERR_BUILD @echo 64 bit debug build -if "%compvers%" == "vc100" call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /X64 /Debug -if "%compvers%" == "vc90" call "C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\SetEnv.Cmd" /X64 /Debug +if "%compvers%" == "vc100" call "%WINDOWS71SDK%SetEnv.Cmd" /X64 /Debug +if "%compvers%" == "vc90" call "%WINDOWS61SDK%SetEnv.Cmd" /X64 /Debug nmake -f makefile.vc BUILD=debug SHARED=1 COMPILER_VERSION=%comp% OFFICIAL_BUILD=1 TARGET_CPU=AMD64 >> %compvers%x64_Debug.txt if ERRORLEVEL 1 goto ERR_BUILD -if "%compvers%" == "vc140" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 -if "%compvers%" == "vc120" call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat" -if "%compvers%" == "vc110" call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat" -if "%compvers%" == "vc100" call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /X86 /Release -if "%compvers%" == "vc90" call "C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\SetEnv.Cmd" /X86 /Release +if "%compvers%" == "vc140" call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86 +if "%compvers%" == "vc120" call "%VS120COMNTOOLS%..\..\VC\vcvarsall.bat" x86 +if "%compvers%" == "vc110" call "%VS110COMNTOOLS%..\..\VC\vcvarsall.bat" x86 +if "%compvers%" == "vc100" call "%WINDOWS71SDK%SetEnv.Cmd" /X86 /Release +if "%compvers%" == "vc90" call "%WINDOWS61SDK%SetEnv.Cmd" /X86 /Release @echo 32 bit release build @@ -135,8 +107,8 @@ if ERRORLEVEL 1 goto ERR_BUILD @echo 32 bit debug build -if "%compvers%" == "vc100" call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /X86 /Debug -if "%compvers%" == "vc90" call "C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\SetEnv.Cmd" /X86 /Debug +if "%compvers%" == "vc100" call "%WINDOWS71SDK%SetEnv.Cmd" /X86 /Debug +if "%compvers%" == "vc90" call "%WINDOWS61SDK%SetEnv.Cmd" /X86 /Debug nmake -f makefile.vc BUILD=debug SHARED=1 COMPILER_VERSION=%comp% OFFICIAL_BUILD=1 CPPFLAGS=/arch:SSE CFLAGS=/arch:SSE >> %compvers%x86_Debug.txt @@ -171,10 +143,10 @@ goto End :VERSIONS @echo. @echo Compiler Version: One of - - @echo vc140 or vs2015 - @echo vc120 or vs2013 - @echo vc110 or vs2012 - @echo vc100 or vs2010 + @echo vc140 + @echo vc120 + @echo vc110 + @echo vc100 :End diff --git a/docs/contributing/how-to-release.md b/docs/contributing/how-to-release.md index 6ac52d9de0..034f8e1347 100644 --- a/docs/contributing/how-to-release.md +++ b/docs/contributing/how-to-release.md @@ -123,3 +123,39 @@ in the generated files too. Update the definition of the stable and release branches in `build/buildbot/config/include/defs.xml` after a minor version change. + +## MSW Visual Studio Official Builds + +To build official x86 and x64 shared binaries the following are prerequisites: + - Visual Studio 2012, 2013, 2015 + - Windows SDK 6.1, 7.1 (required for x64 builds for Visual Studio 2008, 2010) + - 7z (required for packaging the files) + - fciv (required for generating the checksums) + +The VSxxxCOMNTOOLS environment variables are used to locate the tools required +for Visual Studio 2012, 2013 and 2015. There are no Microsoft defined variables +for the SDKs used for Visual Studio 2008 and 2010. The build will look for the +following environment variables for the Visual Studio 2008 and 2010 SDK tools: + +WINDOWS61SDK +WINDOWS71SDK + +If either of these are blank they are set to the default install location. + +To build binaries for a single compiler, open a command prompt (for Visual +Studio 2008 only an SDK 6.1 developer's command prompt must be used), +cd to the build\msw\tools\msvs folder and run the batch file 'buildofficial' +with the vcXXX version number: + +Visual Studio 2008 vc90 +Visual Studio 2010 vc100 +Visual Studio 2012 vc110 +Visual Studio 2014 vc120 +Visual Studio 2015 vc140 + +This will build all of the x86 and x64 binaries for the selected compiler version, +package them in 7z files and calculate the checksums. The 7z files and the +checksums are output to the build\msw\packages folder. + +All of the compiler packages can be built at the same time by executing the +build\msw\tools\buildall.bat file (including Visual Studio 2000).