tAdd basic NSIS installer script; closes #46 - vaccinewars - be a doctor and tr… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 38af4f8c4110903d71d6ede391d300329cea9bc3 | |
parent 4e62725c65b6d2dcac3bb4b390bf468a2552a2f2 | |
Author: Ben Webb <[email protected]> | |
Date: Thu, 12 Nov 2020 00:32:28 -0800 | |
Add basic NSIS installer script; closes #46 | |
Diffstat: | |
M .gitignore | 1 + | |
M configure.ac | 1 + | |
A win32/install.nsi.in | 188 +++++++++++++++++++++++++++++… | |
3 files changed, 190 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/.gitignore b/.gitignore | |
t@@ -1,5 +1,6 @@ | |
po/*.gmo | |
po/stamp-po | |
+win32/install.nsi | |
*.o | |
*.a | |
*.la | |
diff --git a/configure.ac b/configure.ac | |
t@@ -427,6 +427,7 @@ doc/Makefile | |
doc/help/Makefile | |
dopewars.spec | |
doc/dopewars.6 | |
+win32/install.nsi | |
po/Makefile.in], | |
[]) | |
diff --git a/win32/install.nsi.in b/win32/install.nsi.in | |
t@@ -0,0 +1,188 @@ | |
+; NSIS (http://nsis.sf.net/) install script | |
+ | |
+!include "MUI2.nsh" | |
+!include "FileFunc.nsh" | |
+!include "WinVer.nsh" | |
+!include "LogicLib.nsh" | |
+ | |
+; Use solid LZMA compression | |
+SetCompressor /SOLID lzma | |
+ | |
+Var STARTMENU_FOLDER | |
+Var MUI_TEMP | |
+ | |
+!define PRODUCT "dopewars" | |
+!define VERSION "@PACKAGE_VERSION@" | |
+!define PRODVER "${PRODUCT}${VERSION}" | |
+ | |
+!define MUI_ICON "setup.ico" | |
+!define MUI_UNICON "setup.ico" | |
+ | |
+!if "@host@" == "i686-w64-mingw32" | |
+ ; 32-bit build; no special setup | |
+!else if "@host@" == "x86_64-w64-mingw64" | |
+ ; 64-bit build | |
+ !define DOPEWARS_64BIT | |
+!else | |
+ !error "Supported only for 32-bit and 64-bit Windows" | |
+!endif | |
+ | |
+Name ${PRODVER} | |
+ | |
+!ifdef DOPEWARS_64BIT | |
+ Caption "${PRODUCT} ${VERSION} (64 bit) Setup" | |
+ OutFile "dopewars-${VERSION}-64bit.exe" | |
+ InstallDir "$PROGRAMFILES64\${PRODVER}" | |
+ # Note that we don't use InstallDirRegKey on x64 since it ignores SetRegView | |
+ !define FULL_PRODVER "${PRODUCT} ${VERSION} (64 bit)" | |
+!else | |
+ Caption "${PRODUCT} ${VERSION} (32 bit) Setup" | |
+ OutFile "dopewars-${VERSION}-32bit.exe" | |
+ InstallDir "$PROGRAMFILES\${PRODVER}" | |
+ InstallDirRegKey HKLM "Software\${PRODVER}" "" | |
+ !define FULL_PRODVER "${PRODUCT} ${VERSION} (32 bit)" | |
+!endif | |
+ | |
+!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM" | |
+!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\${PRODVER}" | |
+!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" | |
+ | |
+!define MUI_TEMP $R0 | |
+ | |
+!define MUI_ABORTWARNING | |
+ | |
+!define MUI_WELCOMEPAGE_TITLE "Welcome to the ${FULL_PRODVER} Setup Wizard" | |
+!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installat… | |
+ | |
+!define MUI_FINISHPAGE_LINK "https://dopewars.sourceforge.io/" | |
+!define MUI_FINISHPAGE_LINK_LOCATION "https://dopewars.sourceforge.io/" | |
+ | |
+!define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PROD… | |
+ | |
+;Pages | |
+!insertmacro MUI_PAGE_WELCOME | |
+!insertmacro MUI_PAGE_DIRECTORY | |
+!insertmacro MUI_PAGE_STARTMENU ${PRODVER} $STARTMENU_FOLDER | |
+!insertmacro MUI_PAGE_INSTFILES | |
+!insertmacro MUI_PAGE_FINISH | |
+ | |
+!insertmacro MUI_UNPAGE_CONFIRM | |
+!insertmacro MUI_UNPAGE_INSTFILES | |
+ | |
+!insertmacro MUI_LANGUAGE "English" | |
+ | |
+Section "" | |
+ SetOutPath "$INSTDIR" | |
+ File "..\LICENCE" | |
+ | |
+ File "..\doc\*.html" | |
+ | |
+ File "..\src\dopewars.exe" | |
+ File "/etc/pki/tls/certs/ca-bundle.crt" | |
+ | |
+!ifdef DOPEWARS_64BIT | |
+ File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/iconv.dll" | |
+ File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libcrypto-1_1-x64.dll" | |
+ File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libcurl-4.dll" | |
+ File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libglib-2.0-0.dll" | |
+ File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libidn2-0.dll" | |
+ File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libintl-8.dll" | |
+ File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libpcre-1.dll" | |
+ File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libssh2-1.dll" | |
+ File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libssl-1_1-x64.dll" | |
+ File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libssp-0.dll" | |
+ File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libwinpthread-1.dll" | |
+ File "/usr/x86_64-w64-mingw32/sys-root/mingw/bin/zlib1.dll" | |
+!else | |
+ File "/usr/i686-w64-mingw32/sys-root/mingw/bin/iconv.dll" | |
+ File "/usr/i686-w64-mingw32/sys-root/mingw/bin/libcrypto-1_1.dll" | |
+ File "/usr/i686-w64-mingw32/sys-root/mingw/bin/libcurl-4.dll" | |
+ File "/usr/i686-w64-mingw32/sys-root/mingw/bin/libgcc_s_dw2-1.dll" | |
+ File "/usr/i686-w64-mingw32/sys-root/mingw/bin/libglib-2.0-0.dll" | |
+ File "/usr/i686-w64-mingw32/sys-root/mingw/bin/libidn2-0.dll" | |
+ File "/usr/i686-w64-mingw32/sys-root/mingw/bin/libintl-8.dll" | |
+ File "/usr/i686-w64-mingw32/sys-root/mingw/bin/libpcre-1.dll" | |
+ File "/usr/i686-w64-mingw32/sys-root/mingw/bin/libssh2-1.dll" | |
+ File "/usr/i686-w64-mingw32/sys-root/mingw/bin/libssl-1_1.dll" | |
+ File "/usr/i686-w64-mingw32/sys-root/mingw/bin/libssp-0.dll" | |
+ File "/usr/i686-w64-mingw32/sys-root/mingw/bin/libwinpthread-1.dll" | |
+ File "/usr/i686-w64-mingw32/sys-root/mingw/bin/zlib1.dll" | |
+!endif | |
+ | |
+ SetOutPath "$INSTDIR\locale\pt_BR\LC_MESSAGES" | |
+ File /oname=dopewars.mo "..\po\pt_BR.gmo" | |
+ | |
+ SetOutPath "$INSTDIR\sounds\19.5degs" | |
+ File "..\sounds\19.5degs\*.wav" | |
+ | |
+ WriteRegStr HKLM "Software\${PRODVER}" "" $INSTDIR | |
+ WriteUninstaller "$INSTDIR\Uninstall.exe" | |
+ WriteRegStr HKLM "${UNINST_KEY}" "DisplayName" "${FULL_PRODVER}" | |
+ WriteRegStr HKLM "${UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe" | |
+ WriteRegStr HKLM "${UNINST_KEY}" "DisplayVersion" "${VERSION}" | |
+ WriteRegStr HKLM "${UNINST_KEY}" "Publisher" "Ben Webb" | |
+ WriteRegStr HKLM "${UNINST_KEY}" "URLInfoAbout" "https://dopewars.sourceforg… | |
+ WriteRegDWORD HKLM "${UNINST_KEY}" "NoModify" 1 | |
+ WriteRegDWORD HKLM "${UNINST_KEY}" "NoRepair" 1 | |
+ | |
+ !insertmacro MUI_STARTMENU_WRITE_BEGIN ${PRODVER} | |
+ CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" | |
+ CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\dopewars.lnk" "$INSTDIR\dope… | |
+ CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\text-mode dopewars.lnk" "$IN… | |
+ CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uni… | |
+ !insertmacro MUI_STARTMENU_WRITE_END | |
+SectionEnd | |
+ | |
+Section "Uninstall" | |
+!ifdef DOPEWARS_64BIT | |
+ SetRegView 64 | |
+!endif | |
+ Delete "$INSTDIR\Uninstall.exe" | |
+ Delete "$INSTDIR\dopewars.exe" | |
+ Delete "$INSTDIR\*.dll" | |
+ Delete "$INSTDIR\*.html" | |
+ Delete "$INSTDIR\ca-bundle.crt" | |
+ RMDir /r "$INSTDIR\locale" | |
+ RMDir /r "$INSTDIR\sounds" | |
+ RMDir "$INSTDIR" | |
+ | |
+ ReadRegStr $MUI_TEMP HKLM "Software\${PRODVER}" "Start Menu Folder" | |
+ | |
+ StrCmp $MUI_TEMP "" noshortcuts | |
+ ReadRegStr $0 HKLM "Software\${PRODVER}" "ShellVarContext" | |
+ StrCmp $0 "all" 0 +2 | |
+ SetShellVarContext all | |
+ Delete "$SMPROGRAMS\$MUI_TEMP\dopewars.lnk" | |
+ RMDir "$SMPROGRAMS\$MUI_TEMP" ;Only if empty, so it won't delete other sho… | |
+ | |
+ noshortcuts: | |
+ | |
+ DeleteRegKey /ifempty HKLM "Software\${PRODVER}" | |
+ DeleteRegKey HKLM "${UNINST_KEY}" | |
+ | |
+SectionEnd | |
+ | |
+Function .onInit | |
+!ifdef DOPEWARS_64BIT | |
+ SetRegView 64 | |
+!endif | |
+ | |
+ ClearErrors | |
+ | |
+ UserInfo::GetAccountType | |
+ IfErrors add_reg_keys | |
+ Pop $0 | |
+ StrCmp $0 "Admin" add_reg_keys | |
+ IfSilent silent_not_admin | |
+ MessageBox MB_YESNO|MB_ICONEXCLAMATION \ | |
+ "You do not appear to be a computer administrator; \ | |
+ this installer may not function correctly. \ | |
+ Do you want to continue anyway?" /SD IDYES IDYES acccheck_done | |
+ Quit | |
+ silent_not_admin: | |
+ Abort "This installer must be run by the administrator" | |
+ add_reg_keys: | |
+ SetShellVarContext all ; install for all users | |
+ WriteRegStr HKLM "Software\${PRODVER}" "ShellVarContext" "all" | |
+ acccheck_done: | |
+FunctionEnd |