Improved build script and installer.
This commit is contained in:
parent
8e22c9c35e
commit
fe0847e60c
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,6 +3,7 @@
|
|||||||
/bin/
|
/bin/
|
||||||
/ipch/
|
/ipch/
|
||||||
/res/toolset/
|
/res/toolset/
|
||||||
|
/src/*.h.bak
|
||||||
/*.sdf
|
/*.sdf
|
||||||
/*.suo
|
/*.suo
|
||||||
/*.user
|
/*.user
|
||||||
|
BIN
etc/auto_inc.exe
Normal file
BIN
etc/auto_inc.exe
Normal file
Binary file not shown.
@ -1,3 +1,5 @@
|
|||||||
|
!include "WinVer.nsh"
|
||||||
|
|
||||||
Function .onInit
|
Function .onInit
|
||||||
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "{79d6a7e5-35af-47b1-a7d6-f20d0e5df772}") i .r1 ?e'
|
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "{79d6a7e5-35af-47b1-a7d6-f20d0e5df772}") i .r1 ?e'
|
||||||
Pop $0
|
Pop $0
|
||||||
@ -5,21 +7,32 @@ Function .onInit
|
|||||||
MessageBox MB_ICONSTOP|MB_TOPMOST "Sorry, the installer is already running!"
|
MessageBox MB_ICONSTOP|MB_TOPMOST "Sorry, the installer is already running!"
|
||||||
Quit
|
Quit
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
||||||
; --------
|
; --------
|
||||||
|
|
||||||
${IfNot} ${IsNT}
|
${IfNot} ${IsNT}
|
||||||
MessageBox MB_TOPMOST|MB_ICONSTOP "Sorry, this application does NOT support Windows 9x or Windows ME!"
|
MessageBox MB_TOPMOST|MB_ICONSTOP "Sorry, this application does NOT support Windows 9x !!!"
|
||||||
|
Quit
|
||||||
|
${EndIf}
|
||||||
|
|
||||||
|
${IfNot} ${AtLeastWinXP}
|
||||||
|
MessageBox MB_TOPMOST|MB_ICONSTOP "Sorry, this application requires Windows XP or later!"
|
||||||
Quit
|
Quit
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
||||||
${If} ${AtMostWinNT4}
|
${If} ${IsWinXP}
|
||||||
${StdUtils.GetParameter} $R0 "Update" "?"
|
${AndIf} ${AtMostServicePack} 1
|
||||||
${If} $R0 == "?"
|
MessageBox MB_TOPMOST|MB_ICONSTOP "Sorry, this application requires Service-Pack 2 for Windows XP or later!"
|
||||||
MessageBox MB_TOPMOST|MB_ICONSTOP "Sorry, your platform is not supported anymore. Installation aborted!$\nThe minimum required platform is Windows 2000."
|
ExecShell "open" "http://www.microsoft.com/download/en/details.aspx?id=24"
|
||||||
${Else}
|
Quit
|
||||||
MessageBox MB_TOPMOST|MB_ICONSTOP "Sorry, your platform is not supported anymore. Update not possible!$\nThe minimum required platform is Windows 2000."
|
${EndIf}
|
||||||
${EndIf}
|
|
||||||
|
; --------
|
||||||
|
|
||||||
|
UserInfo::GetAccountType
|
||||||
|
Pop $0
|
||||||
|
${If} $0 != "Admin"
|
||||||
|
MessageBox MB_ICONSTOP|MB_TOPMOST "Your system requires administrative permissions in order to install this software."
|
||||||
Quit
|
Quit
|
||||||
${EndIf}
|
${EndIf}
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
3
etc/finalization.nsh
Normal file
3
etc/finalization.nsh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Function .onInstSuccess
|
||||||
|
ExecShell "explore" '$INSTDIR'
|
||||||
|
FunctionEnd
|
4
etc/shortcut.nsh
Normal file
4
etc/shortcut.nsh
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#Function createShortcuts
|
||||||
|
MessageBox MB_ICONQUESTION|MB_TOPMOST|MB_YESNO "Create a desktop icon for Simple x264 Launcher?" IDNO +2
|
||||||
|
CreateShortCut "$DESKTOP\Simple x264 Launcher.lnk" "$INSTDIR\x264_launcher.exe"
|
||||||
|
#FunctionEnd
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
#define VER_X264_MAJOR 2
|
#define VER_X264_MAJOR 2
|
||||||
#define VER_X264_MINOR 0
|
#define VER_X264_MINOR 0
|
||||||
#define VER_X264_PATCH 62
|
#define VER_X264_PATCH 66
|
||||||
|
|
||||||
#define VER_X264_MINIMUM_REV 2146
|
#define VER_X264_MINIMUM_REV 2146
|
||||||
#define VER_X264_CURRENT_API 120
|
#define VER_X264_CURRENT_API 120
|
||||||
|
79
z_build.bat
79
z_build.bat
@ -1,13 +1,47 @@
|
|||||||
@echo off
|
@echo off
|
||||||
REM ///////////////////////////////////////////////////////////////////////////
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
set "MSVC_PATH=D:\Microsoft Visual Studio 10.0\VC"
|
REM // Set Paths
|
||||||
set "NSIS_PATH=E:\NSIS\_Unicode"
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
set "QTVC_PATH=E:\QtSDK\Desktop\Qt\4.8.0\msvc2010"
|
set "MSVC_PATH=C:\Program Files\Microsoft Visual Studio 10.0\VC"
|
||||||
set "UPX3_PATH=E:\UPX"
|
set "NSIS_PATH=C:\Program Files\NSIS\Unicode"
|
||||||
|
set "QTVC_PATH=C:\MuldeR\Qt\4.8.0"
|
||||||
|
set "UPX3_PATH=C:\Program Files\UPX"
|
||||||
|
|
||||||
|
REM ###############################################
|
||||||
|
REM # DO NOT MODIFY ANY LINES BELOW THIS LINE !!! #
|
||||||
|
REM ###############################################
|
||||||
|
|
||||||
|
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
|
REM // Setup environment
|
||||||
REM ///////////////////////////////////////////////////////////////////////////
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
if exist "%QTVC_PATH%\bin\qtvars.bat" ( call "%QTVC_PATH%\bin\qtvars.bat" )
|
if exist "%QTVC_PATH%\bin\qtvars.bat" ( call "%QTVC_PATH%\bin\qtvars.bat" )
|
||||||
if exist "%QTVC_PATH%\bin\qtenv2.bat" ( call "%QTVC_PATH%\bin\qtenv2.bat" )
|
if exist "%QTVC_PATH%\bin\qtenv2.bat" ( call "%QTVC_PATH%\bin\qtenv2.bat" )
|
||||||
call "%MSVC_PATH%\vcvarsall.bat" x86
|
call "%MSVC_PATH%\vcvarsall.bat" x86
|
||||||
|
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
|
REM // Check environment
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
|
if "%VCINSTALLDIR%"=="" (
|
||||||
|
echo %%VCINSTALLDIR%% not specified. Please check your MSVC_PATH var!
|
||||||
|
goto BuildError
|
||||||
|
)
|
||||||
|
if "%QTDIR%"=="" (
|
||||||
|
echo %%QTDIR%% not specified. Please check your MSVC_PATH var!
|
||||||
|
goto BuildError
|
||||||
|
)
|
||||||
|
if not exist "%VCINSTALLDIR%\bin\cl.exe" (
|
||||||
|
echo C++ compiler not found. Please check your MSVC_PATH var!
|
||||||
|
goto BuildError
|
||||||
|
)
|
||||||
|
if not exist "%QTDIR%\bin\moc.exe" (
|
||||||
|
echo Qt meta compiler not found. Please check your QTVC_PATH var!
|
||||||
|
goto BuildError
|
||||||
|
)
|
||||||
|
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
|
REM // Build the binaries
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
echo ---------------------------------------------------------------------
|
echo ---------------------------------------------------------------------
|
||||||
echo BEGIN BUILD
|
echo BEGIN BUILD
|
||||||
echo ---------------------------------------------------------------------
|
echo ---------------------------------------------------------------------
|
||||||
@ -15,6 +49,10 @@ MSBuild.exe /property:Configuration=release /target:clean "%~dp0\x264_launcher.s
|
|||||||
if not "%ERRORLEVEL%"=="0" goto BuildError
|
if not "%ERRORLEVEL%"=="0" goto BuildError
|
||||||
MSBuild.exe /property:Configuration=release /target:rebuild "%~dp0\x264_launcher.sln"
|
MSBuild.exe /property:Configuration=release /target:rebuild "%~dp0\x264_launcher.sln"
|
||||||
if not "%ERRORLEVEL%"=="0" goto BuildError
|
if not "%ERRORLEVEL%"=="0" goto BuildError
|
||||||
|
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
|
REM // Copy base files
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
echo ---------------------------------------------------------------------
|
echo ---------------------------------------------------------------------
|
||||||
echo BEGIN PACKAGING
|
echo BEGIN PACKAGING
|
||||||
echo ---------------------------------------------------------------------
|
echo ---------------------------------------------------------------------
|
||||||
@ -24,7 +62,9 @@ mkdir "%PACK_PATH%\imageformats"
|
|||||||
mkdir "%PACK_PATH%\toolset"
|
mkdir "%PACK_PATH%\toolset"
|
||||||
copy "%~dp0\bin\Release\*.exe" "%PACK_PATH%"
|
copy "%~dp0\bin\Release\*.exe" "%PACK_PATH%"
|
||||||
copy "%~dp0\bin\Release\toolset\*.exe" "%PACK_PATH%\toolset"
|
copy "%~dp0\bin\Release\toolset\*.exe" "%PACK_PATH%\toolset"
|
||||||
copy "%~dp0\*.txt" "%PACK_PATH%"
|
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
|
REM // Copy dependencies
|
||||||
REM ///////////////////////////////////////////////////////////////////////////
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
copy "%MSVC_PATH%\redist\x86\Microsoft.VC100.CRT\*.dll" "%PACK_PATH%"
|
copy "%MSVC_PATH%\redist\x86\Microsoft.VC100.CRT\*.dll" "%PACK_PATH%"
|
||||||
copy "%QTVC_PATH%\bin\QtCore4.dll" "%PACK_PATH%"
|
copy "%QTVC_PATH%\bin\QtCore4.dll" "%PACK_PATH%"
|
||||||
@ -34,49 +74,74 @@ copy "%QTVC_PATH%\bin\QtXml4.dll" "%PACK_PATH%"
|
|||||||
copy "%QTVC_PATH%\bin\QtXml4.dll" "%PACK_PATH%"
|
copy "%QTVC_PATH%\bin\QtXml4.dll" "%PACK_PATH%"
|
||||||
copy "%QTVC_PATH%\plugins\imageformats\*.dll" "%PACK_PATH%\imageformats"
|
copy "%QTVC_PATH%\plugins\imageformats\*.dll" "%PACK_PATH%\imageformats"
|
||||||
del "%PACK_PATH%\imageformats\*d4.dll"
|
del "%PACK_PATH%\imageformats\*d4.dll"
|
||||||
|
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
|
REM // Compress
|
||||||
REM ///////////////////////////////////////////////////////////////////////////
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
"%UPX3_PATH%\upx.exe" --brute "%PACK_PATH%\*.exe"
|
"%UPX3_PATH%\upx.exe" --brute "%PACK_PATH%\*.exe"
|
||||||
"%UPX3_PATH%\upx.exe" --best "%PACK_PATH%\*.dll"
|
"%UPX3_PATH%\upx.exe" --best "%PACK_PATH%\*.dll"
|
||||||
|
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
|
REM // Get current date (in ISO format)
|
||||||
REM ///////////////////////////////////////////////////////////////////////////
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
if not exist "%~dp0\etc\date.exe" BuildError
|
if not exist "%~dp0\etc\date.exe" BuildError
|
||||||
for /F "tokens=1,2 delims=:" %%a in ('"%~dp0\etc\date.exe" +ISODATE:%%Y-%%m-%%d') do (
|
for /F "tokens=1,2 delims=:" %%a in ('"%~dp0\etc\date.exe" +ISODATE:%%Y-%%m-%%d') do (
|
||||||
if "%%a"=="ISODATE" set "ISO_DATE=%%b"
|
if "%%a"=="ISODATE" set "ISO_DATE=%%b"
|
||||||
)
|
)
|
||||||
if "%ISO_DATE%"=="" BuildError
|
if "%ISO_DATE%"=="" BuildError
|
||||||
|
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
|
REM // Setup install parameters
|
||||||
REM ///////////////////////////////////////////////////////////////////////////
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
set "NSI_FILE=%TMP%\~%RANDOM%%RANDOM%.nsi"
|
set "NSI_FILE=%TMP%\~%RANDOM%%RANDOM%.nsi"
|
||||||
set "OUT_NAME=x264_x64.%ISO_DATE%"
|
set "OUT_NAME=x264_x64.%ISO_DATE%"
|
||||||
set "OUT_PATH=%~dp0\bin"
|
set "OUT_PATH=%~dp0\bin"
|
||||||
set "OUT_FULL=%OUT_PATH%\%OUT_NAME%.exe"
|
set "OUT_FULL=%OUT_PATH%\%OUT_NAME%.exe"
|
||||||
REM ///////////////////////////////////////////////////////////////////////////
|
|
||||||
:GenerateOutfileName
|
:GenerateOutfileName
|
||||||
if exist "%OUT_FULL%" (
|
if exist "%OUT_FULL%" (
|
||||||
set "OUT_NAME=%OUT_NAME%.new"
|
set "OUT_NAME=%OUT_NAME%.new"
|
||||||
set "OUT_FULL=%OUT_PATH%\%OUT_NAME%.exe"
|
set "OUT_FULL=%OUT_PATH%\%OUT_NAME%.exe"
|
||||||
goto GenerateOutfileName
|
goto GenerateOutfileName
|
||||||
)
|
)
|
||||||
|
|
||||||
REM ///////////////////////////////////////////////////////////////////////////
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
echo !define ZIP2EXE_NAME `Simple x264 Launcher (%ISO_DATE%)` > "%NSI_FILE%"
|
REM // Generate install script
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
|
echo #Generated File - Do NOT modify! > "%NSI_FILE%"
|
||||||
|
echo !define ZIP2EXE_NAME `Simple x264 Launcher (%ISO_DATE%)` >> "%NSI_FILE%"
|
||||||
echo !define ZIP2EXE_OUTFILE `%OUT_FULL%` >> "%NSI_FILE%"
|
echo !define ZIP2EXE_OUTFILE `%OUT_FULL%` >> "%NSI_FILE%"
|
||||||
echo !define ZIP2EXE_COMPRESSOR_LZMA >> "%NSI_FILE%"
|
echo !define ZIP2EXE_COMPRESSOR_LZMA >> "%NSI_FILE%"
|
||||||
echo !define ZIP2EXE_INSTALLDIR `$PROGRAMFILES\MuldeR\Simple x264 Launcher v2` >> "%NSI_FILE%"
|
echo !define ZIP2EXE_INSTALLDIR `$PROGRAMFILES\MuldeR\Simple x264 Launcher v2` >> "%NSI_FILE%"
|
||||||
|
echo ShowInstDetails show >> "%NSI_FILE%"
|
||||||
echo !include `${NSISDIR}\Contrib\zip2exe\Base.nsh` >> "%NSI_FILE%"
|
echo !include `${NSISDIR}\Contrib\zip2exe\Base.nsh` >> "%NSI_FILE%"
|
||||||
echo !include `${NSISDIR}\Contrib\zip2exe\Modern.nsh` >> "%NSI_FILE%"
|
echo !include `${NSISDIR}\Contrib\zip2exe\Modern.nsh` >> "%NSI_FILE%"
|
||||||
echo !insertmacro SECTION_BEGIN >> "%NSI_FILE%"
|
echo !insertmacro SECTION_BEGIN >> "%NSI_FILE%"
|
||||||
echo File /r `%PACK_PATH%\*.*` >> "%NSI_FILE%"
|
echo File /r `%PACK_PATH%\*.*` >> "%NSI_FILE%"
|
||||||
|
echo !include `%~dp0\etc\shortcut.nsh` >> "%NSI_FILE%"
|
||||||
echo !insertmacro SECTION_END >> "%NSI_FILE%"
|
echo !insertmacro SECTION_END >> "%NSI_FILE%"
|
||||||
|
echo !include `%~dp0\etc\check_os.nsh` >> "%NSI_FILE%"
|
||||||
|
echo !include `%~dp0\etc\finalization.nsh` >> "%NSI_FILE%"
|
||||||
|
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
|
REM // Build the installer
|
||||||
REM ///////////////////////////////////////////////////////////////////////////
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
"%NSIS_PATH%\makensis.exe" "%NSI_FILE%"
|
"%NSIS_PATH%\makensis.exe" "%NSI_FILE%"
|
||||||
if not "%ERRORLEVEL%"=="0" goto BuildError
|
if not "%ERRORLEVEL%"=="0" goto BuildError
|
||||||
attrib +R "%OUT_FULL%"
|
attrib +R "%OUT_FULL%"
|
||||||
del "%NSI_FILE%"
|
del "%NSI_FILE%"
|
||||||
rmdir /Q /S "%PACK_PATH%"
|
rmdir /Q /S "%PACK_PATH%"
|
||||||
|
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
|
REM // COMPLETE
|
||||||
REM ///////////////////////////////////////////////////////////////////////////
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
echo.
|
echo.
|
||||||
echo Build completed.
|
echo Build completed.
|
||||||
echo.
|
echo.
|
||||||
pause
|
pause
|
||||||
goto:eof
|
goto:eof
|
||||||
|
|
||||||
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
|
REM // FAILED
|
||||||
REM ///////////////////////////////////////////////////////////////////////////
|
REM ///////////////////////////////////////////////////////////////////////////
|
||||||
:BuildError
|
:BuildError
|
||||||
echo.
|
echo.
|
||||||
|
Loading…
Reference in New Issue
Block a user