1*3117ece4Schristos@echo off 2*3117ece4Schristos 3*3117ece4SchristosIF "%1%" == "" GOTO display_help 4*3117ece4Schristos 5*3117ece4SchristosSETLOCAL 6*3117ece4Schristos 7*3117ece4SchristosSET msbuild_version=%1 8*3117ece4Schristos 9*3117ece4SchristosSET msbuild_platform=%2 10*3117ece4SchristosIF "%msbuild_platform%" == "" SET msbuild_platform=x64 11*3117ece4Schristos 12*3117ece4SchristosSET msbuild_configuration=%3 13*3117ece4SchristosIF "%msbuild_configuration%" == "" SET msbuild_configuration=Release 14*3117ece4Schristos 15*3117ece4SchristosSET msbuild_toolset=%4 16*3117ece4Schristos 17*3117ece4SchristosGOTO build 18*3117ece4Schristos 19*3117ece4Schristos:display_help 20*3117ece4Schristos 21*3117ece4Schristosecho Syntax: build.generic.cmd msbuild_version msbuild_platform msbuild_configuration msbuild_toolset 22*3117ece4Schristosecho msbuild_version: VS installed version (VS2012, VS2013, VS2015, VS2017, VS2019, ...) 23*3117ece4Schristosecho msbuild_platform: Platform (x64 or Win32) 24*3117ece4Schristosecho msbuild_configuration: VS configuration (Release or Debug) 25*3117ece4Schristosecho msbuild_toolset: Platform Toolset (v100, v110, v120, v140, v141, v142, ...) 26*3117ece4Schristos 27*3117ece4SchristosEXIT /B 1 28*3117ece4Schristos 29*3117ece4Schristos:build 30*3117ece4Schristos 31*3117ece4SchristosSET msbuild="%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" 32*3117ece4SchristosSET msbuild_vs2017community="%programfiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" 33*3117ece4SchristosSET msbuild_vs2017professional="%programfiles(x86)%\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" 34*3117ece4SchristosSET msbuild_vs2017enterprise="%programfiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" 35*3117ece4SchristosIF %msbuild_version% == VS2013 SET msbuild="%programfiles(x86)%\MSBuild\12.0\Bin\MSBuild.exe" 36*3117ece4SchristosIF %msbuild_version% == VS2015 SET msbuild="%programfiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe" 37*3117ece4SchristosIF %msbuild_version% == VS2017Community SET msbuild=%msbuild_vs2017community% 38*3117ece4SchristosIF %msbuild_version% == VS2017Professional SET msbuild=%msbuild_vs2017professional% 39*3117ece4SchristosIF %msbuild_version% == VS2017Enterprise SET msbuild=%msbuild_vs2017enterprise% 40*3117ece4SchristosIF %msbuild_version% == VS2017 ( 41*3117ece4Schristos IF EXIST %msbuild_vs2017community% SET msbuild=%msbuild_vs2017community% 42*3117ece4Schristos IF EXIST %msbuild_vs2017professional% SET msbuild=%msbuild_vs2017professional% 43*3117ece4Schristos IF EXIST %msbuild_vs2017enterprise% SET msbuild=%msbuild_vs2017enterprise% 44*3117ece4Schristos) 45*3117ece4Schristos 46*3117ece4Schristos:: VS2019 47*3117ece4SchristosSET msbuild_vs2019community="%programfiles(x86)%\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" 48*3117ece4SchristosSET msbuild_vs2019professional="%programfiles(x86)%\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe" 49*3117ece4SchristosSET msbuild_vs2019enterprise="%programfiles(x86)%\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe" 50*3117ece4SchristosIF %msbuild_version% == VS2019 ( 51*3117ece4Schristos IF EXIST %msbuild_vs2019community% SET msbuild=%msbuild_vs2019community% 52*3117ece4Schristos IF EXIST %msbuild_vs2019professional% SET msbuild=%msbuild_vs2019professional% 53*3117ece4Schristos IF EXIST %msbuild_vs2019enterprise% SET msbuild=%msbuild_vs2019enterprise% 54*3117ece4Schristos) 55*3117ece4Schristos 56*3117ece4SchristosSET project="%~p0\..\VS2010\zstd.sln" 57*3117ece4Schristos 58*3117ece4SchristosSET msbuild_params=/verbosity:minimal /nologo /t:Clean,Build /p:Platform=%msbuild_platform% /p:Configuration=%msbuild_configuration% 59*3117ece4SchristosIF NOT "%msbuild_toolset%" == "" SET msbuild_params=%msbuild_params% /p:PlatformToolset=%msbuild_toolset% 60*3117ece4Schristos 61*3117ece4SchristosSET output=%~p0%bin 62*3117ece4SchristosSET output="%output%/%msbuild_configuration%/%msbuild_platform%/" 63*3117ece4SchristosSET msbuild_params=%msbuild_params% /p:OutDir=%output% 64*3117ece4Schristos 65*3117ece4Schristosecho ### Building %msbuild_version% project for %msbuild_configuration% %msbuild_platform% (%msbuild_toolset%)... 66*3117ece4Schristosecho ### Build Params: %msbuild_params% 67*3117ece4Schristos 68*3117ece4Schristos%msbuild% %project% %msbuild_params% 69*3117ece4SchristosIF ERRORLEVEL 1 EXIT /B 1 70*3117ece4Schristosecho # Success 71*3117ece4Schristosecho # OutDir: %output% 72*3117ece4Schristosecho # 73