File: crawl.nsi

package info (click to toggle)
crawl 2%3A0.33.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 95,264 kB
  • sloc: cpp: 358,145; ansic: 27,203; javascript: 9,491; python: 8,359; perl: 3,327; java: 2,667; xml: 2,191; makefile: 1,830; sh: 611; objc: 250; cs: 15; sed: 9; lisp: 3
file content (97 lines) | stat: -rw-r--r-- 3,409 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# please run with -DVERSION="xxx"
# !define VERSION "0.7.0"
!define DCSS "Dungeon Crawl Stone Soup"
SetCompressor /SOLID lzma

!define MULTIUSER_EXECUTIONLEVEL Highest
!define MULTIUSER_MUI
!define MULTIUSER_INSTALLMODE_COMMANDLINE
!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY "Software\Crawl"
!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME ""
!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "Software\Crawl"
!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME ""
!define MULTIUSER_INSTALLMODE_INSTDIR "Crawl"
!include "MultiUser.nsh"
!include "MUI2.nsh"

!ifndef WINARCH
  !define WINARCH "win32"
!endif

Name "${DCSS} ${VERSION}"
Outfile "stone_soup-${VERSION}-${WINARCH}-installer.exe"
XPStyle on
!define MUI_ICON dat\tiles\stone_soup_icon.ico

!define MUI_ABORTWARNING

!insertmacro MULTIUSER_PAGE_INSTALLMODE
!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 ""
  SetOutPath $INSTDIR
  File /r /x "*~" "build-win\*"
  File /oname=LICENSE.txt ..\..\LICENSE

  # clean after previous versions; crawl-console.exe used to be named crawl.exe
  # but that made sense on Unix but not really on Windows.
  Delete crawl.exe
  # clean after 0.10 or earlier, let's produce error messages instead of
  # incorrect behaviour
  Delete dat\lua\*.lua

  WriteUninstaller $INSTDIR\uninst.exe

  WriteRegStr SHCTX "Software\Crawl" "" $INSTDIR

  CreateDirectory "$SMPROGRAMS\${DCSS}"
  # the order matters -- only the first shortcut is advertised by Win 7
  CreateShortCut "$SMPROGRAMS\${DCSS}\Dungeon Crawl - tiles.lnk" "$INSTDIR\crawl-tiles.exe"
  CreateShortCut "$SMPROGRAMS\${DCSS}\Dungeon Crawl - console.lnk" "$INSTDIR\crawl-console.exe"
  CreateShortCut "$SMPROGRAMS\${DCSS}\Uninstall DCSS.lnk" "$INSTDIR\uninst.exe"

  WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Crawl" "DisplayName" "${DCSS}"
  WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Crawl" "DisplayVersion" "${VERSION}"
  WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Crawl" "UninstallString" "$INSTDIR\uninst.exe"
  WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Crawl" "DisplayIcon" "$INSTDIR\crawl-tiles.exe"
  WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Crawl" "NoModify" 1
  WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Crawl" "NoRepair" 1
SectionEnd

Function .onInit
  !insertmacro MULTIUSER_INIT
FunctionEnd

Section "Uninstall"
  Delete $INSTDIR\uninst.exe
  Delete $INSTDIR\crawl-tiles.exe
  Delete $INSTDIR\crawl-console.exe
  Delete $INSTDIR\version.txt
  Delete $INSTDIR\CREDITS.txt
  Delete $INSTDIR\LICENCE.txt
  RMDir /r $INSTDIR\dat
  RMDir /r $INSTDIR\docs
  RMDir /r $INSTDIR\settings
  # Crafty players may try sticking their saves here, so we remove things from
  # the top dir by hand.
  RMDir $INSTDIR

  Delete "$SMPROGRAMS\${DCSS}\Uninstall DCSS.lnk"
  Delete "$SMPROGRAMS\${DCSS}\Dungeon Crawl - console.lnk"
  Delete "$SMPROGRAMS\${DCSS}\Dungeon Crawl - tiles.lnk"
  RMDir "$SMPROGRAMS\${DCSS}"

  DeleteRegKey SHCTX "Software\Crawl"
  DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Crawl"
SectionEnd

Function un.onInit
  !insertmacro MULTIUSER_UNINIT
FunctionEnd