2 setlocal ENABLEDELAYEDEXPANSION
4 :: ---------------------------------------------------------------------------
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" (
25 :: ---------------------------------------------------------------------------
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 :: ---------------------------------------------------------------------------
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 :: ---------------------------------------------------------------------------
57 :: ---------------------------------------------------------------------------
59 call "%~dp0\_build.bat" "%~dp0\..\..\%PATH_VCPROJ%" "%LAMEXP_PLATFORM%" "%LAMEXP_CONFIG%"
63 :: ---------------------------------------------------------------------------
65 :: ---------------------------------------------------------------------------
67 call "%~dp0\_version.bat"
68 call "%~dp0\_revision.bat"
70 :: ---------------------------------------------------------------------------
71 :: GENERATE OUTPUT FILE NAME
72 :: ---------------------------------------------------------------------------
74 mkdir "%~dp0\..\..\out" 2> NUL
75 set "OUT_NAME=%VER_LAMEXP_BASENAME%.%ISO_DATE%.%LAMEXP_CONFIG:_=-%.Build-%VER_LAMEXP_BUILD%"
76 set "OUT_FILE=%~dp0\..\..\out\!OUT_NAME!"
77 for /L %%n in (1, 1, 99) do (
78 if exist "!OUT_FILE!.exe" set "OUT_NAME=%VER_LAMEXP_BASENAME%.%ISO_DATE%.%LAMEXP_CONFIG:_=-%.Build-%VER_LAMEXP_BUILD%.Update-%%n"
79 if exist "!OUT_FILE!.zip" set "OUT_NAME=%VER_LAMEXP_BASENAME%.%ISO_DATE%.%LAMEXP_CONFIG:_=-%.Build-%VER_LAMEXP_BUILD%.Update-%%n"
80 set "OUT_FILE=%~dp0\..\..\out\!OUT_NAME!"
83 :: ---------------------------------------------------------------------------
84 :: DELETE OLD OUTPUT FILE
85 :: ---------------------------------------------------------------------------
87 for %%i in (exe,sfx,zip,txt) do (
88 del "%OUT_FILE%.%%i" 2> NUL
89 if exist "%OUT_FILE%.%%i" (
90 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to delete existing output file^!\n"
95 :: ---------------------------------------------------------------------------
96 :: COPY BINARY FILES AND REDIST
97 :: ---------------------------------------------------------------------------
99 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "\n==========================================================================="
100 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "Copying binary files..."
101 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "===========================================================================\n"
103 rd /S /Q "%TMP_PATH%" 2> NUL
106 call "%~dp0\_copy.bat" "%BIN_PATH%\LameXP.exe" "%TMP_PATH%"
107 call "%~dp0\_copy.bat" "%~dp0\..\..\etc\Manifest\VisualElements.xml" "%TMP_PATH%\LameXP.VisualElementsManifest.xml"
109 if "%LAMEXP_REDIST%"=="1" (
110 call "%~dp0\_copy.bat" "%BIN_PATH%\LameXP.rcc" "%TMP_PATH%"
111 call "%~dp0\_copy.bat" "%BIN_PATH%\MUtils32-?.dll" "%TMP_PATH%"
112 mkdir "%TMP_PATH%\imageformats"
113 for %%i in (Core,Gui,Network,Xml,Svg) do (
114 call "%~dp0\_copy.bat" "%~dp0\..\..\..\Prerequisites\Qt4\v%PATH_VCTOOL%_xp\Shared\bin\Qt%%i4.dll" "%TMP_PATH%"
116 for %%i in (gif,ico,jpeg,mng,svg,tga,tiff) do (
117 call "%~dp0\_copy.bat" "%~dp0\..\..\..\Prerequisites\Qt4\v%PATH_VCTOOL%_xp\Shared\plugins\imageformats\q%%i4.dll" "%TMP_PATH%\imageformats"
119 call "%~dp0\_copy.bat" "%~dp0\..\..\..\Prerequisites\MSVC\redist\vc\v%PATH_VCTOOL%_xp\x86\*.dll" "%TMP_PATH%"
120 if %PATH_VCTOOL% GEQ 140 (
121 call "%~dp0\_copy.bat" "%~dp0\..\..\..\Prerequisites\MSVC\redist\ucrt\DLLs\x86\*.dll" "%TMP_PATH%"
125 for %%e in (LameXP,Qt,MUtils) do (
126 for %%x in (exe,dll) do (
127 for %%f in (%TMP_PATH%\%%e*.%%x) do (
128 "%~dp0\..\..\..\Prerequisites\UPX\upx.exe" --best "%%f"
133 call "%~dp0\_copy.bat" "%~dp0\..\..\ReadMe.txt" "%TMP_PATH%"
134 call "%~dp0\_copy.bat" "%~dp0\..\..\License.txt" "%TMP_PATH%"
135 call "%~dp0\_copy.bat" "%~dp0\..\..\Copying.txt" "%TMP_PATH%"
136 call "%~dp0\_copy.bat" "%~dp0\..\..\doc\Changelog.html" "%TMP_PATH%"
137 call "%~dp0\_copy.bat" "%~dp0\..\..\doc\Translate.html" "%TMP_PATH%"
138 call "%~dp0\_copy.bat" "%~dp0\..\..\doc\Manual.html" "%TMP_PATH%"
140 mkdir "%TMP_PATH%\img\lamexp"
141 call "%~dp0\_copy.bat" "%~dp0\..\..\doc\img\lamexp\*.png" "%TMP_PATH%\img\lamexp"
143 if not "%VER_LAMEXP_TYPE%" == "Final" (
144 if not "%VER_LAMEXP_TYPE%" == "Hotfix" (
145 call "%~dp0\_copy.bat" "%~dp0\..\..\doc\PRE_RELEASE_INFO.txt" "%TMP_PATH%"
149 if exist "%~dp0\_postproc.bat" (
150 call "%~dp0\_postproc.bat" "%TMP_PATH%"
153 echo Release: %VER_LAMEXP_MAJOR%.%VER_LAMEXP_MINOR_HI%%VER_LAMEXP_MINOR_LO%.%VER_LAMEXP_BUILD%> "%TMP_PATH%\LameXP.tag"
154 echo Git-%GIT_REV_NAME%-r%GIT_REV_NMBR%-%GIT_REV_HASH% [%GIT_REV_DATE%] [%GIT_REV_TIME%]>> "%TMP_PATH%\LameXP.tag"
156 attrib +R "%TMP_PATH%\*.txt"
157 attrib +R "%TMP_PATH%\*.html"
158 attrib +R "%TMP_PATH%\*.exe"
159 attrib +R "%TMP_PATH%\*.dll"
160 attrib +R "%TMP_PATH%\*.tag"
161 attrib +R "%TMP_PATH%\*.xml"
163 :: ---------------------------------------------------------------------------
165 :: ---------------------------------------------------------------------------
167 echo LameXP - Audio Encoder Front-End> "%OUT_FILE%.txt"
168 echo Release: %VER_LAMEXP_MAJOR%.%VER_LAMEXP_MINOR_HI%%VER_LAMEXP_MINOR_LO% %VER_LAMEXP_TYPE%-%VER_LAMEXP_PATCH%, Build #%VER_LAMEXP_BUILD% [%ISO_DATE%] [%ISO_TIME%]>> "%OUT_FILE%.txt"
169 echo Git-%GIT_REV_NAME%-r%GIT_REV_NMBR%-%GIT_REV_HASH% [%GIT_REV_DATE%] [%GIT_REV_TIME%]>> "%OUT_FILE%.txt"
170 echo.>> "%OUT_FILE%.txt"
172 echo ------------------------------------------------------------------------------>> "%OUT_FILE%.txt"
173 echo README.TXT>> "%OUT_FILE%.txt"
174 echo ------------------------------------------------------------------------------>> "%OUT_FILE%.txt"
175 echo.>> "%OUT_FILE%.txt"
176 "%~dp0\..\..\..\Prerequisites\GnuWin32\cat.exe" "%~dp0\..\..\ReadMe.txt" >> "%OUT_FILE%.txt"
177 echo.>> "%OUT_FILE%.txt"
179 echo ------------------------------------------------------------------------------>> "%OUT_FILE%.txt"
180 echo LICENSE.TXT>> "%OUT_FILE%.txt"
181 echo ------------------------------------------------------------------------------>> "%OUT_FILE%.txt"
182 echo.>> "%OUT_FILE%.txt"
183 "%~dp0\..\..\..\Prerequisites\GnuWin32\cat.exe" "%~dp0\..\..\License.txt" >> "%OUT_FILE%.txt"
184 echo.>> "%OUT_FILE%.txt"
186 :: ---------------------------------------------------------------------------
188 :: ---------------------------------------------------------------------------
190 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "\n==========================================================================="
191 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "Creating release packages..."
192 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "===========================================================================\n"
195 "%~dp0\..\..\..\Prerequisites\GnuWin32\zip.exe" -r -9 -z "%OUT_FILE%.zip" "*.*" < "%OUT_FILE%.txt"
198 "%~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"
199 if %ERRORLEVEL% NEQ 0 (
200 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to build installer^!\n"
204 "%~dp0\..\..\..\Prerequisites\NSIS\peheader.exe" "%OUT_FILE%.sfx"
205 if %ERRORLEVEL% NEQ 0 (
206 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to build installer^!\n"
210 call "%~dp0\..\..\..\Prerequisites\SevenZip\7zSD.cmd" "%OUT_FILE%.sfx" "%OUT_FILE%.exe" "LameXP Setup" "LameXP-Setup-r%VER_LAMEXP_BUILD%"
211 if %ERRORLEVEL% NEQ 0 (
212 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to build installer^!\n"
216 set "VER_FILEVER=%VER_LAMEXP_MAJOR%.%VER_LAMEXP_MINOR_HI%.%VER_LAMEXP_MINOR_LO%.%VER_LAMEXP_PATCH%"
217 set "VER_PRODUCT=LameXP - Audio Encoder Front-End"
218 "%~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" /sc "Git-%GIT_REV_NAME%-r%GIT_REV_NMBR%-%GIT_REV_HASH% [%GIT_REV_DATE%] [%GIT_REV_TIME%]"
219 if %ERRORLEVEL% NEQ 0 (
220 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to build installer^!\n"
224 "%~dp0\..\..\..\Prerequisites\NSIS\peheader.exe" "%OUT_FILE%.exe"
225 if %ERRORLEVEL% NEQ 0 (
226 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to build installer^!\n"
230 :: ---------------------------------------------------------------------------
232 :: ---------------------------------------------------------------------------
234 attrib -R "%TMP_PATH%\*.txt"
235 attrib -R "%TMP_PATH%\*.html"
236 attrib -R "%TMP_PATH%\*.exe"
237 rd /S /Q "%TMP_PATH%"
239 for %%i in (zip,exe) do (
240 if not exist "%OUT_FILE%.%%i" (
241 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" red "\nFailed to create release packages^!\n"
246 attrib +R "%OUT_FILE%.zip"
247 attrib +R "%OUT_FILE%.sfx"
248 attrib +R "%OUT_FILE%.exe"
250 :: ---------------------------------------------------------------------------
252 :: ---------------------------------------------------------------------------
254 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "\n==========================================================================="
255 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "Signing output file..."
256 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" cyan "===========================================================================\n"
258 "%~dp0\..\..\..\Prerequisites\GnuPG\bin\gpg.exe" -u 0x6CF3FA22 -a -o "%OUT_FILE%.exe.sig" --detach-sign "%OUT_FILE%.exe"
259 "%~dp0\..\..\..\Prerequisites\GnuPG\bin\gpg.exe" -u 0x5F57E03F -a -o "%OUT_FILE%.exe.sig2" --detach-sign "%OUT_FILE%.exe"
261 attrib +R "%OUT_FILE%.exe.sig"
262 attrib +R "%OUT_FILE%.exe.sig2"
264 :: ---------------------------------------------------------------------------
266 :: ---------------------------------------------------------------------------
268 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" green "\n==========================================================================="
269 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" green "Completed successfully :-)"
270 "%~dp0\..\..\..\Prerequisites\CEcho\cecho.exe" green "===========================================================================\n"