mirror of
https://github.com/Q3Rally-Team/q3rally.git
synced 2024-11-25 21:31:34 +00:00
229 lines
6.4 KiB
Text
229 lines
6.4 KiB
Text
; NSIS description file for Q3Rally installer
|
|
;
|
|
; EDIT WITH CARE!
|
|
;
|
|
; This file is used to automatically build the installers in the
|
|
; openSUSE build service, don't break this!
|
|
;
|
|
; you have to copy SDL2.dll and OpenAL32.dll here manually
|
|
|
|
!define VERSION "XXXVERSIONXXX"
|
|
!define RELEASE "XXXRELEASEXXX"
|
|
|
|
!define MODDIR "baseq3r"
|
|
!define PUBLISHER "The Q3Rally Team"
|
|
!define URL "http://q3rally.com/"
|
|
|
|
!define GAMENAME "Q3Rally"
|
|
!define CLIENT "q3rally.exe"
|
|
!define SERVER "q3rally_ded.exe"
|
|
!define GAMEDIR "Q3Rally"
|
|
!define GAME_FSNAME "q3rally"
|
|
|
|
!define MULTIUSER_MUI
|
|
!define MULTIUSER_EXECUTIONLEVEL Highest
|
|
!define MULTIUSER_INSTALLMODE_COMMANDLINE
|
|
!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY "Software\${GAME_FSNAME}"
|
|
!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "Install_Mode"
|
|
!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "Software\${GAME_FSNAME}"
|
|
!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "Install_Dir"
|
|
!define MULTIUSER_INSTALLMODE_INSTDIR "${GAMEDIR}"
|
|
!include MultiUser.nsh
|
|
|
|
!include "MUI2.nsh"
|
|
!define MUI_ICON "../q3r_icon.ico"
|
|
|
|
; The name of the installer
|
|
Name "${GAMENAME} ${VERSION}"
|
|
|
|
; The file to write
|
|
OutFile "${GAME_FSNAME}-${VERSION}-${RELEASE}.x86.exe"
|
|
|
|
; The default installation directory
|
|
; set by Multiuser.nsh
|
|
;InstallDir "$PROGRAMFILES\${GAMEDIR}"
|
|
|
|
; Registry key to check for directory (so if you install again, it will
|
|
; overwrite the old one automatically)
|
|
; handled by Multiuser.nsh
|
|
;InstallDirRegKey HKLM "Software\${GAME_FSNAME}" "Install_Dir"
|
|
|
|
;--------------------------------
|
|
;Interface Settings
|
|
|
|
!define MUI_ABORTWARNING
|
|
|
|
;--------------------------------
|
|
;Pages
|
|
|
|
!insertmacro MULTIUSER_PAGE_INSTALLMODE
|
|
;!insertmacro MUI_PAGE_LICENSE "../../COPYING.txt"
|
|
!define MUI_COMPONENTSPAGE_NODESC
|
|
!insertmacro MUI_PAGE_COMPONENTS
|
|
!insertmacro MUI_PAGE_DIRECTORY
|
|
!insertmacro MUI_PAGE_INSTFILES
|
|
|
|
!insertmacro MUI_UNPAGE_CONFIRM
|
|
!insertmacro MUI_UNPAGE_INSTFILES
|
|
|
|
;--------------------------------
|
|
;Languages
|
|
|
|
!insertmacro MUI_LANGUAGE "English"
|
|
|
|
;--------------------------------
|
|
|
|
;--------------------------------
|
|
;Multiuser stuff
|
|
Function .onInit
|
|
!insertmacro MULTIUSER_INIT
|
|
FunctionEnd
|
|
|
|
Function un.onInit
|
|
!insertmacro MULTIUSER_UNINIT
|
|
FunctionEnd
|
|
|
|
; The stuff to install
|
|
Section "${GAMENAME} ${VERSION}-${RELEASE} (required)"
|
|
|
|
SectionIn RO
|
|
|
|
; Set output path to the installation directory.
|
|
SetOutPath $INSTDIR
|
|
|
|
!ifndef USE_INTERNAL_SPEEX
|
|
File "libspeex.dll"
|
|
!endif
|
|
!ifndef USE_INTERNAL_ZLIB
|
|
File "zlib1.dll"
|
|
!endif
|
|
!ifndef USE_INTERNAL_JPEG
|
|
File "jpeg8c.dll"
|
|
!endif
|
|
|
|
; Put file there
|
|
File "../../build/release-mingw32-x86/${SERVER}"
|
|
File "../../build/release-mingw32-x86/${CLIENT}"
|
|
!ifdef USE_RENDERER_DLOPEN
|
|
File "../../build/release-mingw32-x86/renderer_opengl1_x86.dll"
|
|
File "../../build/release-mingw32-x86/renderer_opengl2_x86.dll"
|
|
!endif
|
|
|
|
File "../../COPYING.txt"
|
|
File "/oname=README.txt" "../../README"
|
|
|
|
SetOutPath "$INSTDIR\${MODDIR}"
|
|
File "assets0.pk3"
|
|
File "../../build/release-mingw32-x86/${MODDIR}/cgamex86.dll"
|
|
File "../../build/release-mingw32-x86/${MODDIR}/qagamex86.dll"
|
|
File "../../build/release-mingw32-x86/${MODDIR}/uix86.dll"
|
|
|
|
; Write the installation path into the registry
|
|
WriteRegStr SHCTX "Software\${GAME_FSNAME}" ${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME} "$INSTDIR"
|
|
WriteRegStr SHCTX "Software\${GAME_FSNAME}" ${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME} "$MultiUser.InstallMode"
|
|
|
|
; Write the uninstall keys for Windows
|
|
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${GAME_FSNAME}" "DisplayName" "${GAMENAME}"
|
|
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${GAME_FSNAME}" "DisplayVersion" "${VERSION}-${RELEASE}"
|
|
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${GAME_FSNAME}" "Publisher" "${PUBLISHER}"
|
|
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${GAME_FSNAME}" "URLInfoAbout" "${URL}"
|
|
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${GAME_FSNAME}" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
|
WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${GAME_FSNAME}" "NoModify" 1
|
|
WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${GAME_FSNAME}" "NoRepair" 1
|
|
WriteUninstaller "uninstall.exe"
|
|
|
|
SectionEnd
|
|
|
|
; Optional section (can be disabled by the user)
|
|
Section "Start Menu Shortcuts"
|
|
|
|
CreateDirectory "$SMPROGRAMS\${GAMENAME}"
|
|
CreateShortCut "$SMPROGRAMS\${GAMENAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
|
|
CreateShortCut "$SMPROGRAMS\${GAMENAME}\${GAMENAME}.lnk" "$INSTDIR\${CLIENT}" "" "$INSTDIR\${SERVER}" 0
|
|
|
|
SectionEnd
|
|
|
|
Section "SDL2.dll"
|
|
|
|
SetOutPath $INSTDIR
|
|
|
|
File "../../build/release-mingw32-x86/SDL2.dll"
|
|
|
|
SectionEnd
|
|
|
|
!ifdef USE_OPENAL_DLOPEN
|
|
Section "OpenAL-Soft library"
|
|
|
|
SetOutPath $INSTDIR
|
|
|
|
File "OpenAL32.dll"
|
|
|
|
SectionEnd
|
|
!endif
|
|
|
|
!ifdef USE_CURL_DLOPEN
|
|
Section "libcurl"
|
|
|
|
SetOutPath $INSTDIR
|
|
|
|
File "libcurl-4.dll"
|
|
|
|
SectionEnd
|
|
!endif
|
|
|
|
;--------------------------------
|
|
|
|
; Uninstaller
|
|
|
|
Section "Uninstall"
|
|
|
|
; Remove registry keys
|
|
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${GAME_FSNAME}"
|
|
DeleteRegKey SHCTX "Software\${GAME_FSNAME}"
|
|
|
|
; Remove files and uninstaller
|
|
Delete $INSTDIR\${MODDIR}\pak0.pk3
|
|
Delete $INSTDIR\${MODDIR}\cgamex86.dll
|
|
Delete $INSTDIR\${MODDIR}\qagamex86.dll
|
|
Delete $INSTDIR\${MODDIR}\uix86.dll
|
|
Delete $INSTDIR\${CLIENT}
|
|
Delete $INSTDIR\${SERVER}
|
|
|
|
!ifdef USE_RENDERER_DLOPEN
|
|
Delete $INSTDIR\renderer_opengl1_x86.dll
|
|
Delete $INSTDIR\renderer_opengl2_x86.dll
|
|
!endif
|
|
|
|
Delete $INSTDIR\COPYING.txt
|
|
Delete $INSTDIR\README.txt
|
|
|
|
!ifndef USE_INTERNAL_SPEEX
|
|
Delete $INSTDIR\libspeex.dll
|
|
!endif
|
|
!ifndef USE_INTERNAL_ZLIB
|
|
Delete $INSTDIR\zlib1.dll
|
|
!endif
|
|
!ifndef USE_INTERNAL_JPEG
|
|
Delete $INSTDIR\jpeg8c.dll
|
|
!endif
|
|
|
|
Delete $INSTDIR\SDL2.dll
|
|
!ifdef USE_OPENAL_DLOPEN
|
|
Delete $INSTDIR\OpenAL32.dll
|
|
!endif
|
|
!ifdef USE_CURL_DLOPEN
|
|
Delete $INSTDIR\libcurl-4.dll
|
|
!endif
|
|
|
|
Delete $INSTDIR\uninstall.exe
|
|
|
|
; Remove shortcuts, if any
|
|
Delete "$SMPROGRAMS\${GAMENAME}\Uninstall.lnk"
|
|
Delete "$SMPROGRAMS\${GAMENAME}\${GAMENAME}.lnk"
|
|
|
|
; Remove directories used
|
|
RMDir "$SMPROGRAMS\${GAMENAME}"
|
|
RMDir "$INSTDIR\${MODDIR}"
|
|
RMDir "$INSTDIR"
|
|
|
|
SectionEnd
|