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