User:Dart Raiden/Build Miranda: Difference between revisions
Jump to navigation
Jump to search
Dart Raiden (talk | contribs) No edit summary |
Dart Raiden (talk | contribs) No edit summary |
||
(19 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
It is assumed that you have [https://www.7-zip.org 7-Zip], [https://www.nasm.us NASM], [https://strawberryperl.com Strawberry Perl], and [[Building_Miranda|Visual Studion 2017]] installed. | |||
build.bat: | build.bat: | ||
<pre style="overflow:auto;"> | <pre style="overflow:auto;"> | ||
@echo off | @echo off | ||
:CheckAdminRights | |||
reg query "HKU\S-1-5-19\Environment" >nul 2>&1 | |||
if not %ErrorLevel% == 0 ( | |||
echo Please run as administator^^! | |||
pause | pause | ||
exit | exit /b 1 | ||
) | ) | ||
set | :SetVariables | ||
set "unpacker=%ProgramFiles%\7-Zip\7zG.exe" | |||
set | set "Configuration=Release" | ||
set | set "Miranda=%ProgramFiles%\Miranda NG" | ||
set | set "Vs=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community" | ||
set | set "Msbuild=%Vs%\MSBuild\15.0\Bin\MSBuild.exe" | ||
set | set "Openssl=D:\dev\openssl" | ||
set "Path=%ProgramFiles%\NASM;%Path%" | |||
set "Solution=bin15" | |||
set "Sources=D:\dev\miranda-ng" | |||
:CleanSources | |||
if exist "%Sources%\%Solution%\%Configuration%64" rd /s /q "%Sources%\%Solution%\%Configuration%64" | |||
cd /d "%Sources%" | |||
call cleaner.bat | |||
:UpdateSources | |||
git --work-tree="%Sources%" --git-dir="%Sources%/.git" pull | |||
:: or you can use something like tortoisegitproc /command:pull /path:"%Sources%" | |||
: | :SetVsEnvironmentVariables | ||
call "% | call "%Vs%\VC\Auxiliary\Build\vcvarsall.bat" x64 | ||
: | :BuildTdlib | ||
title Building TDLib... | |||
"%Msbuild%" "%Sources%\%Solution%\tdlib.sln" /m /t:Rebuild /p:Configuration=Release | |||
if not %ErrorLevel% == 0 ( | |||
echo ********** TDLib build failed ********** | |||
pause | |||
exit /b 1 | |||
) | |||
: | :BuildMiranda | ||
title Building Miranda... | |||
"%Msbuild%" "%Sources%\%Solution%\my.sln" /m /t:Rebuild /p:Configuration=Release | |||
if not %ErrorLevel% == 0 ( | |||
echo ********** Miranda build failed ********** | |||
pause | |||
exit /b 1 | |||
) | |||
: | :BuildIcons | ||
"% | title Building icons... | ||
if | "%Msbuild%" "%Sources%\%Solution%\my_icons.sln" /m /t:Rebuild /p:Configuration=Release | ||
echo ********** | if not %ErrorLevel% == 0 ( | ||
pause | echo ********** Icons build failed ********** | ||
exit ) | pause | ||
exit /b 1 | |||
) | |||
: | :BuildLangpack | ||
"% | mkdir "%Sources%\%Solution%\%Configuration%64\Languages" | ||
cscript /nologo "%Sources%\tools\lpgen\translate.js" /sourcelang:"russian" /release:"%Sources%\%Solution%\%Configuration%64\Languages\langpack_russian.txt" | |||
: | :SortCompiledFiles | ||
cd /d "% | cd /d "%Sources%\%Solution%\%Configuration%64" | ||
rd /q /s Obj | rd /q /s Obj | ||
for /r %%i in (*.ilk,*.iobj,*.ipdb) do del /q /s %%i | for /r %%i in (*.ilk,*.iobj,*.ipdb) do del /q /s %%i | ||
for /r Icons %%j in (*.pdb) do del /q /s %%j | for /r Icons %%j in (*.pdb) do del /q /s %%j | ||
for /r %%k in (*.pdb) do move %%k "% | for /r %%k in (*.pdb) do move %%k "%Sources%\%Solution%\%Configuration%64" | ||
: | :KillMiranda | ||
Taskkill /f /im Miranda64.exe | Taskkill /f /im Miranda64.exe | ||
: | :BackupOldMiranda | ||
if exist "% | if exist "%Temp%\Miranda_backup" rd /q /s "%Temp%\Miranda_backup" | ||
xcopy /i /s /y "% | xcopy /i /s /y "%Miranda%" "%Temp%\Miranda_backup" | ||
: | :UpdateMiranda | ||
xcopy /i /s /y "% | xcopy /i /s /y "%Sources%\%Solution%\%Configuration%64" "%Miranda%" | ||
: | :BuildOpenssl | ||
cd % | title Building OpenSSL... | ||
cd /d "%Openssl%" | |||
"% | git apply "%Sources%\tools\openssl\openssl-mir-changes.patch" | ||
for %%n in (libcrypto- | perl "%Openssl%\Configure" shared VC-WIN64A | ||
for %%n in (libcrypto- | nmake | ||
for %%n in (libcrypto-3.mir,libssl-3.mir) do xcopy /y %%n "%Miranda%\Libs" | |||
for %%n in (libcrypto-3.pdb,libssl-3.pdb) do xcopy /y %%n "%Miranda%" | |||
: | :RunMiranda | ||
:: dirty hack to prevent the app from inheriting elevated permissions | :: dirty hack to prevent the app from inheriting elevated permissions | ||
explorer "% | explorer "%Miranda%\Miranda64.exe" | ||
exit | exit /b 0 | ||
</pre> | </pre> | ||
my.sln and my_icons.sln are my custom solutions. | my.sln and my_icons.sln are my custom solutions. |
Latest revision as of 01:16, 22 March 2024
It is assumed that you have 7-Zip, NASM, Strawberry Perl, and Visual Studion 2017 installed.
build.bat:
@echo off :CheckAdminRights reg query "HKU\S-1-5-19\Environment" >nul 2>&1 if not %ErrorLevel% == 0 ( echo Please run as administator^^! pause exit /b 1 ) :SetVariables set "unpacker=%ProgramFiles%\7-Zip\7zG.exe" set "Configuration=Release" set "Miranda=%ProgramFiles%\Miranda NG" set "Vs=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community" set "Msbuild=%Vs%\MSBuild\15.0\Bin\MSBuild.exe" set "Openssl=D:\dev\openssl" set "Path=%ProgramFiles%\NASM;%Path%" set "Solution=bin15" set "Sources=D:\dev\miranda-ng" :CleanSources if exist "%Sources%\%Solution%\%Configuration%64" rd /s /q "%Sources%\%Solution%\%Configuration%64" cd /d "%Sources%" call cleaner.bat :UpdateSources git --work-tree="%Sources%" --git-dir="%Sources%/.git" pull :: or you can use something like tortoisegitproc /command:pull /path:"%Sources%" :SetVsEnvironmentVariables call "%Vs%\VC\Auxiliary\Build\vcvarsall.bat" x64 :BuildTdlib title Building TDLib... "%Msbuild%" "%Sources%\%Solution%\tdlib.sln" /m /t:Rebuild /p:Configuration=Release if not %ErrorLevel% == 0 ( echo ********** TDLib build failed ********** pause exit /b 1 ) :BuildMiranda title Building Miranda... "%Msbuild%" "%Sources%\%Solution%\my.sln" /m /t:Rebuild /p:Configuration=Release if not %ErrorLevel% == 0 ( echo ********** Miranda build failed ********** pause exit /b 1 ) :BuildIcons title Building icons... "%Msbuild%" "%Sources%\%Solution%\my_icons.sln" /m /t:Rebuild /p:Configuration=Release if not %ErrorLevel% == 0 ( echo ********** Icons build failed ********** pause exit /b 1 ) :BuildLangpack mkdir "%Sources%\%Solution%\%Configuration%64\Languages" cscript /nologo "%Sources%\tools\lpgen\translate.js" /sourcelang:"russian" /release:"%Sources%\%Solution%\%Configuration%64\Languages\langpack_russian.txt" :SortCompiledFiles cd /d "%Sources%\%Solution%\%Configuration%64" rd /q /s Obj for /r %%i in (*.ilk,*.iobj,*.ipdb) do del /q /s %%i for /r Icons %%j in (*.pdb) do del /q /s %%j for /r %%k in (*.pdb) do move %%k "%Sources%\%Solution%\%Configuration%64" :KillMiranda Taskkill /f /im Miranda64.exe :BackupOldMiranda if exist "%Temp%\Miranda_backup" rd /q /s "%Temp%\Miranda_backup" xcopy /i /s /y "%Miranda%" "%Temp%\Miranda_backup" :UpdateMiranda xcopy /i /s /y "%Sources%\%Solution%\%Configuration%64" "%Miranda%" :BuildOpenssl title Building OpenSSL... cd /d "%Openssl%" git apply "%Sources%\tools\openssl\openssl-mir-changes.patch" perl "%Openssl%\Configure" shared VC-WIN64A nmake for %%n in (libcrypto-3.mir,libssl-3.mir) do xcopy /y %%n "%Miranda%\Libs" for %%n in (libcrypto-3.pdb,libssl-3.pdb) do xcopy /y %%n "%Miranda%" :RunMiranda :: dirty hack to prevent the app from inheriting elevated permissions explorer "%Miranda%\Miranda64.exe" exit /b 0
my.sln and my_icons.sln are my custom solutions.