altosui: Ship TeleMetrum v2.0 firmware with AltosUI
[fw/altos] / altosui / altos-windows.nsi.in
1 !addplugindir Instdrv/NSIS/Plugins
2 !addincludedir Instdrv/NSIS/Includes
3 !include x64.nsh
4 !include java.nsh
5 !include refresh-sh.nsh
6
7 !define REG_NAME "Altus Metrum"
8 !define PROG_ID      "org.altusmetrum.altosui.1"
9 !define PROG_ALTOSUI "org.altusmetrum.altosui.1"
10 !define FAT_NAME "altosui-fat.jar"
11 !define ICO_ICO "altus-metrum.ico"
12 !define ICO_EXE "altus-metrum.exe"
13
14 Name "${REG_NAME} Installer"
15
16 ; Default install directory
17 InstallDir "$PROGRAMFILES\AltusMetrum"
18
19 ; Tell the installer where to re-install a new version
20 InstallDirRegKey HKLM "Software\${REG_NAME}" "Install_Dir"
21
22 LicenseText "GNU General Public License Version 2"
23 LicenseData "../COPYING"
24
25 ; Need admin privs for Vista or Win7
26 RequestExecutionLevel admin
27
28 ShowInstDetails Show
29
30 ComponentText "${REG_NAME} Software and Driver Installer"
31
32 Function .onInit
33         DetailPrint "Checking host operating system"
34         ${If} ${RunningX64}
35                 DetailPrint "Installer running on 64-bit host"
36                 SetRegView 64
37                 StrCpy $INSTDIR "$PROGRAMFILES64\AltusMetrum"
38                 ${DisableX64FSRedirection}
39         ${EndIf}
40 FunctionEnd
41
42 Function un.onInit
43         DetailPrint "Checking host operating system"
44         ${If} ${RunningX64}
45                 DetailPrint "Installer running on 64-bit host"
46                 SetRegView 64
47                 StrCpy $INSTDIR "$PROGRAMFILES64\AltusMetrum"
48                 ${DisableX64FSRedirection}
49         ${EndIf}
50 FunctionEnd
51
52 ; Pages to present
53
54 Page license
55 Page components
56 Page directory
57 Page instfiles
58
59 UninstPage uninstConfirm
60 UninstPage instfiles
61
62 ; And the stuff to install
63
64 Section "Install Driver" InstDriver
65
66         InstDrv::InitDriverSetup /NOUNLOAD {4D36E96D-E325-11CE-BFC1-08002BE10318} AltusMetrumSerial
67         Pop $0
68         DetailPrint "InitDriverSetup: $0"
69         InstDrv::DeleteOemInfFiles /NOUNLOAD
70         InstDrv::CreateDevice /NOUNLOAD
71
72         SetOutPath $INSTDIR
73         File "../altusmetrum.inf"
74         File "../altusmetrum.cat"
75
76         ${DisableX64FSRedirection}
77         IfFileExists $WINDIR\System32\PnPutil.exe 0 nopnp
78                 ${DisableX64FSRedirection}
79                 nsExec::ExecToLog '"$WINDIR\System32\PnPutil.exe" -i -a "$INSTDIR\altusmetrum.inf"'
80                 Goto done
81 nopnp:
82                 InstDrv::InstallDriver /NOUNLOAD "$INSTDIR\altusmetrum.inf"
83 done:
84
85 SectionEnd
86
87 Section "${REG_NAME} Application"
88         Call DetectJRE
89
90         SetOutPath $INSTDIR
91
92         File "${FAT_NAME}"
93         File "altoslib_@ALTOSLIB_VERSION@.jar"
94         File "altosuilib_@ALTOSUILIB_VERSION@.jar"
95         File "cmudict04.jar"
96         File "cmulex.jar"
97         File "cmu_time_awb.jar"
98         File "cmutimelex.jar"
99         File "cmu_us_kal.jar"
100         File "en_us.jar"
101         File "freetts.jar"
102         File "jfreechart.jar"
103         File "jcommon.jar"
104
105         File "*.dll"
106
107         File "../icon/${ICO_ICO}"
108
109         CreateShortCut "$SMPROGRAMS\${REG_NAME}.lnk" "$SYSDIR\javaw.exe" "-jar ${FAT_NAME}" "$INSTDIR\${ICO_ICO}"
110 SectionEnd
111
112 Section "${REG_NAME} Desktop Shortcut"
113         CreateShortCut "$DESKTOP\${REG_NAME}.lnk" "$INSTDIR\${FAT_NAME}"  "" "$INSTDIR\${ICO_ICO}"
114 SectionEnd
115
116 Section "TeleMetrum, TeleDongle and TeleBT Firmware"
117
118         SetOutPath $INSTDIR
119
120         File "../src/telemetrum-v1.0/telemetrum-v1.0-${VERSION}.ihx"
121         File "../src/telemetrum-v1.1/telemetrum-v1.1-${VERSION}.ihx"
122         File "../src/telemetrum-v1.2/telemetrum-v1.2-${VERSION}.ihx"
123         File "../src/telemetrum-v2.0/telemetrum-v2.0-${VERSION}.ihx"
124         File "../src/telemini-v1.0/telemini-v1.0-${VERSION}.ihx"
125         File "../src/telegps-v1.0/telegps-v1.0-${VERSION}.ihx"
126         File "../src/teledongle-v0.2/teledongle-v0.2-${VERSION}.ihx"
127         File "../src/telebt-v1.0/telebt-v1.0-${VERSION}.ihx"
128         File "../src/telemega-v1.0/telemega-v1.0-${VERSION}.ihx"
129         File "../src/easymini-v1.0/easymini-v1.0-${VERSION}.ihx"
130
131 SectionEnd
132
133 Section "Documentation"
134
135         SetOutPath $INSTDIR
136
137         File "../doc/altusmetrum.pdf"
138         File "../doc/altos.pdf"
139         File "../doc/telemetry.pdf"
140         File "../doc/telemetrum-outline.pdf"
141         File "../doc/telemega-outline.pdf"
142         File "../doc/easymini-outline.pdf"
143         File "../doc/telemini.pdf"
144 SectionEnd
145
146 Section "File Associations"
147
148         SetOutPath $INSTDIR
149
150         File "../icon/${ICO_EXE}"
151
152         ; application elements
153         
154         WriteRegStr HKCR "${PROG_ID}"                   ""                              "Altus Metrum Data File"
155         WriteRegStr HKCR "${PROG_ID}"                   "FriendlyTypeName"              "Altus Metrum Data File"
156         WriteRegStr HKCR "${PROG_ID}\CurVer"            ""                              "${PROG_ID}"
157         WriteRegStr HKCR "${PROG_ID}\DefaultIcon"       ""                              '"$INSTDIR\${ICO_EXE}",-101'
158   WriteRegExpandStr HKCR "${PROG_ID}\shell\play\command" ""                             '"%SYSTEMROOT%\System32\javaw.exe" -Djava.library.path="$INSTDIR" -jar "$INSTDIR\${FAT_NAME}" "%1"'
159
160         ; .eeprom elements
161
162         WriteRegStr HKCR ".eeprom"                      ""                              "${PROG_ALTOSUI}"
163         WriteRegStr HKCR ".eeprom"                      "PerceivedType"                 "Altus Metrum Log File"
164         WriteRegStr HKCR ".eeprom"                      "Content Type"                  "application/altosui"
165
166         WriteRegStr HKCR ".eeprom\OpenWithProgids"      "${PROG_ID}"                    ""
167         WriteRegStr HKCR ".eeprom\${PROG_ID}"           ""                              "${REG_NAME}"
168         
169         ; .telem elements
170         
171         WriteRegStr HKCR ".telem"                       ""                              "${PROG_ALTOSUI}"
172         WriteRegStr HKCR ".telem"                       "PerceivedType"                 "Altus Metrum Telemetry File"
173         WriteRegStr HKCR ".telem"                       "Content Type"                  "application/altosui"
174
175         WriteRegStr HKCR ".telem\OpenWithProgids"       "${PROG_ID}"                    ""
176         WriteRegStr HKCR ".telem\${PROG_ID}"            ""                              "${REG_NAME}"
177
178         Call RefreshShellIcons
179 SectionEnd
180         
181 Section "Uninstaller"
182
183         ; Deal with the uninstaller
184
185         ${DisableX64FSRedirection}
186         SetOutPath $INSTDIR
187
188         ; Write the install path to the registry
189         WriteRegStr HKLM "SOFTWARE\${REG_NAME}" "Install_Dir" "$INSTDIR"
190
191         ; Write the uninstall keys for windows
192         WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${REG_NAME}" "DisplayName" "${REG_NAME}"
193         WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${REG_NAME}" "UninstallString" '"$INSTDIR\uninstall-${REG_NAME}.exe"'
194         WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${REG_NAME}" "NoModify" "1"
195         WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${REG_NAME}" "NoRepair" "1"
196
197         WriteUninstaller "uninstall-${REG_NAME}.exe"
198 SectionEnd
199
200 Section "Uninstall"
201
202         ${DisableX64FSRedirection}
203
204         DeleteRegKey   HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${REG_NAME}"
205         DeleteRegKey   HKLM "SOFTWARE\${REG_NAME}"
206
207         DetailPrint "Delete uninstall reg entries"
208
209         DeleteRegKey   HKCR "${PROG_ID}"
210
211         DeleteRegKey   HKCR ".eeprom\${PROG_ID}"
212         DeleteRegValue HKCR ".eeprom\OpenWithProgids" "${PROG_ID}"
213
214         DeleteRegKey   HKCR ".telem\${PROG_ID}"
215         DeleteRegValue HKCR ".telem\OpenWithProgids" "${PROG_ID}"
216
217         DetailPrint "Delete file association reg entries"
218
219         Delete "$INSTDIR\${FAT_NAME}"
220         Delete "$INSTDIR\uninstall-${REG_NAME}.exe"
221
222         Delete "$INSTDIR\${ICO_ICO}"
223         Delete "$INSTDIR\${ICO_EXE}"
224
225         ; Remove shortcuts, if any
226         Delete "$SMPROGRAMS\${REG_NAME}.lnk"
227         Delete "$DESKTOP\${REG_NAME}.lnk"
228         
229         Call un.RefreshShellIcons
230 SectionEnd