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
6 !define PRODUCT_NAME "Altus Metrum Windows Software"
7
8 Name "Altus Metrum Installer"
9
10 ; Default install directory
11 InstallDir "$PROGRAMFILES\AltusMetrum"
12
13 ; Tell the installer where to re-install a new version
14 InstallDirRegKey HKLM "Software\AltusMetrum" "Install_Dir"
15
16 LicenseText "GNU General Public License Version 2"
17 LicenseData "../COPYING"
18
19 ; Need admin privs for Vista or Win7
20 RequestExecutionLevel admin
21
22 ShowInstDetails Show
23
24 ComponentText "Altus Metrum Software and Driver Installer"
25
26 Function .onInit
27         DetailPrint "Checking host operating system"
28         ${If} ${RunningX64}
29                 DetailPrint "Installer running on 64-bit host"
30                 SetRegView 64
31                 StrCpy $INSTDIR "$PROGRAMFILES64\AltusMetrum"
32                 ${DisableX64FSRedirection}
33         ${EndIf}
34 FunctionEnd
35
36 ; Pages to present
37
38 Page license
39 Page components
40 Page directory
41 Page instfiles
42
43 UninstPage uninstConfirm
44 UninstPage instfiles
45
46 ; And the stuff to install
47
48 Section "Install Driver" InstDriver
49
50         InstDrv::InitDriverSetup /NOUNLOAD {4D36E96D-E325-11CE-BFC1-08002BE10318} AltusMetrumSerial
51         Pop $0
52         DetailPrint "InitDriverSetup: $0"
53         InstDrv::DeleteOemInfFiles /NOUNLOAD
54         InstDrv::CreateDevice /NOUNLOAD
55
56         SetOutPath $INSTDIR
57         File "../altusmetrum.inf"
58         File "../altusmetrum.cat"
59
60         ${DisableX64FSRedirection}
61         IfFileExists $WINDIR\System32\PnPutil.exe 0 nopnp
62                 ${DisableX64FSRedirection}
63                 nsExec::ExecToLog '"$WINDIR\System32\PnPutil.exe" -i -a "$INSTDIR\altusmetrum.inf"'
64                 Goto done
65 nopnp:
66                 InstDrv::InstallDriver /NOUNLOAD "$INSTDIR\altusmetrum.inf"
67 done:
68
69 SectionEnd
70
71 Section "AltosUI Application"
72         Call DetectJRE
73
74         SetOutPath $INSTDIR
75
76         File "altosui-fat.jar"
77         File "altoslib_@ALTOSLIB_VERSION@.jar"
78         File "altosuilib_@ALTOSUILIB_VERSION@.jar"
79         File "cmudict04.jar"
80         File "cmulex.jar"
81         File "cmu_time_awb.jar"
82         File "cmutimelex.jar"
83         File "cmu_us_kal.jar"
84         File "en_us.jar"
85         File "freetts.jar"
86         File "jfreechart.jar"
87         File "jcommon.jar"
88
89         File "*.dll"
90
91         File "../icon/*.ico"
92
93         CreateShortCut "$SMPROGRAMS\AltusMetrum.lnk" "$SYSDIR\javaw.exe" "-jar altosui-fat.jar" "$INSTDIR\altus-metrum.ico"
94 SectionEnd
95
96 Section "AltosUI Desktop Shortcut"
97         CreateShortCut "$DESKTOP\AltusMetrum.lnk" "$INSTDIR\altosui-fat.jar"  "" "$INSTDIR\altus-metrum.ico"
98 SectionEnd
99
100 Section "TeleMetrum, TeleDongle and TeleBT Firmware"
101
102         SetOutPath $INSTDIR
103
104         File "../src/telemetrum-v1.0/telemetrum-v1.0-${VERSION}.ihx"
105         File "../src/telemetrum-v1.1/telemetrum-v1.1-${VERSION}.ihx"
106         File "../src/telemetrum-v1.2/telemetrum-v1.2-${VERSION}.ihx"
107         File "../src/telemetrum-v2.0/telemetrum-v2.0-${VERSION}.ihx"
108         File "../src/telemini-v1.0/telemini-v1.0-${VERSION}.ihx"
109         File "../src/telegps-v1.0/telegps-v1.0-${VERSION}.ihx"
110         File "../src/teledongle-v0.2/teledongle-v0.2-${VERSION}.ihx"
111         File "../src/telebt-v1.0/telebt-v1.0-${VERSION}.ihx"
112         File "../src/telemega-v1.0/telemega-v1.0-${VERSION}.ihx"
113         File "../src/easymini-v1.0/easymini-v1.0-${VERSION}.ihx"
114
115 SectionEnd
116
117 Section "Documentation"
118
119         SetOutPath $INSTDIR
120
121         File "../doc/altusmetrum.pdf"
122         File "../doc/altos.pdf"
123         File "../doc/telemetry.pdf"
124         File "../doc/telemetrum-outline.pdf"
125         File "../doc/telemega-outline.pdf"
126         File "../doc/easymini-outline.pdf"
127         File "../doc/telemini.pdf"
128 SectionEnd
129
130 Section "Uninstaller"
131
132         ; Deal with the uninstaller
133
134         SetOutPath $INSTDIR
135
136         ; Write the install path to the registry
137         WriteRegStr HKLM SOFTWARE\AltusMetrum "Install_Dir" "$INSTDIR"
138
139         ; Write the uninstall keys for windows
140         WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "DisplayName" "Altus Metrum"
141         WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "UninstallString" '"$INSTDIR\uninstall.exe"'
142         WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "NoModify" "1"
143         WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "NoRepair" "1"
144
145         WriteUninstaller "uninstall.exe"
146 SectionEnd
147
148 Section "Uninstall"
149         DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum"
150         DeleteRegKey HKLM "Software\AltusMetrum"
151
152         Delete "$INSTDIR\*.*"
153         RMDir "$INSTDIR"
154
155         ; Remove devices
156         InstDrv::InitDriverSetup /NOUNLOAD {4D36E96D-E325-11CE-BFC1-08002BE10318} AltusMetrumSerial
157         InstDrv::DeleteOemInfFiles /NOUNLOAD
158         InstDrv::RemoveAllDevices
159
160         ; Remove shortcuts, if any
161         Delete "$SMPROGRAMS\AltusMetrum.lnk"
162         Delete "$DESKTOP\AltusMetrum.lnk"
163         
164 SectionEnd