|
| 1 | +Name "BitBox Wallet App" |
| 2 | + |
| 3 | +RequestExecutionLevel highest |
| 4 | +SetCompressor /SOLID lzma |
| 5 | + |
| 6 | +# General Symbol Definitions |
| 7 | +!define REGKEY "SOFTWARE\$(^Name)" |
| 8 | +!define VERSION 4.3.0.0 |
| 9 | +!define COMPANY "Shiftcrypto" |
| 10 | +!define URL https://https://github.com/digitalbitbox/bitbox-wallet-app/releases/download |
| 11 | +!define BINDIR "build\windows" |
| 12 | +!define ICONDIR "resources\win" |
| 13 | + |
| 14 | +# MUI Symbol Definitions |
| 15 | +!define MUI_ICON "${ICONDIR}\icon.ico" |
| 16 | +!define MUI_WELCOMEFINISHPAGE_UNICON "${ICONDIR}\icon.ico" |
| 17 | +!define MUI_HEADERIMAGE "${ICONDIR}\icon.ico" |
| 18 | +!define MUI_HEADERIMAGE_RIGHT "${ICONDIR}\icon.ico" |
| 19 | +!define MUI_HEADERIMAGE_UNICON "${ICONDIR}\icon.ico" |
| 20 | +!define MUI_FINISHPAGE_NOAUTOCLOSE |
| 21 | +!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM |
| 22 | +!define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY} |
| 23 | +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup |
| 24 | +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "BitBox" |
| 25 | +!define MUI_FINISHPAGE_RUN "$WINDIR\explorer.exe" |
| 26 | +!define MUI_FINISHPAGE_RUN_PARAMETERS $INSTDIR\BitBox.exe |
| 27 | +!define MUI_UNICON "${ICONDIR}\icon.ico" |
| 28 | +!define MUI_UNWELCOMEFINISHPAGE_UNICON "${ICONDIR}\icon.ico" |
| 29 | +!define MUI_UNFINISHPAGE_NOAUTOCLOSE |
| 30 | + |
| 31 | +# Included files |
| 32 | +!include Sections.nsh |
| 33 | +!include MUI2.nsh |
| 34 | +!include x64.nsh |
| 35 | + |
| 36 | +# Variables |
| 37 | +Var StartMenuGroup |
| 38 | + |
| 39 | +# Installer pages |
| 40 | +!insertmacro MUI_PAGE_WELCOME |
| 41 | +!insertmacro MUI_PAGE_DIRECTORY |
| 42 | +!insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup |
| 43 | +!insertmacro MUI_PAGE_INSTFILES |
| 44 | +!insertmacro MUI_PAGE_FINISH |
| 45 | +!insertmacro MUI_UNPAGE_CONFIRM |
| 46 | +!insertmacro MUI_UNPAGE_INSTFILES |
| 47 | + |
| 48 | +# Installer languages |
| 49 | +!insertmacro MUI_LANGUAGE English |
| 50 | + |
| 51 | +# Installer attributes |
| 52 | +OutFile BitBox-installer.exe |
| 53 | +InstallDir $PROGRAMFILES64\BitBox |
| 54 | +CRCCheck on |
| 55 | +XPStyle on |
| 56 | +BrandingText " " |
| 57 | +ShowInstDetails show |
| 58 | +VIProductVersion ${VERSION} |
| 59 | +VIAddVersionKey ProductName "BitBox Wallet App" |
| 60 | +VIAddVersionKey ProductVersion "${VERSION}" |
| 61 | +VIAddVersionKey CompanyName "${COMPANY}" |
| 62 | +VIAddVersionKey CompanyWebsite "${URL}" |
| 63 | +VIAddVersionKey FileVersion "${VERSION}" |
| 64 | +VIAddVersionKey FileDescription "" |
| 65 | +VIAddVersionKey LegalCopyright "" |
| 66 | +InstallDirRegKey HKCU "${REGKEY}" Path |
| 67 | +ShowUninstDetails show |
| 68 | + |
| 69 | +# Installer sections |
| 70 | +Section -Main SEC0000 |
| 71 | + SetOutPath $INSTDIR |
| 72 | + SetOverwrite on |
| 73 | + File /r "build\windows\*" |
| 74 | + SetOutPath $INSTDIR\daemon |
| 75 | + SetOutPath $INSTDIR\doc |
| 76 | + #File /r /x Makefile* @abs_top_srcdir@/doc\*.* |
| 77 | + SetOutPath $INSTDIR |
| 78 | + WriteRegStr HKCU "${REGKEY}\Components" Main 1 |
| 79 | +SectionEnd |
| 80 | + |
| 81 | +Section -post SEC0001 |
| 82 | + WriteRegStr HKCU "${REGKEY}" Path $INSTDIR |
| 83 | + SetOutPath $INSTDIR |
| 84 | + WriteUninstaller $INSTDIR\uninstall.exe |
| 85 | + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application |
| 86 | + CreateDirectory $SMPROGRAMS\$StartMenuGroup |
| 87 | + CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" $INSTDIR\BitBox.exe |
| 88 | + CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk" $INSTDIR\uninstall.exe |
| 89 | + !insertmacro MUI_STARTMENU_WRITE_END |
| 90 | + WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)" |
| 91 | + WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}" |
| 92 | + WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}" |
| 93 | + WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}" |
| 94 | + WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\uninstall.exe |
| 95 | + WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe |
| 96 | + WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1 |
| 97 | + WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1 |
| 98 | +SectionEnd |
| 99 | + |
| 100 | +# Macro for selecting uninstaller sections |
| 101 | +!macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID |
| 102 | + Push $R0 |
| 103 | + ReadRegStr $R0 HKCU "${REGKEY}\Components" "${SECTION_NAME}" |
| 104 | + StrCmp $R0 1 0 next${UNSECTION_ID} |
| 105 | + !insertmacro SelectSection "${UNSECTION_ID}" |
| 106 | + GoTo done${UNSECTION_ID} |
| 107 | +next${UNSECTION_ID}: |
| 108 | + !insertmacro UnselectSection "${UNSECTION_ID}" |
| 109 | +done${UNSECTION_ID}: |
| 110 | + Pop $R0 |
| 111 | +!macroend |
| 112 | + |
| 113 | +# Uninstaller sections |
| 114 | +Section /o -un.Main UNSEC0000 |
| 115 | + RMDir /r /REBOOTOK $INSTDIR |
| 116 | + DeleteRegValue HKCU "${REGKEY}\Components" Main |
| 117 | +SectionEnd |
| 118 | + |
| 119 | +Section -un.post UNSEC0001 |
| 120 | + DeleteRegKey HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" |
| 121 | + Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk" |
| 122 | + Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" |
| 123 | + Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\BitBox.lnk" |
| 124 | + Delete /REBOOTOK "$SMSTARTUP\Bitcoin.lnk" |
| 125 | + Delete /REBOOTOK $INSTDIR\uninstall.exe |
| 126 | + Delete /REBOOTOK $INSTDIR\debug.log |
| 127 | + Delete /REBOOTOK $INSTDIR\db.log |
| 128 | + DeleteRegValue HKCU "${REGKEY}" StartMenuGroup |
| 129 | + DeleteRegValue HKCU "${REGKEY}" Path |
| 130 | + DeleteRegKey /IfEmpty HKCU "${REGKEY}\Components" |
| 131 | + DeleteRegKey /IfEmpty HKCU "${REGKEY}" |
| 132 | + #DeleteRegKey HKCR "@PACKAGE_TARNAME@" |
| 133 | + RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup |
| 134 | + RmDir /REBOOTOK $INSTDIR |
| 135 | + Push $R0 |
| 136 | + StrCpy $R0 $StartMenuGroup 1 |
| 137 | + StrCmp $R0 ">" no_smgroup |
| 138 | +no_smgroup: |
| 139 | + Pop $R0 |
| 140 | +SectionEnd |
| 141 | + |
| 142 | +# Uninstaller functions |
| 143 | +Function un.onInit |
| 144 | + ReadRegStr $INSTDIR HKCU "${REGKEY}" Path |
| 145 | + !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup |
| 146 | + !insertmacro SELECT_UNSECTION Main ${UNSEC0000} |
| 147 | +FunctionEnd |
0 commit comments