X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/42ced7f5e12e93a862b3f3ae49f300c10666707f..HEAD:/win32/installer/viking-installer.nsi?ds=sidebyside diff --git a/win32/installer/viking-installer.nsi b/win32/installer/viking-installer.nsi index c31f05ca..771b0d3a 100644 --- a/win32/installer/viking-installer.nsi +++ b/win32/installer/viking-installer.nsi @@ -15,9 +15,16 @@ Var name ;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