OSDN Git Service

Updated build scripts to use CEcho program.
[lamexp/LameXP.git] / etc / Deployment / _deploy.bat
1 @echo off
2 setlocal ENABLEDELAYEDEXPANSION
3
4 :: ---------------------------------------------------------------------------
5 :: SETUP ENVIRONMENT
6 :: ---------------------------------------------------------------------------
7
8 set "_LAMEXP_PATHS_INITIALIZED_="
9
10 call "%~dp0\_paths.bat"
11 call "%~dp0\_date.bat"
12
13 if "%LAMEXP_CONFIG%"=="" (
14         set "LAMEXP_CONFIG=Release"
15 )
16
17 if "%LAMEXP_PLATFORM%"=="" (
18         set "LAMEXP_PLATFORM=Win32"
19 )
20
21 if not "%LAMEXP_REDIST%"=="0" (
22         set "LAMEXP_REDIST=1"
23 )
24
25 :: ---------------------------------------------------------------------------
26 :: SETUP PATHS
27 :: ---------------------------------------------------------------------------
28
29 set "BIN_PATH=%~dp0\..\..\bin\%LAMEXP_PLATFORM%\%LAMEXP_CONFIG%"
30 set "TMP_PATH=%TEMP%\~LameXP.%LAMEXP_CONFIG%.%ISO_DATE%.%RANDOM%.tmp"
31
32 if "%LAMEXP_SKIP_BUILD%"=="YES" (
33         goto SkipBuildThisTime
34 )
35
36 :: ---------------------------------------------------------------------------
37 :: CLEAN UP
38 :: ---------------------------------------------------------------------------
39
40 "%~dp0\..\Utilities\CEcho.exe" cyan "\n==========================================================================="
41 "%~dp0\..\Utilities\CEcho.exe" cyan "Cleaning up..."
42 "%~dp0\..\Utilities\CEcho.exe" cyan "===========================================================================\n"
43
44 for %%i in (bin,obj,tmp,ipch) do (
45         del /Q /S /F "%~dp0\..\..\%%i\*.*"
46 )
47
48 :: ---------------------------------------------------------------------------
49 :: UPDATE LANGUAGE FILES AND DCOS
50 :: ---------------------------------------------------------------------------
51
52 call "%~dp0\_mkdocs.bat"
53 call "%~dp0\_lupdate.bat"
54
55 :: ---------------------------------------------------------------------------
56 :: BUILD THE BINARIES
57 :: ---------------------------------------------------------------------------
58
59 call "%~dp0\_build.bat" "%~dp0\..\..\%PATH_VCPROJ%" "%LAMEXP_PLATFORM%" "%LAMEXP_CONFIG%"
60
61 :SkipBuildThisTime
62
63 :: ---------------------------------------------------------------------------
64 :: READ VERSION INFO
65 :: ---------------------------------------------------------------------------
66
67 call "%~dp0\_version.bat"
68
69 :: ---------------------------------------------------------------------------
70 :: GENERATE OUTPUT FILE NAME
71 :: ---------------------------------------------------------------------------
72
73 mkdir "%~dp0\..\..\out" 2> NUL
74 set "OUT_FILE=%~dp0\..\..\out\%VER_LAMEXP_BASENAME%.%ISO_DATE%.%LAMEXP_CONFIG:_=-%.Build-%VER_LAMEXP_BUILD%"
75 for /L %%n in (1, 1, 99) do (
76         if exist "!OUT_FILE!.exe" set "OUT_FILE=%~dp0\..\..\out\%VER_LAMEXP_BASENAME%.%ISO_DATE%.%LAMEXP_CONFIG:_=-%.Build-%VER_LAMEXP_BUILD%.Update-%%n"
77         if exist "!OUT_FILE!.zip" set "OUT_FILE=%~dp0\..\..\out\%VER_LAMEXP_BASENAME%.%ISO_DATE%.%LAMEXP_CONFIG:_=-%.Build-%VER_LAMEXP_BUILD%.Update-%%n"
78 )
79
80 :: ---------------------------------------------------------------------------
81 :: DELETE OLD OUTPUT FILE
82 :: ---------------------------------------------------------------------------
83
84 for %%i in (exe,sfx,zip,txt) do (
85         del "%OUT_FILE%.%%i" 2> NUL
86         if exist "%OUT_FILE%.%%i" (
87                 "%~dp0\..\Utilities\CEcho.exe" red "\nFailed to delete existing output file^^!\n"
88                 pause && exit
89         )
90 )
91
92 :: ---------------------------------------------------------------------------
93 :: COPY BINARY FILES AND REDIST
94 :: ---------------------------------------------------------------------------
95
96 "%~dp0\..\Utilities\CEcho.exe" cyan "\n==========================================================================="
97 "%~dp0\..\Utilities\CEcho.exe" cyan "Copying binary files..."
98 "%~dp0\..\Utilities\CEcho.exe" cyan "===========================================================================\n"
99
100 rd /S /Q "%TMP_PATH%"
101 mkdir "%TMP_PATH%"
102
103 for %%i in (exe,dll) do (
104         copy "%BIN_PATH%\*.%%i" "%TMP_PATH%"
105 )
106
107 if "%LAMEXP_REDIST%"=="1" (
108         mkdir "%TMP_PATH%\imageformats"
109         for %%i in (Core,Gui,Network,Xml,Svg) do (
110                 copy "%QTDIR%\bin\Qt%%i4.dll" "%TMP_PATH%"
111         )
112         copy "%QTDIR%\plugins\imageformats\q???4.dll" "%TMP_PATH%\imageformats"
113         for %%i in (100,110,120) do (
114                 if exist "%PATH_MSCDIR%\VC\redist\x86\Microsoft.VC%%i.CRT\*.dll" (
115                         copy "%PATH_MSCDIR%\VC\redist\x86\Microsoft.VC%%i.CRT\*.dll" "%TMP_PATH%"
116                 )
117         )
118 )
119
120 for %%e in (exe,dll) do (
121         for %%f in (%TMP_PATH%\*.%%e) do (
122                 "%PATH_UPXBIN%\upx.exe" --best "%%f"
123         )
124 )
125
126 if exist "%~dp0\_postproc.bat" (
127         call "%~dp0\_postproc.bat" "%TMP_PATH%"
128 )
129
130 copy "%~dp0\..\..\ReadMe.txt"         "%TMP_PATH%"
131 copy "%~dp0\..\..\License.txt"        "%TMP_PATH%"
132 copy "%~dp0\..\..\Copying.txt"        "%TMP_PATH%"
133 copy "%~dp0\..\..\doc\Changelog.html" "%TMP_PATH%"
134 copy "%~dp0\..\..\doc\Translate.html" "%TMP_PATH%"
135 copy "%~dp0\..\..\doc\Manual.html"    "%TMP_PATH%"
136 copy "%~dp0\..\..\doc\FAQ.html"       "%TMP_PATH%"
137
138 if not "%VER_LAMEXP_TYPE%" == "Final" (
139         if not "%VER_LAMEXP_TYPE%" == "Hotfix" (
140                 copy "%~dp0\..\..\doc\PRE_RELEASE_INFO.txt" "%TMP_PATH%"
141         )
142 )
143
144 attrib +R "%TMP_PATH%\*.txt"
145 attrib +R "%TMP_PATH%\*.html"
146 attrib +R "%TMP_PATH%\*.exe"
147
148 :: ---------------------------------------------------------------------------
149 :: CREATE PACKAGES
150 :: ---------------------------------------------------------------------------
151
152 "%~dp0\..\Utilities\CEcho.exe" cyan "\n==========================================================================="
153 "%~dp0\..\Utilities\CEcho.exe" cyan "Creating release packages..."
154 "%~dp0\..\Utilities\CEcho.exe" cyan "===========================================================================\n"
155
156 "%~dp0\..\Utilities\Echo.exe" LameXP - Audio Encoder Front-End > "%OUT_FILE%.txt"
157 "%~dp0\..\Utilities\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"
158 "%~dp0\..\Utilities\Echo.exe" Built on %ISO_DATE% at %TIME%\n\n >> "%OUT_FILE%.txt"
159 "%~dp0\..\Utilities\Echo.exe" ---------------------------\nREADME.TXT\n--------------------------- >> "%OUT_FILE%.txt"
160 "%~dp0\..\Utilities\Cat.exe" "%~dp0\..\..\ReadMe.txt" >> "%OUT_FILE%.txt"
161 "%~dp0\..\Utilities\Echo.exe" \n\n---------------------------\nLICENSE.TXT\n---------------------------\n >> "%OUT_FILE%.txt"
162 "%~dp0\..\Utilities\Cat.exe" "%~dp0\..\..\License.txt" >> "%OUT_FILE%.txt"
163
164 pushd "%TMP_PATH%"
165 "%~dp0\..\Utilities\Zip.exe" -r -9 -z "%OUT_FILE%.zip" "*.*" < "%OUT_FILE%.txt"
166 popd
167
168 "%PATH_MKNSIS%\makensis.exe" "/DLAMEXP_UPX_PATH=%PATH_UPXBIN%" "/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"
169 "%PATH_MKNSIS%\makensis.exe" "/DLAMEXP_UPX_PATH=%PATH_UPXBIN%" "/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%.exe" "/DLAMEXP_SOURCE_FILE=%OUT_FILE%.sfx" "%~dp0\..\NSIS\wrapper.nsi"
170
171 attrib -R "%TMP_PATH%\*.txt"
172 attrib -R "%TMP_PATH%\*.html"
173 attrib -R "%TMP_PATH%\*.exe"
174 rd /S /Q "%TMP_PATH%"
175
176 for %%i in (zip,exe) do (
177         if not exist "%OUT_FILE%.zip" (
178                 "%~dp0\..\Utilities\CEcho.exe" red "\nFailed to create release packages^^!\n"
179                 pause && exit
180         )
181 )
182
183 attrib +R "%OUT_FILE%.zip"
184 attrib +R "%OUT_FILE%.sfx"
185 attrib +R "%OUT_FILE%.exe"
186
187 :: ---------------------------------------------------------------------------
188 :: SIGN OUTPUT FILE
189 :: ---------------------------------------------------------------------------
190
191 "%~dp0\..\Utilities\CEcho.exe" cyan "\n==========================================================================="
192 "%~dp0\..\Utilities\CEcho.exe" cyan "Signing output file..."
193 "%~dp0\..\Utilities\CEcho.exe" cyan "===========================================================================\n"
194
195 "%PATH_GNUPG1%\gpg.exe" --detach-sign "%OUT_FILE%.exe"
196 attrib +R "%OUT_FILE%.exe.sig"
197
198 :: ---------------------------------------------------------------------------
199 :: COMPLETED
200 :: ---------------------------------------------------------------------------
201
202 "%~dp0\..\Utilities\CEcho.exe" green "\n==========================================================================="
203 "%~dp0\..\Utilities\CEcho.exe" green "Completed successfully :-)"
204 "%~dp0\..\Utilities\CEcho.exe" green "===========================================================================\n"
205
206 pause