micropeak: Deal with 64-bit windows
authorKeith Packard <keithp@keithp.com>
Sun, 15 Jun 2014 23:24:28 +0000 (16:24 -0700)
committerKeith Packard <keithp@keithp.com>
Sun, 15 Jun 2014 23:30:08 +0000 (16:30 -0700)
Install 64-bit version of java. Install our bits in the 64-bit app directory

Signed-off-by: Keith Packard <keithp@keithp.com>
micropeak/micropeak-windows.nsi.in

index 656f8af3e4757d2e43c83ef5f516a74cb387a384..6dc9d8c15ebedd739ed59cd6a7e4359f62c69cd6 100644 (file)
@@ -1,8 +1,10 @@
 !addplugindir Instdrv/NSIS/Plugins
 !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"
+!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 MicroPeak Installer"
 !define PRODUCT_NAME "Altus Metrum Windows Software"
 
 Name "Altus Metrum MicroPeak Installer"
@@ -23,12 +25,34 @@ ShowInstDetails Show
 
 ComponentText "Altus Metrum MicroPeak Software Installer"
 
 
 ComponentText "Altus Metrum MicroPeak Software 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
 Function GetJRE
-        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION} 32-bit, it will now \
-                         be downloaded and installed"
+       ${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"
 
         StrCpy $2 "$TEMP\Java Runtime Environment.exe"
-        nsisdl::download /TIMEOUT=30000 ${JRE_URL} $2
+        nsisdl::download /TIMEOUT=30000 $JavaDownload $2
         Pop $R0 ;Get the return value
                 StrCmp $R0 "success" +3
                 MessageBox MB_OK "Download failed: $R0"
         Pop $R0 ;Get the return value
                 StrCmp $R0 "success" +3
                 MessageBox MB_OK "Download failed: $R0"
@@ -37,7 +61,6 @@ Function GetJRE
         Delete $2
 FunctionEnd
 
         Delete $2
 FunctionEnd
 
-
 Function DetectJRE
   ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
              "CurrentVersion"
 Function DetectJRE
   ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
              "CurrentVersion"