User:Dart Raiden/Build Miranda

From Miranda NG
Jump to navigation Jump to search
@echo off

:check_permissions
net session >nul 2>&1
if NOT %errorLevel% == 0 (
echo Run batch file with admin rights!
pause
exit )

set sources=D:\dev\miranda-ng
set solution_dir=bin15
set configuration=Release
set miranda_path=%PROGRAMFILES%\Miranda NG
set vspath=%PROGRAMFILES(X86)%\Microsoft Visual Studio\2017\Community
set msbuild=%vspath%\MSBuild\15.0\Bin\MSBuild.exe

:set_vs_variables
call "%vspath%\Common7\Tools\vsdevcmd.bat" -arch=amd64 -host_arch=amd64 -no_logo -vcvars_spectre_libs=spectre

:clean_old_build
cd /d "%sources%\%solution_dir%"
if exist "%sources%\%solution_dir%\%configuration%64" rd /q /s "%sources%\%solution_dir%\%configuration%64" >nul
if exist "%sources%\include\m_version.h" del /q /s "%sources%\include\m_version.h"
call "%sources%\cleaner.bat"

:update_sources
call TortoiseGitProc /command:pull /path:"%sources%"

:build
call "%msbuild%" %sources%\%solution_dir%\my.sln /m /t:Rebuild /p:Configuration=Release /p:Platform=x64
if errorlevel 1 (
echo ********** BUILD FAIL **********
pause
exit )

:sort
cd /d "%sources%\%solution_dir%\%configuration%64"
rd /q /s "%sources%\%solution_dir%\%configuration%64\Obj" >nul
for /r "%sources%\%solution_dir%\%configuration%64" %%i in (*.ilk,*.iobj,*.ipdb) do del /q /s %%i >nul
for /r "%sources%\%solution_dir%\%configuration%64" %%i in (*.pdb) do move %%i "%sources%\%solution_dir%\%configuration%64" >nul

:kill
call Taskkill /im Miranda64.exe /f

:backup
if exist "%miranda_path%\Plugin Updates\Backups" rd /q /s "%miranda_path%\Plugin Updates\Backups" >nul
if exist "%TEMP%\Miranda_backup" rd /q /s "%TEMP%\Miranda_backup" >nul
xcopy /i /s /y "%miranda_path%" "%TEMP%\Miranda_backup" >nul

:replace
cd /d "%sources%\%solution_dir%\%configuration%64"
for %%i in (exe,mir,pdb) do del /q /s "%miranda_path%\*.%%i" >nul
for %%i in (Core,Plugins) do rd /q /s "%miranda_path%\%%i" >nul
xcopy /i /s /y "%sources%\%solution_dir%\%configuration%64" "%miranda_path%" >nul
xcopy /y "%TEMP%\Miranda_backup\Libs\libeay32.mir" "%miranda_path%\Libs" >nul
xcopy /y "%TEMP%\Miranda_backup\Libs\ssleay32.mir" "%miranda_path%\Libs" >nul
xcopy /y "%TEMP%\Miranda_backup\libeay32.pdb" "%miranda_path%" >nul
xcopy /y "%TEMP%\Miranda_backup\ssleay32.pdb" "%miranda_path%" >nul
xcopy /y "%TEMP%\Miranda_backup\Plugins\historypp.dll" "%miranda_path%\Plugins" >nul

:clean
cd /d "%sources%\%solution_dir%"
if exist "%sources%\%solution_dir%\%configuration%64" rd /q /s "%sources%\%solution_dir%\%configuration%64" >nul
if exist "%sources%\include\m_version.h" del /q /s "%sources%\include\m_version.h"

:start
start "" "%PROGRAMFILES%\Miranda NG\Miranda64.exe"

exit

If your %miranda_path% is not on system partition, then remove :check_permissions function.