build.generic.cmd 3.2 KB

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