build.bat 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. @echo off
  2. rem See 'readme.md' file
  3. if "%PROCESSOR_ARCHITECTURE%"=="x86" (
  4. set "PROGRAMFILES32=%ProgramFiles%"
  5. set "PROGRAMFILES64=%ProgramW6432%"
  6. ) else if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
  7. set "PROGRAMFILES32=%ProgramFiles(x86)%"
  8. set "PROGRAMFILES64=%ProgramFiles%"
  9. ) else (
  10. echo Unrecognized architecture %PROCESSOR_ARCHITECTURE%
  11. exit /B 1
  12. )
  13. set BDS=%PROGRAMFILES32%\Embarcadero\Studio\22.0
  14. set VS_PATH_REL=Microsoft Visual Studio\2022
  15. set MSBUILD_REL=MSBuild\Current\Bin\MSBuild.exe
  16. rem Visual Studio Community 2022 (development machine)
  17. set MSBUILD_COMMUNITY=%PROGRAMFILES64%\%VS_PATH_REL%\Community\%MSBUILD_REL%
  18. set MSBUILD=%MSBUILD_COMMUNITY%
  19. rem Visual Studio 2022 Build Tools (build server)
  20. if not exist "%MSBUILD%" set MSBUILD=%PROGRAMFILES32%\%VS_PATH_REL%\BuildTools\%MSBUILD_REL%
  21. if not exist "%MSBUILD%" echo Cannot find MSBUILD (%MSBUILD%, %MSBUILD_COMMUNITY%), install Build Tools for Visual Studio 2022 & exit /B 1
  22. set WITH_DOTNET=1
  23. if "%BUILD_TARGET%"=="" set BUILD_TARGET=Build
  24. if "%BUILD_CONFIG%"=="" set BUILD_CONFIG=Release
  25. set BUILDTOOLS=%~dp0\buildtools
  26. cd libs
  27. set INTERM_PATH=%~dp0\source
  28. call buildlibs.bat
  29. if errorlevel 1 echo Error building libs & exit /B 1
  30. set INTERM_PATH=
  31. cd ..\source
  32. set BDS_BUILD_PROPERTIES=RELEASE_TYPE=%RELEASE_TYPE%;CONFIG=%BUILD_CONFIG%;INTERM_PATH=.;FINAL_PATH=.
  33. "%MSBUILD%" WinSCP.groupproj /t:%BUILD_TARGET% /p:%BDS_BUILD_PROPERTIES%
  34. "%MSBUILD%" DragExt.cbproj /t:%BUILD_TARGET% /p:%BDS_BUILD_PROPERTIES%;Platform=Win64
  35. if "%WITH_DOTNET%"=="0" goto SKIP_DOTNET
  36. cd ..\dotnet
  37. set DOTNET_BUILD_PROPERTIES=INTERM_PATH=.;FINAL_PATH=.
  38. dotnet restore WinSCPnet.csproj -p:%DOTNET_BUILD_PROPERTIES%
  39. dotnet build WinSCPnet.csproj -c %BUILD_CONFIG% -p:%DOTNET_BUILD_PROPERTIES%
  40. :SKIP_DOTNET