Files
triangles_v5/contrib/nsis/setup.nsi
T
Krystie 7e8ae1a25b Proper installers for all platforms
Windows: NSIS setup.exe — double-click to install with Start Menu
  shortcuts, desktop icon, uninstaller in Add/Remove Programs.
  Tor bundled in tor/ subfolder, auto-detected by wallet.

Linux: .deb packages (dpkg -i) for both Qt wallet and daemon.
  Wallet gets desktop entry + app icon. Daemon gets systemd service.
  Tor bundled in /usr/lib/cryptographic-triangles/tor/.

macOS: DMG with Tor inside .app bundle (unchanged).

All platforms: download one file, install, run. Zero configuration.
2026-04-02 22:11:29 -07:00

97 lines
3.5 KiB
NSIS

; Cryptographic Triangles NSIS Installer
; Produces a single setup.exe with wallet + Tor bundled
!include "MUI2.nsh"
!include "FileFunc.nsh"
!ifndef VERSION
!define VERSION "0.0.0"
!endif
!define APPNAME "Cryptographic Triangles"
!define COMPANYNAME "Cryptographic Triangles"
!define EXENAME "triangles-qt.exe"
Name "${APPNAME} v${VERSION}"
OutFile "Cryptographic-Triangles-${VERSION}-win-x64-setup.exe"
InstallDir "$PROGRAMFILES64\${APPNAME}"
InstallDirRegKey HKLM "Software\${APPNAME}" "InstallDir"
RequestExecutionLevel admin
; UI — icons and bitmaps are relative to THIS .nsi file
!define MUI_ICON "..\..\src\qt\res\icons\triangles.ico"
!define MUI_UNICON "..\..\src\qt\res\icons\triangles.ico"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "..\..\share\pixmaps\nsis-header.bmp"
!define MUI_WELCOMEFINISHPAGE_BITMAP "..\..\share\pixmaps\nsis-wizard.bmp"
!define MUI_ABORTWARNING
!define MUI_FINISHPAGE_RUN "$INSTDIR\${EXENAME}"
!define MUI_FINISHPAGE_RUN_TEXT "Launch ${APPNAME}"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Section "Install"
SetOutPath "$INSTDIR"
; Wallet + Qt DLLs (prepared by the Package step into dist/)
File /r "..\..\dist\*.*"
; Tor binary + data (prepared by Download Tor step into tor-files/)
SetOutPath "$INSTDIR\tor"
File /r "..\..\tor-files\*.*"
; Create data directory
CreateDirectory "$APPDATA\Triangles"
; Uninstaller
WriteUninstaller "$INSTDIR\uninstall.exe"
; Start menu
CreateDirectory "$SMPROGRAMS\${APPNAME}"
CreateShortcut "$SMPROGRAMS\${APPNAME}\${APPNAME}.lnk" "$INSTDIR\${EXENAME}" "" "$INSTDIR\${EXENAME}" 0
CreateShortcut "$SMPROGRAMS\${APPNAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe"
; Desktop shortcut
CreateShortcut "$DESKTOP\${APPNAME}.lnk" "$INSTDIR\${EXENAME}" "" "$INSTDIR\${EXENAME}" 0
; Add/Remove Programs
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${APPNAME}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayIcon" "$INSTDIR\${EXENAME}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "Publisher" "${COMPANYNAME}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayVersion" "${VERSION}"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoRepair" 1
WriteRegStr HKLM "Software\${APPNAME}" "InstallDir" "$INSTDIR"
${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
IntFmt $0 "0x%08X" $0
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "EstimatedSize" "$0"
SectionEnd
Section "Uninstall"
; Stop running processes
nsExec::ExecToLog 'taskkill /F /IM triangles-qt.exe'
nsExec::ExecToLog 'taskkill /F /IM trianglesd.exe'
nsExec::ExecToLog 'taskkill /F /IM tor.exe'
; Remove installation
RMDir /r "$INSTDIR"
; Remove shortcuts
RMDir /r "$SMPROGRAMS\${APPNAME}"
Delete "$DESKTOP\${APPNAME}.lnk"
; Remove registry
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"
DeleteRegKey HKLM "Software\${APPNAME}"
SectionEnd