Initial commit
[openspeak.git] / win32installer.nsi
blob15950625cf9c412050e9bd4f6947d6280f04d1b2
1 ; Script generated by the HM NIS Edit Script Wizard.
3 ; HM NIS Edit Wizard helper defines
4 !define PRODUCT_NAME "openSpeak"
5 !define PRODUCT_VERSION "0.1"
6 !define PRODUCT_PUBLISHER "The openSpeak Team"
7 !define PRODUCT_WEB_SITE "http://openspeak-project.org"
8 !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\openspeak.exe"
9 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
10 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
12 SetCompressor lzma
14 ; MUI 1.67 compatible ------
15 !include "MUI.nsh"
17 ; MUI Settings
18 !define MUI_ABORTWARNING
19 !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
20 !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
22 ; Language Selection Dialog Settings
23 !define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
24 !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
25 !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"
27 ; Welcome page
28 !insertmacro MUI_PAGE_WELCOME
29 ; License page
30 !define MUI_LICENSEPAGE_RADIOBUTTONS
31 !insertmacro MUI_PAGE_LICENSE "COPYING"
32 ; Components page
33 !insertmacro MUI_PAGE_COMPONENTS
34 ; Directory page
35 !insertmacro MUI_PAGE_DIRECTORY
36 ; Instfiles page
37 !insertmacro MUI_PAGE_INSTFILES
38 ; Finish page
39 !define MUI_FINISHPAGE_RUN "$INSTDIR\openspeak.exe"
40 !insertmacro MUI_PAGE_FINISH
42 ; Uninstaller pages
43 !insertmacro MUI_UNPAGE_INSTFILES
45 ; Language files
46 !insertmacro MUI_LANGUAGE "English"
47 !insertmacro MUI_LANGUAGE "French"
48 !insertmacro MUI_LANGUAGE "German"
49 !insertmacro MUI_LANGUAGE "Spanish"
51 ; Reserve files
52 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
54 ; MUI end ------
56 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
57 OutFile "openspeak_win32setup.exe"
58 InstallDir "$PROGRAMFILES\openSpeak"
59 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
60 ShowInstDetails show
61 ShowUnInstDetails show
63 Function .onInit
64 !insertmacro MUI_LANGDLL_DISPLAY
65 FunctionEnd
67 Section -Dlls SEC01
68 SetOutPath "$INSTDIR"
69 SetOverwrite ifnewer
70 File "bin\msvcr80.dll"
71 File "bin\msvcp80.dll"
72 File "bin\msvcm80.dll"
73 SectionEnd
75 Section "Client" SEC02
76 File "bin\openspeak.exe"
77 CreateDirectory "$SMPROGRAMS\openSpeak"
78 CreateShortCut "$SMPROGRAMS\openSpeak\openSpeak.lnk" "$INSTDIR\openspeak.exe"
79 CreateShortCut "$DESKTOP\openSpeak.lnk" "$INSTDIR\openspeak.exe"
80 File "bin\portaudio_x86.dll"
81 SectionEnd
83 Section /o "Server" SEC03
84 File "bin\openspeak_server.exe"
85 CreateDirectory "$SMPROGRAMS\openSpeak"
86 CreateShortCut "$SMPROGRAMS\openSpeak\openSpeak Server.lnk" "$INSTDIR\openspeak_server.exe"
87 SectionEnd
89 Section -AdditionalIcons
90 WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
91 CreateShortCut "$SMPROGRAMS\openSpeak\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
92 CreateShortCut "$SMPROGRAMS\openSpeak\Uninstall.lnk" "$INSTDIR\uninst.exe"
93 SectionEnd
95 Section -Post
96 WriteUninstaller "$INSTDIR\uninst.exe"
97 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\openspeak.exe"
98 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
99 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
100 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\openspeak.exe"
101 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
102 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
103 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
104 SectionEnd
106 ; Section descriptions
107 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
108 !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "Important .dll files."
109 !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "Install the openSpeak client to speak with other people."
110 !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "Install the openSpeak Server to run your own server."
111 !insertmacro MUI_FUNCTION_DESCRIPTION_END
114 Function un.onUninstSuccess
115 HideWindow
116 MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) wurde erfolgreich deinstalliert."
117 FunctionEnd
119 Function un.onInit
120 !insertmacro MUI_UNGETLANGUAGE
121 MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Möchten Sie $(^Name) und alle seinen Komponenten deinstallieren?" IDYES +2
122 Abort
123 FunctionEnd
125 Section Uninstall
126 Delete "$INSTDIR\${PRODUCT_NAME}.url"
127 Delete "$INSTDIR\uninst.exe"
128 Delete "$INSTDIR\openspeak_server.exe"
129 Delete "$INSTDIR\portaudio_x86.dll"
130 Delete "$INSTDIR\openspeak.exe"
131 Delete "$INSTDIR\msvcm80.dll"
132 Delete "$INSTDIR\msvcp80.dll"
133 Delete "$INSTDIR\msvcr80.dll"
135 ; Try to delete possibly created files/directories
136 Delete "$INSTDIR\settings.client.xml"
137 Delete "$INSTDIR\settings.server.xml"
138 Delete "$INSTDIR\log\client.log"
139 Delete "$INSTDIR\log\server.log"
140 RMDir "$INSTDIR\log"
142 Delete "$SMPROGRAMS\openSpeak\Uninstall.lnk"
143 Delete "$SMPROGRAMS\openSpeak\Website.lnk"
144 Delete "$DESKTOP\openSpeak.lnk"
145 Delete "$SMPROGRAMS\openSpeak\openSpeak.lnk"
147 RMDir "$SMPROGRAMS\openSpeak"
148 RMDir "$INSTDIR"
150 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
151 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
152 SetAutoClose true
153 SectionEnd