blob: 32498039e11c92a6e70022a591b65d0d73fb2670 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
|
!addplugindir Instdrv/NSIS/Plugins
!include x64.nsh
; Definitions for Java 1.7 Detection
!define JRE_VERSION "1.7"
!define JRE_ALTERNATE "1.6"
!define JRE32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83383&/jre-7u51-windows-i586.exe"
!define JRE64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=83385&/jre-7u51-windows-x64.exe"
!define PRODUCT_NAME "Altus Metrum Windows Software"
Name "Altus Metrum Installer"
; Default install directory
InstallDir "$PROGRAMFILES\AltusMetrum"
; Tell the installer where to re-install a new version
InstallDirRegKey HKLM "Software\AltusMetrum" "Install_Dir"
LicenseText "GNU General Public License Version 2"
LicenseData "../COPYING"
; Need admin privs for Vista or Win7
RequestExecutionLevel admin
ShowInstDetails Show
ComponentText "Altus Metrum Software and Driver Installer"
Function .onInit
DetailPrint "Checking host operating system"
${If} ${RunningX64}
DetailPrint "Installer running on 64-bit host"
SetRegView 64
StrCpy $INSTDIR "$PROGRAMFILES64\AltusMetrum"
${DisableX64FSRedirection}
${EndIf}
FunctionEnd
Var JavaDownload
Var JavaBits
Function GetJRE
${If} ${RunningX64}
StrCpy $JavaDownload ${JRE64_URL}
StrCpy $JavaBits "64"
${Else}
StrCpy $JavaDownload ${JRE32_URL}
StrCpy $JavaBits "32"
${EndIf}
MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION}, \
$JavaBits bits, it will now \
be downloaded and installed"
StrCpy $2 "$TEMP\Java Runtime Environment.exe"
nsisdl::download /TIMEOUT=30000 $JavaDownload $2
Pop $R0 ;Get the return value
StrCmp $R0 "success" +3
MessageBox MB_OK "Download failed: $R0"
Quit
ExecWait $2
Delete $2
FunctionEnd
Function DetectJRE
ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
"CurrentVersion"
StrCmp $2 ${JRE_VERSION} done
StrCmp $2 ${JRE_ALTERNATE} done
Call GetJRE
done:
FunctionEnd
; Pages to present
Page license
Page components
Page directory
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles
; And the stuff to install
Section "Install Driver" InstDriver
InstDrv::InitDriverSetup /NOUNLOAD {4D36E96D-E325-11CE-BFC1-08002BE10318} AltusMetrumSerial
Pop $0
DetailPrint "InitDriverSetup: $0"
InstDrv::DeleteOemInfFiles /NOUNLOAD
InstDrv::CreateDevice /NOUNLOAD
SetOutPath $INSTDIR
File "../altusmetrum.inf"
File "../altusmetrum.cat"
${DisableX64FSRedirection}
IfFileExists $WINDIR\System32\PnPutil.exe 0 nopnp
${DisableX64FSRedirection}
nsExec::ExecToLog '"$WINDIR\System32\PnPutil.exe" -i -a "$INSTDIR\altusmetrum.inf"'
Goto done
nopnp:
InstDrv::InstallDriver /NOUNLOAD "$INSTDIR\altusmetrum.inf"
done:
SectionEnd
Section "AltosUI Application"
Call DetectJRE
SetOutPath $INSTDIR
File "altosui-fat.jar"
File "altoslib_@ALTOSLIB_VERSION@.jar"
File "altosuilib_@ALTOSUILIB_VERSION@.jar"
File "cmudict04.jar"
File "cmulex.jar"
File "cmu_time_awb.jar"
File "cmutimelex.jar"
File "cmu_us_kal.jar"
File "en_us.jar"
File "freetts.jar"
File "jfreechart.jar"
File "jcommon.jar"
File "*.dll"
File "../icon/*.ico"
CreateShortCut "$SMPROGRAMS\AltusMetrum.lnk" "$SYSDIR\javaw.exe" "-jar altosui-fat.jar" "$INSTDIR\altus-metrum.ico"
SectionEnd
Section "AltosUI Desktop Shortcut"
CreateShortCut "$DESKTOP\AltusMetrum.lnk" "$INSTDIR\altosui-fat.jar" "" "$INSTDIR\altus-metrum.ico"
SectionEnd
Section "TeleMetrum, TeleDongle and TeleBT Firmware"
SetOutPath $INSTDIR
File "../src/telemetrum-v1.0/telemetrum-v1.0-${VERSION}.ihx"
File "../src/telemetrum-v1.1/telemetrum-v1.1-${VERSION}.ihx"
File "../src/telemetrum-v1.2/telemetrum-v1.2-${VERSION}.ihx"
File "../src/telemini-v1.0/telemini-v1.0-${VERSION}.ihx"
File "../src/teledongle-v0.2/teledongle-v0.2-${VERSION}.ihx"
File "../src/telebt-v1.0/telebt-v1.0-${VERSION}.ihx"
File "../src/telemega-v1.0/telemega-v1.0-${VERSION}.ihx"
File "../src/easymini-v1.0/easymini-v1.0-${VERSION}.ihx"
SectionEnd
Section "Documentation"
SetOutPath $INSTDIR
File "../doc/altusmetrum.pdf"
File "../doc/altos.pdf"
File "../doc/telemetry.pdf"
File "../doc/telemetrum-outline.pdf"
File "../doc/telemega-outline.pdf"
File "../doc/easymini-outline.pdf"
File "../doc/telemini.pdf"
SectionEnd
Section "Uninstaller"
; Deal with the uninstaller
SetOutPath $INSTDIR
; Write the install path to the registry
WriteRegStr HKLM SOFTWARE\AltusMetrum "Install_Dir" "$INSTDIR"
; Write the uninstall keys for windows
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "DisplayName" "Altus Metrum"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "NoModify" "1"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "NoRepair" "1"
WriteUninstaller "uninstall.exe"
SectionEnd
Section "Uninstall"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum"
DeleteRegKey HKLM "Software\AltusMetrum"
Delete "$INSTDIR\*.*"
RMDir "$INSTDIR"
; Remove devices
InstDrv::InitDriverSetup /NOUNLOAD {4D36E96D-E325-11CE-BFC1-08002BE10318} AltusMetrumSerial
InstDrv::DeleteOemInfFiles /NOUNLOAD
InstDrv::RemoveAllDevices
; Remove shortcuts, if any
Delete "$SMPROGRAMS\AltusMetrum.lnk"
Delete "$DESKTOP\AltusMetrum.lnk"
SectionEnd
|