User:Dart Raiden/Build Miranda: Difference between revisions

From Miranda NG
Jump to navigation Jump to search
No edit summary
No edit summary
Line 11: Line 11:
set vspath=%PROGRAMFILES(X86)%\Microsoft Visual Studio\2017\Community
set vspath=%PROGRAMFILES(X86)%\Microsoft Visual Studio\2017\Community
set msbuild=%vspath%\MSBuild\15.0\Bin\MSBuild.exe
set msbuild=%vspath%\MSBuild\15.0\Bin\MSBuild.exe
set unzip=%PROGRAMFILES%\7-Zip\7z.exe


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


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


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


:build_miranda
:build_miranda
call "%msbuild%" %sources%\%solution_dir%\my.sln /m /t:Rebuild /p:Configuration=Release /p:Platform=x64
"%msbuild%" "%sources%\%solution_dir%\my.sln" /m /t:Rebuild /p:Configuration=Release /p:Platform=x64
if errorlevel 1 (
if errorlevel 1 (
echo ********** MIRANDA BUILD FAIL **********
echo ********** MIRANDA BUILD FAIL **********
Line 32: Line 34:


:build_icons
:build_icons
call "%msbuild%" %sources%\%solution_dir%\my_icons.sln /m /t:Rebuild /p:Configuration=Release /p:Platform=x64
"%msbuild%" "%sources%\%solution_dir%\my_icons.sln" /m /t:Rebuild /p:Configuration=Release /p:Platform=x64
if errorlevel 1 (
if errorlevel 1 (
echo ********** ICONS BUILD FAIL **********
echo ********** ICONS BUILD FAIL **********
Line 40: Line 42:
:sort
:sort
cd /d "%sources%\%solution_dir%\%configuration%64"
cd /d "%sources%\%solution_dir%\%configuration%64"
rd /q /s "%sources%\%solution_dir%\%configuration%64\Obj" >nul
rd /q /s Obj >nul
for /r "%sources%\%solution_dir%\%configuration%64" %%i in (*.ilk,*.iobj,*.ipdb) do del /q /s %%i >nul
for /r %%i in (*.ilk,*.iobj,*.ipdb) do del /q /s %%i >nul
for /r "%sources%\%solution_dir%\%configuration%64\Icons" %%j in (*.pdb) do del /q /s %%j >nul
for /r Icons %%j in (*.pdb) do del /q /s %%j >nul
for /r "%sources%\%solution_dir%\%configuration%64" %%k in (*.pdb) do move %%k "%sources%\%solution_dir%\%configuration%64" >nul
for /r %%k in (*.pdb) do move %%k "%sources%\%solution_dir%\%configuration%64" >nul


:kill
:kill
Line 50: Line 52:


:backup
: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
if exist "%TEMP%\Miranda_backup" rd /q /s "%TEMP%\Miranda_backup" >nul
xcopy /i /s /y "%miranda_path%" "%TEMP%\Miranda_backup" >nul
xcopy /i /s /y "%miranda_path%" "%TEMP%\Miranda_backup" >nul


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


:clean
:get_openssl
cd /d "%sources%\%solution_dir%"
cd %TEMP%
if exist "%sources%\%solution_dir%\%configuration%64" rd /q /s "%sources%\%solution_dir%\%configuration%64" >nul
curl https://www.miranda-ng.org/distr/pdb_x64/miranda64.zip -o miranda64.zip
if exist "%sources%\include\m_version.h" del /q /s "%sources%\include\m_version.h"
"%unzip%" e miranda64.zip libcrypto* libssl* -r -aoa
for %%n in (libcrypto-1_1.mir,libssl-1_1.mir) do xcopy /y %%n "%miranda_path%\Libs" >nul
for %%n in (libcrypto-1_1.pdb,libssl-1_1.pdb) do xcopy /y %%n "%miranda_path%" >nul


:run
:run
runas /trustlevel:0x20000 "%miranda_path%\Miranda64.exe"
start "" "%miranda_path%\Miranda64.exe"


exit
exit

Revision as of 23:39, 14 May 2021

Run build.bat as administrator.

build.bat:

@echo off

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 unzip=%PROGRAMFILES%\7-Zip\7z.exe

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

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

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

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

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

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

:kill
Taskkill /f /im Miranda64.exe
timeout 3

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

:replace
xcopy /i /s /y "%sources%\%solution_dir%\%configuration%64" "%miranda_path%" >nul

:get_openssl
cd %TEMP%
curl https://www.miranda-ng.org/distr/pdb_x64/miranda64.zip -o miranda64.zip
"%unzip%" e miranda64.zip libcrypto* libssl* -r -aoa
for %%n in (libcrypto-1_1.mir,libssl-1_1.mir) do xcopy /y %%n "%miranda_path%\Libs" >nul
for %%n in (libcrypto-1_1.pdb,libssl-1_1.pdb) do xcopy /y %%n "%miranda_path%" >nul

:run
start "" "%miranda_path%\Miranda64.exe"

exit

my.sln and my_icons.sln are my custom solutions.