Fix java version detection and downloading
[fw/altos] / telegps / telegps-windows.nsi.in
index 656f8af3e4757d2e43c83ef5f516a74cb387a384..b41455206532d5152840c88be662d70e5a598f9e 100644 (file)
@@ -1,11 +1,9 @@
-!addplugindir Instdrv/NSIS/Plugins
-; Definitions for Java 1.6 Detection
-!define JRE_VERSION "1.6"
-!define JRE_ALTERNATE "1.7"
-!define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=52247&/jre-6u27-windows-i586-p.exe"
-!define PRODUCT_NAME "Altus Metrum Windows Software"
+!addplugindir ../altosui/Instdrv/NSIS/Plugins
+!addincludedir ../altosui/Instdrv/NSIS/Includes
+!include x64.nsh
+!include java.nsh
 
-Name "Altus Metrum MicroPeak Installer"
+Name "TeleGPS Installer"
 
 ; Default install directory
 InstallDir "$PROGRAMFILES\AltusMetrum"
@@ -21,33 +19,16 @@ RequestExecutionLevel admin
 
 ShowInstDetails Show
 
-ComponentText "Altus Metrum MicroPeak Software Installer"
+ComponentText "TeleGPS Software Installer"
 
-Function GetJRE
-        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION} 32-bit, it will now \
-                         be downloaded and installed"
-
-        StrCpy $2 "$TEMP\Java Runtime Environment.exe"
-        nsisdl::download /TIMEOUT=30000 ${JRE_URL} $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:
+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
 
 ; Pages to present
@@ -62,14 +43,44 @@ UninstPage instfiles
 
 ; And the stuff to install
 
-Section "MicroPeak Application"
+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 "TeleGPS Application"
        Call DetectJRE
 
        SetOutPath $INSTDIR
 
-       File "micropeak-fat.jar"
+       File "telegps-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"
 
@@ -77,27 +88,30 @@ Section "MicroPeak Application"
 
        File "../icon/*.ico"
 
-       CreateShortCut "$SMPROGRAMS\MicroPeak.lnk" "$SYSDIR\javaw.exe" "-jar micropeak-fat.jar" "$INSTDIR\micro-peak.ico"
+       CreateShortCut "$SMPROGRAMS\TeleGPS.lnk" "$SYSDIR\javaw.exe" "-jar telegps-fat.jar" "$INSTDIR\telegps.ico"
 SectionEnd
 
-Section "FTDI USB Driver"
-       SetOutPath $INSTDIR
+Section "TeleGPS Desktop Shortcut"
+       CreateShortCut "$DESKTOP\TeleGPS.lnk" "$INSTDIR\telegps-fat.jar"  "" "$INSTDIR\telegps.ico"
+SectionEnd
 
-       File "CDM20824_Setup.exe"
+Section "TeleGPS, TeleDongle and TeleBT Firmware"
 
-       StrCpy $2 "$INSTDIR\CDM20824_Setup.exe"
-       ExecWait $2
-SectionEnd
+       SetOutPath $INSTDIR
+
+       File "../src/telegps-v1.0/telegps-v1.0-${VERSION}.ihx"
+       File "../src/teledongle-v0.2/teledongle-v0.2-${VERSION}.ihx"
+       File "../src/telebt-v1.0/telebt-v1.0-${VERSION}.ihx"
 
-Section "MicroPeak Desktop Shortcut"
-       CreateShortCut "$DESKTOP\MicroPeak.lnk" "$INSTDIR\micropeak-fat.jar"  "" "$INSTDIR\micro-peak.ico"
 SectionEnd
 
 Section "Documentation"
 
        SetOutPath $INSTDIR
 
-       File "../doc/micropeak.pdf"
+       File "../doc/telegps.pdf"
+       File "../doc/altos.pdf"
+       File "../doc/telemetry.pdf"
 SectionEnd
 
 Section "Uninstaller"
@@ -125,8 +139,13 @@ Section "Uninstall"
        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\MicroPeak.lnk"
-       Delete "$DESKTOP\MicroPeak.lnk"
+       Delete "$SMPROGRAMS\TeleGPS.lnk"
+       Delete "$DESKTOP\TeleGPS.lnk"
        
 SectionEnd