]> git.street.me.uk Git - andy/viking.git/blobdiff - win32/installer/viking-installer.nsi
Some spelling fixes in a comment
[andy/viking.git] / win32 / installer / viking-installer.nsi
index 0a1b9c56165ecc26d05f6421dc75192bbf1ff58e..771b0d3a0e56aadde5e4e68a55795fe51c7eceaa 100644 (file)
@@ -10,14 +10,21 @@ Var name
 ;--------------------------------
 ;Configuration
 ;Needs to be 4 numbers:  W.X.Y.Z
-!define VIKING_VERSION  "1.6.0.0"
+!define VIKING_VERSION  "1.6.1.0"
 
 ;The name var is set in .onInit
 Name $name
 
+;Allow overiding location of binary components for the install
+!ifndef BINARIES
+  !define BINARIES ".\bin"
+!endif
+
 OutFile "viking-${VIKING_VERSION}.exe"
 
-SetCompressor /SOLID lzma
+;NB Using /SOLID method on a mingw32 setup seems to generate an exe that fails the CRC check
+;So now don't set the compressor here - it can be set by the calling command/script if necessary.
+;SetCompressor /SOLID bzip2
 ShowInstDetails show
 ShowUninstDetails show
 SetDateSave on
@@ -28,6 +35,7 @@ SetDateSave on
 !include "Sections.nsh"
 !include "WinVer.nsh"
 !include "LogicLib.nsh"
+!include "x64.nsh"
 ;; http://nsis.sourceforge.net/File_Association
 !include "FileAssociation.nsh"
 
@@ -90,7 +98,7 @@ VIAddVersionKey "FileDescription" "Viking Installer"
 ;Pages
 
   !insertmacro MUI_PAGE_WELCOME
-  !insertmacro MUI_PAGE_LICENSE                        ".\bin\COPYING_GPL.txt"
+  !insertmacro MUI_PAGE_LICENSE                        "${BINARIES}\COPYING_GPL.txt"
   !insertmacro MUI_PAGE_COMPONENTS
 
   ; Viking install dir page
@@ -139,7 +147,7 @@ VIAddVersionKey "FileDescription" "Viking Installer"
 ;; Start Install Sections ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-LicenseData ".\bin\COPYING_GPL.txt"
+LicenseData "${BINARIES}\COPYING_GPL.txt"
 LicenseForceSelection checkbox
 
 ;--------------------------------
@@ -237,7 +245,11 @@ Section $(VIKING_SECTION_TITLE) SecViking
     ; Common settings
     WriteRegStr SHCTX ${VIKING_REG_KEY} "" "$INSTDIR"
     WriteRegStr SHCTX ${VIKING_REG_KEY} "Version" "${VIKING_VERSION}"
-    WriteRegStr SHCTX "${VIKING_UNINSTALL_KEY}" "DisplayName" "Viking"
+    ${If} ${RunningX64}
+      WriteRegStr SHCTX "${VIKING_UNINSTALL_KEY}" "DisplayName" "Viking (x86)"
+    ${Else}
+      WriteRegStr SHCTX "${VIKING_UNINSTALL_KEY}" "DisplayName" "Viking (x64)"
+    ${EndIf}
     WriteRegStr SHCTX "${VIKING_UNINSTALL_KEY}" "DisplayVersion" "${VIKING_VERSION}"
     WriteRegStr SHCTX "${VIKING_UNINSTALL_KEY}" "DisplayIcon" "$INSTDIR\viking_icon.ico"
     WriteRegStr SHCTX "${VIKING_UNINSTALL_KEY}" "HelpLink" "http://sourceforge.net/p/viking/wikiallura"
@@ -250,18 +262,15 @@ Section $(VIKING_SECTION_TITLE) SecViking
 
     ; Copy only specific items as now some components (e.g. GPSBabel) are optional.
     ; This is mostly to get a more accurate install size value (especially as saved into the registry)
-    File .\bin\viking*
-    ; Not sure we really need any of the gtk executables but copy them anyway:
-    File .\bin\*.exe
-    File .\bin\*.dll
-    File .\bin\*.txt
-    File .\bin\magic.mgc
-    File /r .\bin\data
-    File /r .\bin\etc
-    File /r .\bin\gtk2-runtime
-    File /r .\bin\lib
-    File /r .\bin\locale
-    File /r .\bin\share
+    File ${BINARIES}\viking*
+    File ${BINARIES}\g*.exe
+    File ${BINARIES}\*.dll
+    File ${BINARIES}\*.txt
+    File ${BINARIES}\magic.mgc
+    File /r ${BINARIES}\data
+    File /r ${BINARIES}\locale
+    File /r ${BINARIES}\share
+    File /r ${BINARIES}\lib
 
     ; Estimate install size based on files in $INSTDIR
     ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
@@ -314,7 +323,7 @@ SectionEnd
 ; GPSBabel Install Section
 ;
 Section $(VIKING_GPSBABEL_SECTION_TITLE) SecGPSBabel
-  File "bin\Optional\GPSBabel-1.5.2-Setup.exe"
+  File "${BINARIES}\Optional\GPSBabel-1.5.2-Setup.exe"
   ExecWait '"$INSTDIR\GPSBabel-1.5.2-Setup.exe" /SILENT'
   Delete "$INSTDIR\GPSBabel-1.5.2-Setup.exe"
 SectionEnd
@@ -369,10 +378,8 @@ Section Uninstall
     Delete "$INSTDIR\data\*txt"
     Delete "$INSTDIR\data\*xml"
     RMDir "$INSTDIR\data"
-    RMDir /r "$INSTDIR\etc"
-    RMDir /r "$INSTDIR\gtk2-runtime"
-    RMDir /r "$INSTDIR\lib"
     RMDir /r "$INSTDIR\locale"
+    RMDir /r "$INSTDIR\lib"
     RMDir /r "$INSTDIR\share"
     RMDir "$INSTDIR"
 
@@ -470,8 +477,8 @@ Function ${UN}RunCheck
 FunctionEnd
 !macroend
 
-!insertmacro RunCheckMacro ""
-!insertmacro RunCheckMacro "un."
+;!insertmacro RunCheckMacro ""
+;!insertmacro RunCheckMacro "un."
 
 ;Installer extra configuration at execution time: language, path, ...
 Function .onInit
@@ -481,7 +488,7 @@ Function .onInit
   Push $R2
 
   ;Check if viking is running
-  Call RunCheck
+  ;Call RunCheck
   StrCpy $name "Viking ${VIKING_VERSION}"
 
   ClearErrors
@@ -548,8 +555,12 @@ Function .onInit
   Pop $R0
 
   StrCmp $R0 "HKLM" 0 user_dir
-    StrCpy $INSTDIR "$PROGRAMFILES\Viking"
-    Goto instdir_done
+  ${If} ${RunningX64}
+    StrCpy $INSTDIR "$PROGRAMFILES64\Viking"
+  ${Else}
+    StrCpy $INSTDIR "$PROGRAMFILES\Viking" ; $PROGRAMFILES32 also works
+  ${EndIf}
+  Goto instdir_done
   user_dir:
     Push $SMPROGRAMS
     ${GetParent} $SMPROGRAMS $R2
@@ -565,7 +576,7 @@ FunctionEnd
 
 Function un.onInit
   ;Check if viking is running
-  Call un.RunCheck
+  ;Call un.RunCheck
   StrCpy $name "Viking ${VIKING_VERSION}"
 
   ; Get stored language preference