security safeguards,
[novacoin.git] / setup.nsi
1 # Auto-generated by EclipseNSIS Script Wizard
2 # 3.10.2009 19:00:28
3
4 Name Bitcoin
5
6 RequestExecutionLevel highest
7
8 # General Symbol Definitions
9 !define REGKEY "SOFTWARE\$(^Name)"
10 !define VERSION 0.3.2
11 !define COMPANY "Bitcoin project"
12 !define URL http://www.bitcoin.org/
13
14 # MUI Symbol Definitions
15 !define MUI_ICON "src\rc\bitcoin.ico"
16 !define MUI_FINISHPAGE_NOAUTOCLOSE
17 !define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM
18 !define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY}
19 !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup
20 !define MUI_STARTMENUPAGE_DEFAULTFOLDER Bitcoin
21 !define MUI_FINISHPAGE_RUN $INSTDIR\bitcoin.exe
22 !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
23 !define MUI_UNFINISHPAGE_NOAUTOCLOSE
24
25 # Included files
26 !include Sections.nsh
27 !include MUI2.nsh
28
29 # Variables
30 Var StartMenuGroup
31
32 # Installer pages
33 !insertmacro MUI_PAGE_WELCOME
34 !insertmacro MUI_PAGE_DIRECTORY
35 !insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup
36 !insertmacro MUI_PAGE_INSTFILES
37 !insertmacro MUI_PAGE_FINISH
38 !insertmacro MUI_UNPAGE_CONFIRM
39 !insertmacro MUI_UNPAGE_INSTFILES
40
41 # Installer languages
42 !insertmacro MUI_LANGUAGE English
43
44 # Installer attributes
45 OutFile bitcoin-0.3.2-win32-setup.exe
46 InstallDir $PROGRAMFILES\Bitcoin
47 CRCCheck on
48 XPStyle on
49 ShowInstDetails show
50 VIProductVersion 0.3.2.0
51 VIAddVersionKey ProductName Bitcoin
52 VIAddVersionKey ProductVersion "${VERSION}"
53 VIAddVersionKey CompanyName "${COMPANY}"
54 VIAddVersionKey CompanyWebsite "${URL}"
55 VIAddVersionKey FileVersion "${VERSION}"
56 VIAddVersionKey FileDescription ""
57 VIAddVersionKey LegalCopyright ""
58 InstallDirRegKey HKCU "${REGKEY}" Path
59 ShowUninstDetails show
60
61 # Installer sections
62 Section -Main SEC0000
63     SetOutPath $INSTDIR
64     SetOverwrite on
65     File bitcoin.exe
66     File libeay32.dll
67     File mingwm10.dll
68     File license.txt
69     File readme.txt
70     SetOutPath $INSTDIR\daemon
71     File /r daemon\*.*
72     SetOutPath $INSTDIR\locale
73     File /r locale\*.*
74     SetOutPath $INSTDIR\src
75     File /r src\*.*
76     SetOutPath $INSTDIR
77     WriteRegStr HKCU "${REGKEY}\Components" Main 1
78 SectionEnd
79
80 Section -post SEC0001
81     WriteRegStr HKCU "${REGKEY}" Path $INSTDIR
82     SetOutPath $INSTDIR
83     WriteUninstaller $INSTDIR\uninstall.exe
84     !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
85     CreateDirectory $SMPROGRAMS\$StartMenuGroup
86     CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk" $INSTDIR\bitcoin.exe
87     CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall Bitcoin.lnk" $INSTDIR\uninstall.exe
88     !insertmacro MUI_STARTMENU_WRITE_END
89     WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)"
90     WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}"
91     WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}"
92     WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}"
93     WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\uninstall.exe
94     WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe
95     WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
96     WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
97 SectionEnd
98
99 # Macro for selecting uninstaller sections
100 !macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID
101     Push $R0
102     ReadRegStr $R0 HKCU "${REGKEY}\Components" "${SECTION_NAME}"
103     StrCmp $R0 1 0 next${UNSECTION_ID}
104     !insertmacro SelectSection "${UNSECTION_ID}"
105     GoTo done${UNSECTION_ID}
106 next${UNSECTION_ID}:
107     !insertmacro UnselectSection "${UNSECTION_ID}"
108 done${UNSECTION_ID}:
109     Pop $R0
110 !macroend
111
112 # Uninstaller sections
113 Section /o -un.Main UNSEC0000
114     Delete /REBOOTOK $INSTDIR\bitcoin.exe
115     Delete /REBOOTOK $INSTDIR\libeay32.dll
116     Delete /REBOOTOK $INSTDIR\mingwm10.dll
117     Delete /REBOOTOK $INSTDIR\license.txt
118     Delete /REBOOTOK $INSTDIR\readme.txt
119     RMDir /r /REBOOTOK $INSTDIR\daemon
120     RMDir /r /REBOOTOK $INSTDIR\locale
121     RMDir /r /REBOOTOK $INSTDIR\src
122     DeleteRegValue HKCU "${REGKEY}\Components" Main
123 SectionEnd
124
125 Section -un.post UNSEC0001
126     DeleteRegKey HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
127     Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall Bitcoin.lnk"
128     Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk"
129     Delete /REBOOTOK "$SMSTARTUP\Bitcoin.lnk"
130     Delete /REBOOTOK $INSTDIR\uninstall.exe
131     Delete /REBOOTOK $INSTDIR\debug.log
132     Delete /REBOOTOK $INSTDIR\db.log
133     DeleteRegValue HKCU "${REGKEY}" StartMenuGroup
134     DeleteRegValue HKCU "${REGKEY}" Path
135     DeleteRegKey /IfEmpty HKCU "${REGKEY}\Components"
136     DeleteRegKey /IfEmpty HKCU "${REGKEY}"
137     RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup
138     RmDir /REBOOTOK $INSTDIR
139     Push $R0
140     StrCpy $R0 $StartMenuGroup 1
141     StrCmp $R0 ">" no_smgroup
142 no_smgroup:
143     Pop $R0
144 SectionEnd
145
146 # Installer functions
147 Function .onInit
148     InitPluginsDir
149 FunctionEnd
150
151 # Uninstaller functions
152 Function un.onInit
153     ReadRegStr $INSTDIR HKCU "${REGKEY}" Path
154     !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup
155     !insertmacro SELECT_UNSECTION Main ${UNSEC0000}
156 FunctionEnd