;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
!include "Sections.nsh"
!include "WinVer.nsh"
!include "LogicLib.nsh"
+!include "x64.nsh"
;; http://nsis.sourceforge.net/File_Association
!include "FileAssociation.nsh"
;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
;; Start Install Sections ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-LicenseData ".\bin\COPYING_GPL.txt"
+LicenseData "${BINARIES}\COPYING_GPL.txt"
LicenseForceSelection checkbox
;--------------------------------
; 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"
; 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
; Estimate install size based on files in $INSTDIR
${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
; 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
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\share"
RMDir "$INSTDIR"
; Shortcuts..
FunctionEnd
!macroend
-!insertmacro RunCheckMacro ""
-!insertmacro RunCheckMacro "un."
+;!insertmacro RunCheckMacro ""
+;!insertmacro RunCheckMacro "un."
;Installer extra configuration at execution time: language, path, ...
Function .onInit
Push $R2
;Check if viking is running
- Call RunCheck
+ ;Call RunCheck
StrCpy $name "Viking ${VIKING_VERSION}"
ClearErrors
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
Function un.onInit
;Check if viking is running
- Call un.RunCheck
+ ;Call un.RunCheck
StrCpy $name "Viking ${VIKING_VERSION}"
; Get stored language preference