aboutsummaryrefslogtreecommitdiff
path: root/misc/nsis/ioquake3.nsi.in
diff options
context:
space:
mode:
Diffstat (limited to 'misc/nsis/ioquake3.nsi.in')
-rw-r--r--misc/nsis/ioquake3.nsi.in186
1 files changed, 186 insertions, 0 deletions
diff --git a/misc/nsis/ioquake3.nsi.in b/misc/nsis/ioquake3.nsi.in
new file mode 100644
index 0000000..ddf2090
--- /dev/null
+++ b/misc/nsis/ioquake3.nsi.in
@@ -0,0 +1,186 @@
+; NSIS description file for ioquake3 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 SDL.dll and libcurl-4.dll here manually
+
+!define MULTIUSER_MUI
+!define MULTIUSER_EXECUTIONLEVEL Highest
+!define MULTIUSER_INSTALLMODE_COMMANDLINE
+!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY "Software\ioquake3"
+!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "Install_Mode"
+!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "Software\ioquake3"
+!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "Install_Dir"
+!define MULTIUSER_INSTALLMODE_INSTDIR "ioquake3"
+!include MultiUser.nsh
+
+!include "MUI2.nsh"
+!define MUI_ICON "../quake3.ico"
+
+; The name of the installer
+Name "ioquake3"
+
+; The file to write
+OutFile "ioquake3-XXXVERSIONXXX-XXXRELEASEXXX.x86.exe"
+
+; The default installation directory
+; set by Multiuser.nsh
+;InstallDir $PROGRAMFILES\ioquake3
+
+; 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\ioquake3" "Install_Dir"
+
+;--------------------------------
+;Interface Settings
+
+!define MUI_ABORTWARNING
+
+;--------------------------------
+;Pages
+
+!insertmacro MULTIUSER_PAGE_INSTALLMODE
+#!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt"
+!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 "ioquake3 (required)"
+
+ SectionIn RO
+
+ ; Set output path to the installation directory.
+ SetOutPath $INSTDIR
+
+ ; Put file there
+ File "../../build/release-mingw32-x86/ioq3ded.x86.exe"
+ File "../../build/release-mingw32-x86/ioquake3.x86.exe"
+ File "../../COPYING.txt"
+ File "../../README.txt"
+ File "../../id-readme.txt"
+ File "../../voip-readme.txt"
+
+ SetOutPath "$INSTDIR\baseq3"
+ File "../../build/release-mingw32-x86/baseq3/cgamex86.dll"
+ File "../../build/release-mingw32-x86/baseq3/qagamex86.dll"
+ File "../../build/release-mingw32-x86/baseq3/uix86.dll"
+ SetOutPath "$INSTDIR\missionpack"
+ File "../../build/release-mingw32-x86/missionpack/cgamex86.dll"
+ File "../../build/release-mingw32-x86/missionpack/qagamex86.dll"
+ File "../../build/release-mingw32-x86/missionpack/uix86.dll"
+
+ ; Write the installation path into the registry
+ WriteRegStr SHCTX "Software\ioquake3" ${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME} "$INSTDIR"
+ WriteRegStr SHCTX "Software\ioquake3" ${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME} "$MultiUser.InstallMode"
+
+ ; Write the uninstall keys for Windows
+ WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\ioquake3" "DisplayName" "ioquake3"
+ WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\ioquake3" "UninstallString" '"$INSTDIR\uninstall.exe"'
+ WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\ioquake3" "NoModify" 1
+ WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\ioquake3" "NoRepair" 1
+ WriteUninstaller "uninstall.exe"
+
+SectionEnd
+
+; Optional section (can be disabled by the user)
+Section "Start Menu Shortcuts"
+
+ CreateDirectory "$SMPROGRAMS\ioquake3"
+ CreateShortCut "$SMPROGRAMS\ioquake3\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
+ CreateShortCut "$SMPROGRAMS\ioquake3\ioquake3.lnk" "$INSTDIR\ioquake3.x86.exe" "" "$INSTDIR\ioquake3.x86.exe" 0
+
+SectionEnd
+
+Section "SDL.dll"
+
+ SetOutPath $INSTDIR
+
+ File "SDL.dll"
+
+SectionEnd
+
+Section "libcurl"
+
+ SetOutPath $INSTDIR
+
+ File "libcurl-4.dll"
+
+SectionEnd
+
+Section "OpenAL-Soft library"
+
+ SetOutPath $INSTDIR
+
+ File "OpenAL32.dll"
+
+SectionEnd
+
+;--------------------------------
+
+; Uninstaller
+
+Section "Uninstall"
+
+ ; Remove registry keys
+ DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\ioquake3"
+ DeleteRegKey SHCTX "Software\ioquake3"
+
+ ; Remove files and uninstaller
+ Delete $INSTDIR\baseq3\cgamex86.dll
+ Delete $INSTDIR\baseq3\qagamex86.dll
+ Delete $INSTDIR\baseq3\uix86.dll
+ Delete $INSTDIR\missionpack\cgamex86.dll
+ Delete $INSTDIR\missionpack\qagamex86.dll
+ Delete $INSTDIR\missionpack\uix86.dll
+ Delete $INSTDIR\ioquake3.x86.exe
+ Delete $INSTDIR\ioq3ded.x86.exe
+
+ Delete $INSTDIR\COPYING.txt
+ Delete $INSTDIR\README.txt
+ Delete $INSTDIR\id-readme.txt
+ Delete $INSTDIR\voip-readme.txt
+
+ Delete $INSTDIR\SDL.dll
+
+ Delete $INSTDIR\libcurl-4.dll
+
+ Delete $INSTDIR\OpenAL32.dll
+
+ Delete $INSTDIR\uninstall.exe
+
+ ; Remove shortcuts, if any
+ Delete "$SMPROGRAMS\ioquake3\Uninstall.lnk"
+ Delete "$SMPROGRAMS\ioquake3\ioquake3.lnk"
+
+ ; Remove directories used
+ RMDir "$SMPROGRAMS\ioquake3"
+ RMDir "$INSTDIR\baseq3"
+ RMDir "$INSTDIR\missionpack"
+ RMDir "$INSTDIR"
+
+SectionEnd