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).