summaryrefslogtreecommitdiff
path: root/tools/build_scripts/z1_ReBuild_Full.bat
blob: 5e9a7b1038b38689f5cd14e3fb1f4c962fe9961d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
set tp=%1
if "%tp%"=="" (echo "please specify target platform 32 or 64!" && pause && goto :EOF)
if /i '%tp%' == '64' set bt=64
if /i '%tp%' == '32' (
  set ptr=Win32
) else if /i '%tp%' == '64' (
  set ptr=X64
)

set comp=%2
if "%comp%"=="" (echo "please specify target compiler folder!" && pause && goto :EOF)

call a_SetVar%tp%.bat

if exist git_error.txt del /f /q git_error.txt

pushd %comp%
if not exist Logs mkdir Logs

if /i '%tp%' == '32' (
  if exist "Release" rd /Q /S "Release" >nul
)
if exist "Release%tp%" rd /Q /S "Release%tp%" >nul
if exist "Symbols%tp%" rd /Q /S "Symbols%tp%" >nul

if exist "..\include\m_version.h" del /F /Q "..\include\m_version.h"
pushd ..\build
call make_ver.bat
popd

if "%comp%" == "bin10" (
   start /min /wait z1_ReBuild_w810.bat %tp%
)

if "%comp%"=="bin10" (
   call "%VS100COMNTOOLS%\..\..\VC\vcvarsall.bat"
) else if "%comp%"=="bin12" (
   call "%VS120COMNTOOLS%\..\..\VC\vcvarsall.bat"
) else if "%comp%"=="bin15" (
   call "%VS141COMNTOOLS%\..\..\VC\Auxiliary\Build\vcvars%tp%.bat"
)

MsBuild.exe "mir_full.sln" /m /t:Rebuild /p:Configuration=Release;Platform="%ptr%" /fileLogger /fileLoggerParameters:LogFile=Logs\full%tp%.log;errorsonly;warningsonly;summary
MsBuild.exe "mir_icons.sln" /m /t:Rebuild /p:Configuration=Release;Platform="%ptr%" /fileLogger /fileLoggerParameters:LogFile=Logs\icons%tp%.log;errorsonly;warningsonly;summary

call pascal%tp%.bat
pushd ..\plugins\NotifyAnything\SendLog 
call compile%tp%.bat "%comp%"
popd

if exist Release ren Release Release32
md Symbols%tp%
rd /S /Q "Release%tp%\Obj" >nul
xcopy /S /V /Y "Release%tp%\*.pdb" "Symbols%tp%\"
del /F /S /Q "Release%tp%\*.pdb" >> nul

md "Release%tp%\Languages"

pushd "..\langpacks\tool"
LangpackSuite.exe \q \prussian \n..\..\%comp%\Release%tp%\Languages\langpack_russian.txt
LangpackSuite.exe \q \pukrainian \n..\..\%comp%\Release%tp%\Languages\langpack_ukrainian.txt
popd

pushd "..\tools\lpgen"
cscript /nologo translate.js /sourcelang:"belarusian" /release:"..\..\%comp%\Release%tp%\Languages\langpack_belarusian.txt"
cscript /nologo translate.js /sourcelang:"bulgarian" /release:"..\..\%comp%\Release%tp%\langpack_bulgarian_nodupes.txt"
copy /B "..\..\%comp%\Release%tp%\langpack_bulgarian_nodupes.txt"+"..\..\langpacks\bulgarian\=DUPES=.txt" ..\..\%comp%\Release%tp%\Languages\langpack_bulgarian.txt
cscript /nologo translate.js /sourcelang:"czech" /release:"..\..\%comp%\Release%tp%\Languages\langpack_czech.txt"
cscript /nologo translate.js /sourcelang:"english_gb" /release:"..\..\%comp%\Release%tp%\Languages\langpack_english_gb.txt"
cscript /nologo translate.js /sourcelang:"french" /release:"..\..\%comp%\Release%tp%\Languages\langpack_french.txt"
cscript /nologo translate.js /sourcelang:"german" /release:"..\..\%comp%\Release%tp%\Languages\langpack_german.txt"
cscript /nologo translate.js /sourcelang:"polish" /release:"..\..\%comp%\Release%tp%\Languages\langpack_polish.txt"
cscript /nologo translate.js /sourcelang:"serbian" /release:"..\..\%comp%\Release%tp%\Languages\langpack_serbian.txt"
cscript /nologo translate.js /sourcelang:"spanish" /release:"..\..\%comp%\Release%tp%\Languages\langpack_spanish.txt"
del /f /q ..\..\%comp%\Release%tp%\*_nodupes.txt
popd

md "Release%tp%\Docs"
md "Release%tp%\Gadgets"
md "Release%tp%\Sounds"
md "Release%tp%\Scripts"
md "Release%tp%\Plugins\Listeningto"
md "Release%tp%\Plugins\BASS"
md "Release%tp%\Plugins\Quotes"
md "Release%tp%\Plugins\Weather"

copy /V /Y ..\plugins\FavContacts\gadget\favcontacts.gadget "Release%tp%\Gadgets\"
copy /V /Y ..\plugins\Nudge\docs\Sounds\*.wav "Release%tp%\Sounds\"
copy /V /Y ..\plugins\ListeningTo\listeningto\*.dll "Release%tp%\Plugins\Listeningto\"
copy /V /Y ..\plugins\Quotes\docs\Utility\*.xml "Release%tp%\Plugins\Quotes\"
copy /V /Y ..\plugins\Weather\docs\weather\*.ini "Release%tp%\Plugins\Weather\"
copy /V /Y ..\plugins\Actman\services.ini "Release%tp%\Plugins\"
copy /V /Y ..\plugins\Boltun\src\Engine\boltun.mindw "Release%tp%\Plugins\"
copy /V /Y ..\plugins\Watrack\player.ini "Release%tp%\Plugins\"
copy /V /Y ..\plugins\RemovePersonalSettings\docs\RemovePersonalSettings.ini "Release%tp%\"

if /i '%tp%' == '32' (
  md "Release32\Plugins\Importtxt"
  copy /V /Y ..\plugins\ImportTXT\importtxt\*.ini "Release32\Plugins\Importtxt\"
  copy /V /Y ..\redist\pcre3.dll "Release32\Libs"
)

rem xcopy /S /V /Y "..\delphi\%tp%" "Release%tp%"
xcopy /S /V /Y "..\pre-symbols\%comp%\%tp%" "Symbols%tp%"
xcopy /S /V /Y "..\pre-build\%comp%\%tp%" "Release%tp%"

cd "Release%tp%"
dir /B /S *.dll | %SourceDir%\tools\rebaser\rebaser.exe /BASE:13000000
dir /B /S *.mir | %SourceDir%\tools\rebaser\rebaser.exe /BASE:12000000

set hashes=%cd%\hashes.txt
%SourceDir%\tools\checksum\checksum.exe Miranda%tp%.exe > %hashes%
for /f "tokens=1,2 delims= " %%i in ('%SourceDir%\tools\md5.exe Languages\lang*.txt') do echo %%j %%i >> %hashes%

rem get checksum  for folder(first param) and ext (second param)
call :checksum Plugins dll
call :checksum Icons dll

copy /V /Y ..\..\docs\mirandaboot.ini
copy /V /Y ..\..\redist\x%tp%\DbChecker.bat
copy /V /Y ..\..\redist\x%tp%\bass\*.dll "Plugins\BASS"

popd
exit

rem the subroutine itself starts here
:checksum
rem change the dir to first parameter, and remember it
pushd %1
rem now we are here, let's get the hashes for dll
for /F "tokens=1,2 delims= " %%a in ('%SourceDir%\tools\checksum\checksum.exe *.%2') do echo %1\%%a %%b >> %hashes%
rem return to the dir, where subroutine was called
popd
rem this is just for the case if another sobroutine will be after this one :)
goto :eof