Removed superfluous MakeNSIS argument.
[LameXP.git] / etc / Deployment / make.bat
blobd84007b57aa8b9dbdc9f7a10869410efe3bc0471
1 @echo off
2 setlocal ENABLEDELAYEDEXPANSION
4 :: ---------------------------------------------------------------------------
5 :: SETUP ENVIRONMENT
6 :: ---------------------------------------------------------------------------
8 set "_LAMEXP_PATHS_INITIALIZED_="
10 call "%~dp0\_paths.bat"
11 call "%~dp0\_date.bat"
13 if "%LAMEXP_CONFIG%"=="" (
14         set "LAMEXP_CONFIG=Release"
17 if "%LAMEXP_PLATFORM%"=="" (
18         set "LAMEXP_PLATFORM=Win32"
21 if not "%LAMEXP_REDIST%"=="0" (
22         set "LAMEXP_REDIST=1"
25 :: ---------------------------------------------------------------------------
26 :: SETUP PATHS
27 :: ---------------------------------------------------------------------------
29 set "BIN_PATH=%~dp0\..\..\bin\%LAMEXP_PLATFORM%\%LAMEXP_CONFIG%"
30 set "TMP_PATH=%TEMP%\~LameXP.%LAMEXP_CONFIG%.%ISO_DATE%.%RANDOM%.tmp"
32 if "%LAMEXP_SKIP_BUILD%"=="YES" (
33         goto SkipBuildThisTime
36 :: ---------------------------------------------------------------------------
37 :: CLEAN UP
38 :: ---------------------------------------------------------------------------
40 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "\n==========================================================================="
41 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "Cleaning up..."
42 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "===========================================================================\n"
44 for %%i in (bin,obj,tmp,ipch) do (
45         del /Q /S /F "%~dp0\..\..\%%i\*.*"
48 :: ---------------------------------------------------------------------------
49 :: UPDATE LANGUAGE FILES AND DCOS
50 :: ---------------------------------------------------------------------------
52 call "%~dp0\_mkdocs.bat"
53 call "%~dp0\_lupdate.bat"
55 :: ---------------------------------------------------------------------------
56 :: BUILD THE BINARIES
57 :: ---------------------------------------------------------------------------
59 call "%~dp0\_build.bat" "%~dp0\..\..\%PATH_VCPROJ%" "%LAMEXP_PLATFORM%" "%LAMEXP_CONFIG%"
61 :SkipBuildThisTime
63 :: ---------------------------------------------------------------------------
64 :: READ VERSION INFO
65 :: ---------------------------------------------------------------------------
67 call "%~dp0\_version.bat"
69 :: ---------------------------------------------------------------------------
70 :: GENERATE OUTPUT FILE NAME
71 :: ---------------------------------------------------------------------------
73 mkdir "%~dp0\..\..\out" 2> NUL
74 set "OUT_NAME=%VER_LAMEXP_BASENAME%.%ISO_DATE%.%LAMEXP_CONFIG:_=-%.Build-%VER_LAMEXP_BUILD%"
75 set "OUT_FILE=%~dp0\..\..\out\!OUT_NAME!"
76 for /L %%n in (1, 1, 99) do (
77         if exist "!OUT_FILE!.exe" set "OUT_NAME=%VER_LAMEXP_BASENAME%.%ISO_DATE%.%LAMEXP_CONFIG:_=-%.Build-%VER_LAMEXP_BUILD%.Update-%%n"
78         if exist "!OUT_FILE!.zip" set "OUT_NAME=%VER_LAMEXP_BASENAME%.%ISO_DATE%.%LAMEXP_CONFIG:_=-%.Build-%VER_LAMEXP_BUILD%.Update-%%n"
79         set "OUT_FILE=%~dp0\..\..\out\!OUT_NAME!"
82 :: ---------------------------------------------------------------------------
83 :: DELETE OLD OUTPUT FILE
84 :: ---------------------------------------------------------------------------
86 for %%i in (exe,sfx,zip,txt) do (
87         del "%OUT_FILE%.%%i" 2> NUL
88         if exist "%OUT_FILE%.%%i" (
89                 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to delete existing output file^!\n"
90                 pause && exit
91         )
94 :: ---------------------------------------------------------------------------
95 :: COPY BINARY FILES AND REDIST
96 :: ---------------------------------------------------------------------------
98 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "\n==========================================================================="
99 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "Copying binary files..."
100 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "===========================================================================\n"
102 rd /S /Q "%TMP_PATH%" 2> NUL
103 mkdir "%TMP_PATH%"
105 copy "%BIN_PATH%\LameXP.exe" "%TMP_PATH%"
106 if "%LAMEXP_REDIST%"=="1" (
107         copy "%BIN_PATH%\MUtils32-?.dll" "%TMP_PATH%"
108         mkdir "%TMP_PATH%\imageformats"
109         for %%i in (Core,Gui,Network,Xml,Svg) do (
110                 copy "%~dp0\..\..\..\Prerequisites\Qt4\v%PATH_VCTOOL%_xp\Shared\bin\Qt%%i4.dll" "%TMP_PATH%"
111         )
112         for %%i in (gif,ico,jpeg,mng,svg,tga,tiff) do (
113                 copy "%~dp0\..\..\..\Prerequisites\Qt4\v%PATH_VCTOOL%_xp\Shared\plugins\imageformats\q%%i4.dll" "%TMP_PATH%\imageformats"
114         )
115         copy "%PATH_MSCDIR%\VC\redist\x86\Microsoft.VC%PATH_VCTOOL%.CRT\*.dll" "%TMP_PATH%"
116         if %PATH_VCTOOL% GEQ 140 (
117                 copy "%PATH_WINSDK%\Redist\ucrt\DLLs\x86\*.dll" "%TMP_PATH%"
118         )
121 for %%e in (LameXP,Qt,MUtils) do (
122         for %%x in (exe,dll) do (
123                 for %%f in (%TMP_PATH%\%%e*.%%x) do (
124                         "%PATH_UPXBIN%\upx.exe" --best "%%f"
125                 )
126         )
129 copy "%~dp0\..\..\ReadMe.txt"           "%TMP_PATH%"
130 copy "%~dp0\..\..\License.txt"          "%TMP_PATH%"
131 copy "%~dp0\..\..\Copying.txt"          "%TMP_PATH%"
132 copy "%~dp0\..\..\doc\Changelog.html"   "%TMP_PATH%"
133 copy "%~dp0\..\..\doc\Translate.html"   "%TMP_PATH%"
134 copy "%~dp0\..\..\doc\Manual.html"      "%TMP_PATH%"
135 copy "%~dp0\..\..\doc\FAQ.html"         "%TMP_PATH%"
137 mkdir "%TMP_PATH%\img\lamexp"
138 copy "%~dp0\..\..\doc\img\lamexp\*.png" "%TMP_PATH%\img\lamexp"
140 if not "%VER_LAMEXP_TYPE%" == "Final" (
141         if not "%VER_LAMEXP_TYPE%" == "Hotfix" (
142                 copy "%~dp0\..\..\doc\PRE_RELEASE_INFO.txt" "%TMP_PATH%"
143         )
146 if exist "%~dp0\_postproc.bat" (
147         call "%~dp0\_postproc.bat" "%TMP_PATH%"
150 attrib +R "%TMP_PATH%\*.txt"
151 attrib +R "%TMP_PATH%\*.html"
152 attrib +R "%TMP_PATH%\*.exe"
153 attrib +R "%TMP_PATH%\*.dll"
155 :: ---------------------------------------------------------------------------
156 :: BUILD INSTALLER
157 :: ---------------------------------------------------------------------------
159 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "\n==========================================================================="
160 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "Creating release packages..."
161 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "===========================================================================\n"
163 "%~dp0\..\..\..\Prerequisites\GnuWin32\echo.exe" " LameXP - Audio Encoder Front-End > "%OUT_FILE%.txt"
164 "%~dp0\..\..\..\Prerequisites\GnuWin32\echo.exe" " v%VER_LAMEXP_MAJOR%.%VER_LAMEXP_MINOR_HI%%VER_LAMEXP_MINOR_LO% %VER_LAMEXP_TYPE%-%VER_LAMEXP_PATCH% (Build #%VER_LAMEXP_BUILD%)\n >> "%OUT_FILE%.txt"
165 "%~dp0\..\..\..\Prerequisites\GnuWin32\echo.exe" " Built on %ISO_DATE% at %TIME%\n\n >> "%OUT_FILE%.txt"
166 "%~dp0\..\..\..\Prerequisites\GnuWin32\echo.exe" " ---------------------------\nREADME.TXT\n--------------------------- >> "%OUT_FILE%.txt"
167 "%~dp0\..\..\..\Prerequisites\GnuWin32\cat.exe"  "%~dp0\..\..\ReadMe.txt" >> "%OUT_FILE%.txt"
168 "%~dp0\..\..\..\Prerequisites\GnuWin32\echo.exe" "\n\n---------------------------\nLICENSE.TXT\n---------------------------\n >> "%OUT_FILE%.txt"
169 "%~dp0\..\..\..\Prerequisites\GnuWin32\cat.exe"  "%~dp0\..\..\License.txt" >> "%OUT_FILE%.txt"
171 pushd "%TMP_PATH%"
172 "%~dp0\..\..\..\Prerequisites\GnuWin32\zip.exe" -r -9 -z "%OUT_FILE%.zip" "*.*" < "%OUT_FILE%.txt"
173 popd
175 "%~dp0\..\..\..\Prerequisites\NSIS\makensis.exe" "/DLAMEXP_DATE=%ISO_DATE%" "/DLAMEXP_VERSION=%VER_LAMEXP_MAJOR%.%VER_LAMEXP_MINOR_HI%%VER_LAMEXP_MINOR_LO%" "/DLAMEXP_BUILD=%VER_LAMEXP_BUILD%" "/DLAMEXP_INSTTYPE=%VER_LAMEXP_TYPE%" "/DLAMEXP_PATCH=%VER_LAMEXP_PATCH%" "/DLAMEXP_OUTPUT_FILE=%OUT_FILE%.sfx" "/DLAMEXP_SOURCE_PATH=%TMP_PATH%" "%~dp0\..\NSIS\setup.nsi"
176 if %ERRORLEVEL% NEQ 0 (
177         "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to build installer^!\n"
178         pause && exit
181 call "%~dp0\..\..\..\Prerequisites\SevenZip\7zSD.cmd" "%OUT_FILE%.sfx" "%OUT_FILE%.exe" "LameXP Setup" "LameXP-Setup-r%VER_LAMEXP_BUILD%"
182 if %ERRORLEVEL% NEQ 0 (
183         "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to build installer^!\n"
184         pause && exit
187 set "VER_FILEVER=%VER_LAMEXP_MAJOR%.%VER_LAMEXP_MINOR_HI%.%VER_LAMEXP_MINOR_LO%.%VER_LAMEXP_PATCH%"
188 set "VER_PRODUCT=LameXP - Audio Encoder Front-End"
189 "%~dp0\..\..\..\Prerequisites\VerPatch\verpatch.exe" "%OUT_FILE%.exe" "%VER_FILEVER%" /pv "%VER_FILEVER%" /fn /s desc "%VER_PRODUCT%" /s product "%VER_PRODUCT%" /s title "LameXP Installer SFX" /s copyright "Copyright (C) LoRd_MuldeR" /s company "Free Software Foundation"
190 if %ERRORLEVEL% NEQ 0 (
191         "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to build installer^!\n"
192         pause && exit
195 :: ---------------------------------------------------------------------------
196 :: CLEAN UP
197 :: ---------------------------------------------------------------------------
199 attrib -R "%TMP_PATH%\*.txt"
200 attrib -R "%TMP_PATH%\*.html"
201 attrib -R "%TMP_PATH%\*.exe"
202 rd /S /Q "%TMP_PATH%"
204 for %%i in (zip,exe) do (
205         if not exist "%OUT_FILE%.%%i" (
206                 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to create release packages^!\n"
207                 pause && exit
208         )
211 attrib +R "%OUT_FILE%.zip"
212 attrib +R "%OUT_FILE%.sfx"
213 attrib +R "%OUT_FILE%.exe"
215 :: ---------------------------------------------------------------------------
216 :: SIGN OUTPUT FILE
217 :: ---------------------------------------------------------------------------
219 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "\n==========================================================================="
220 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "Signing output file..."
221 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "===========================================================================\n"
223 "%~dp0\..\..\..\Prerequisites\GnuPG\bin\gpg.exe" --detach-sign "%OUT_FILE%.exe"
224 attrib +R "%OUT_FILE%.exe.sig"
226 :: ---------------------------------------------------------------------------
227 :: COMPLETED
228 :: ---------------------------------------------------------------------------
230 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" green "\n==========================================================================="
231 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" green "Completed successfully :-)"
232 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" green "===========================================================================\n"
234 pause