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