; 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