q3rally/engine/misc/nsis/q3rally.nsi.in

230 lines
6.4 KiB
Text
Raw Normal View History

2011-02-18 14:31:32 +00:00
; 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
2011-02-18 14:31:32 +00:00
!define VERSION "XXXVERSIONXXX"
!define RELEASE "XXXRELEASEXXX"
!define MODDIR "baseq3r"
!define PUBLISHER "The Q3Rally Team"
!define URL "http://q3rally.com/"
!define GAMENAME "Q3Rally"
2011-03-07 21:18:58 +00:00
!define CLIENT "q3rally.exe"
!define SERVER "q3rally_ded.exe"
2011-02-18 14:31:32 +00:00
!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"
2021-03-15 18:39:56 +00:00
!define MUI_ICON "../q3r_icon.ico"
2011-02-18 14:31:32 +00:00
; The name of the installer
Name "${GAMENAME} ${VERSION}"
; The file to write
OutFile "${GAME_FSNAME}-${VERSION}-${RELEASE}.x86.exe"
2011-02-18 14:31:32 +00:00
; 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
2011-02-18 14:31:32 +00:00
File "zlib1.dll"
!endif
!ifndef USE_INTERNAL_JPEG
File "jpeg8c.dll"
!endif
2011-02-18 14:31:32 +00:00
; 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
2011-02-18 14:31:32 +00:00
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"
2011-02-18 14:31:32 +00:00
SetOutPath $INSTDIR
File "../../build/release-mingw32-x86/SDL2.dll"
2011-02-18 14:31:32 +00:00
SectionEnd
!ifdef USE_OPENAL_DLOPEN
Section "OpenAL-Soft library"
2011-02-18 14:31:32 +00:00
SetOutPath $INSTDIR
File "OpenAL32.dll"
2011-02-18 14:31:32 +00:00
SectionEnd
!endif
2011-02-18 14:31:32 +00:00
!ifdef USE_CURL_DLOPEN
Section "libcurl"
2011-02-18 14:31:32 +00:00
SetOutPath $INSTDIR
File "libcurl-4.dll"
2011-02-18 14:31:32 +00:00
SectionEnd
!endif
2011-02-18 14:31:32 +00:00
;--------------------------------
; 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}
ioquake3 resync to revision 2398 from 2369. This is the last ioquake3 revision before ioquake3 changed from subversion to git at the beginning of 2013. #5808 - Include and use .glsl in source (rend2) #5812 - Use refdef's coordinates when drawing to screen shadow fbo, and separate depth texture and screen texture coordinates in glsl shaders. Include Rend2 renderer in MacOSX bundle Include OpenGL1 and Rend2 renderers in MacOSX UB Include Rend2 renderer in NSIS installer. Include OpenGL1 and Rend2 renderers in Loki Setup Installer. Have NSIS uninstaller delete rend2. Split light sample into direct and ambient parts when using deluxemaps or per-vertex light vectors. Fixes #5813. Fix writting voip data in demos (broke in r2102). Fix server ignoring client move commands if voip data is included. Allow changing cl_voip without restarting. Fix assert failing in CL_ParseVoip() while flipping cl_voip off and on. Only declare var_SampleToView in lightall shader when it is actually used. Fix a couple files not ending with a newline. Fix clients being able to reset their player state and respawn using donedl. Fix passing arg9 (qvm only), arg10, and arg11 to vmMain for native libs and non-i386 compiled or interpated qvms. (Currently they aren't use in vmMain in game, cgame, or ui.) Fix passing args[11] to args[15] from vm to engine on ppc64 and sparc64. Some of the args are used by game bot prediction syscalls. May have been causing bugs. Note: This was fixed for x86_64 in r2163. Fix reconnect command to work after leaving server. (#5794) Fix dedicated server crashing when using MSG_ReadDelta*, though it only happens if someone modifies the engine. (#5449) Makefile fixes for OpenBSD by Jonathan Gray. (#5728) Save all arguments from connect for reconnect command. Remove unnecessary localhost check from reconnect command. Support r_srgb even without hardware support. Also tweak default autoexposure/tonemap settings to look good on both r_srgb 0 and 1. Changed the MacOS-X build system to make UB's containing i386 and x86_64 arches and made make-macosx.sh not build UB's but only standard binaries Fix spectator client being switched from follow to free after map_restart if following a client with a higher client number. Fix client unlinking issue caused by ent->s.number being set to followed client's ps->clientNum after map_restart. Reported by Ensiform. Changes from Ensiform: - In G_AddBot, try to allocate clientNum before doing anything else. - In G_AddBot, don't set SVF_BOT and inuse. It's done in ClientConnect, plus inuse causes ClientDisconnect to be run for no reason. - In G_AddBot, only set skill in bot useinfo once. - Avoid using cl->ps.clientNum to check if cl is a bot. Fix bot skill format so it doesn't always have a space at the beginning of it. More fixes to the macosx buildsystem. This removes the SDL Framework and makes use of a SDL library that is position independant. This also brings back PPC builds into the UB and also as a standa alone build choice. Have make-macosx.sh require the user to specify which architecture she/he wants to build for and suggest building UB's if the user is unaware of what architectures are Lets list all the valid options.
2017-07-09 21:21:12 +00:00
!ifdef USE_RENDERER_DLOPEN
Delete $INSTDIR\renderer_opengl1_x86.dll
Delete $INSTDIR\renderer_opengl2_x86.dll
ioquake3 resync to revision 2398 from 2369. This is the last ioquake3 revision before ioquake3 changed from subversion to git at the beginning of 2013. #5808 - Include and use .glsl in source (rend2) #5812 - Use refdef's coordinates when drawing to screen shadow fbo, and separate depth texture and screen texture coordinates in glsl shaders. Include Rend2 renderer in MacOSX bundle Include OpenGL1 and Rend2 renderers in MacOSX UB Include Rend2 renderer in NSIS installer. Include OpenGL1 and Rend2 renderers in Loki Setup Installer. Have NSIS uninstaller delete rend2. Split light sample into direct and ambient parts when using deluxemaps or per-vertex light vectors. Fixes #5813. Fix writting voip data in demos (broke in r2102). Fix server ignoring client move commands if voip data is included. Allow changing cl_voip without restarting. Fix assert failing in CL_ParseVoip() while flipping cl_voip off and on. Only declare var_SampleToView in lightall shader when it is actually used. Fix a couple files not ending with a newline. Fix clients being able to reset their player state and respawn using donedl. Fix passing arg9 (qvm only), arg10, and arg11 to vmMain for native libs and non-i386 compiled or interpated qvms. (Currently they aren't use in vmMain in game, cgame, or ui.) Fix passing args[11] to args[15] from vm to engine on ppc64 and sparc64. Some of the args are used by game bot prediction syscalls. May have been causing bugs. Note: This was fixed for x86_64 in r2163. Fix reconnect command to work after leaving server. (#5794) Fix dedicated server crashing when using MSG_ReadDelta*, though it only happens if someone modifies the engine. (#5449) Makefile fixes for OpenBSD by Jonathan Gray. (#5728) Save all arguments from connect for reconnect command. Remove unnecessary localhost check from reconnect command. Support r_srgb even without hardware support. Also tweak default autoexposure/tonemap settings to look good on both r_srgb 0 and 1. Changed the MacOS-X build system to make UB's containing i386 and x86_64 arches and made make-macosx.sh not build UB's but only standard binaries Fix spectator client being switched from follow to free after map_restart if following a client with a higher client number. Fix client unlinking issue caused by ent->s.number being set to followed client's ps->clientNum after map_restart. Reported by Ensiform. Changes from Ensiform: - In G_AddBot, try to allocate clientNum before doing anything else. - In G_AddBot, don't set SVF_BOT and inuse. It's done in ClientConnect, plus inuse causes ClientDisconnect to be run for no reason. - In G_AddBot, only set skill in bot useinfo once. - Avoid using cl->ps.clientNum to check if cl is a bot. Fix bot skill format so it doesn't always have a space at the beginning of it. More fixes to the macosx buildsystem. This removes the SDL Framework and makes use of a SDL library that is position independant. This also brings back PPC builds into the UB and also as a standa alone build choice. Have make-macosx.sh require the user to specify which architecture she/he wants to build for and suggest building UB's if the user is unaware of what architectures are Lets list all the valid options.
2017-07-09 21:21:12 +00:00
!endif
2011-02-18 14:31:32 +00:00
Delete $INSTDIR\COPYING.txt
Delete $INSTDIR\README.txt
!ifndef USE_INTERNAL_SPEEX
Delete $INSTDIR\libspeex.dll
!endif
!ifndef USE_INTERNAL_ZLIB
2011-02-18 14:31:32 +00:00
Delete $INSTDIR\zlib1.dll
!endif
!ifndef USE_INTERNAL_JPEG
Delete $INSTDIR\jpeg8c.dll
!endif
2011-02-18 14:31:32 +00:00
Delete $INSTDIR\SDL2.dll
!ifdef USE_OPENAL_DLOPEN
2011-02-18 14:31:32 +00:00
Delete $INSTDIR\OpenAL32.dll
!endif
!ifdef USE_CURL_DLOPEN
Delete $INSTDIR\libcurl-4.dll
!endif
2011-02-18 14:31:32 +00:00
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