ab5ac4530ecf8ee9493f904d53ac317998e9d287
[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/telemini-v1.0/telemini-v1.0-${VERSION}.ihx"
108         File "../src/telegps-v1.0/telegps-v1.0-${VERSION}.ihx"
109         File "../src/teledongle-v0.2/teledongle-v0.2-${VERSION}.ihx"
110         File "../src/telebt-v1.0/telebt-v1.0-${VERSION}.ihx"
111         File "../src/telemega-v1.0/telemega-v1.0-${VERSION}.ihx"
112         File "../src/easymini-v1.0/easymini-v1.0-${VERSION}.ihx"
113
114 SectionEnd
115
116 Section "Documentation"
117
118         SetOutPath $INSTDIR
119
120         File "../doc/altusmetrum.pdf"
121         File "../doc/altos.pdf"
122         File "../doc/telemetry.pdf"
123         File "../doc/telemetrum-outline.pdf"
124         File "../doc/telemega-outline.pdf"
125         File "../doc/easymini-outline.pdf"
126         File "../doc/telemini.pdf"
127 SectionEnd
128
129 Section "Uninstaller"
130
131         ; Deal with the uninstaller
132
133         SetOutPath $INSTDIR
134
135         ; Write the install path to the registry
136         WriteRegStr HKLM SOFTWARE\AltusMetrum "Install_Dir" "$INSTDIR"
137
138         ; Write the uninstall keys for windows
139         WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "DisplayName" "Altus Metrum"
140         WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "UninstallString" '"$INSTDIR\uninstall.exe"'
141         WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "NoModify" "1"
142         WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "NoRepair" "1"
143
144         WriteUninstaller "uninstall.exe"
145 SectionEnd
146
147 Section "Uninstall"
148         DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum"
149         DeleteRegKey HKLM "Software\AltusMetrum"
150
151         Delete "$INSTDIR\*.*"
152         RMDir "$INSTDIR"
153
154         ; Remove devices
155         InstDrv::InitDriverSetup /NOUNLOAD {4D36E96D-E325-11CE-BFC1-08002BE10318} AltusMetrumSerial
156         InstDrv::DeleteOemInfFiles /NOUNLOAD
157         InstDrv::RemoveAllDevices
158
159         ; Remove shortcuts, if any
160         Delete "$SMPROGRAMS\AltusMetrum.lnk"
161         Delete "$DESKTOP\AltusMetrum.lnk"
162         
163 SectionEnd