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