Newer
Older
!define Vendor "Patrik Dufresne Service Logiciel inc."
!define AppExeFile ""
;--------------------------------
;Includes
!include "MUI2.nsh"
!include "Sections.nsh"
!include "x64.nsh"
; Include Java Install
!addincludedir ${includedir}
!addplugindir ${plugindir}
!define JRE_VERSION "1.8"
!define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=98426"
!define JRE_URL_64 "http://javadl.sun.com/webapps/download/AutoDL?BundleId=98428"
!include "JREDyna_Inetc.nsh"
;--------------------------------
;Configuration
;General
Name "${AppName}"
VIProductVersion "${AppVersion}"
VIAddVersionKey "ProductName" "${AppName}"
VIAddVersionKey "CompanyName" "${Vendor}"
VIAddVersionKey "LegalCopyright" "(c) ${Vendor}"
VIAddVersionKey "FileDescription" "${AppName} ${AppVersion} Installer"
VIAddVersionKey "FileVersion" "${AppVersion}"
OutFile "setup.exe"
;Folder selection page
InstallDir "$PROGRAMFILES64\${ShortName}"
; Define icon
!define MUI_ICON "planimod.ico"
!define MUI_UNICON "planimod.ico"
;Get install folder from registry if available
InstallDirRegKey HKLM "SOFTWARE\${Vendor}\${ShortName}" ""
;Request application privileges for Windows Vista
RequestExecutionLevel admin
; Installation types
;InstType "full" ; Uncomment if you want Installation types
;--------------------------------
;Interface Settings
;Show all languages, despite user's codepage
!define MUI_LANGDLL_ALLLANGUAGES
;--------------------------------
;Language Selection Dialog Settings
;Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "SOFTWARE\${Vendor}\${ShortName}"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
;--------------------------------
;Pages
; License page
; Java download page
!insertmacro CUSTOM_PAGE_JREINFO
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
;--------------------------------
;Modern UI Configuration
!define MUI_ABORTWARNING
;--------------------------------
;Languages
LicenseLangString license ${LANG_ENGLISH} "LICENSE.txt"
LicenseLangString license ${LANG_FRENCH} "LICENSE.fr.txt"
!insertmacro JREINFO_LANGUAGE
;--------------------------------
;Language Strings
;Description
LangString DESC_SecAppFiles ${LANG_ENGLISH} "Application files copy"
LangString DESC_SecAppFiles ${LANG_FRENCH} "Copie des fichiers"
;--------------------------------
;Reserve Files
;--------------------------------
;Installer Sections
Section "Installation of ${AppName}" SecAppFiles
; Remove files
RMDir /r "$INSTDIR\lib"
SectionIn 1 RO ; Full install, cannot be unselected
; If you add more sections be sure to add them here as well
; Add files
SetOutPath $INSTDIR
File /r ".\"
;Store install folder
WriteRegStr HKLM "SOFTWARE\${Vendor}\${ShortName}" "" $INSTDIR
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${ShortName}" "DisplayName" "${AppName}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${ShortName}" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${ShortName}" "NoModify" "1"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${ShortName}" "NoRepair" "1"
; Add application to firewall authorized list
nsisFirewall::AddAuthorizedApplication "$INSTDIR\bin\planimod64.exe" "${AppName}"
nsisFirewall::AddAuthorizedApplication "$INSTDIR\bin\planimod.exe" "${AppName}"
!define REG_UNINSTALL "Software\Microsoft\Windows\CurrentVersion\Uninstall\${ShortName}"
WriteRegStr HKLM "${REG_UNINSTALL}" "DisplayName" "${AppName}"
WriteRegStr HKLM "${REG_UNINSTALL}" "DisplayIcon" "$INSTDIR\minarca.ico"
WriteRegStr HKLM "${REG_UNINSTALL}" "DisplayVersion" "${AppVersion}"
WriteRegStr HKLM "${REG_UNINSTALL}" "Publisher" "${Vendor}"
WriteRegStr HKLM "${REG_UNINSTALL}" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegDWORD HKLM "${REG_UNINSTALL}" "NoModify" "1"
WriteRegDWORD HKLM "${REG_UNINSTALL}" "NoRepair" "1"
;Create uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe"
; Download and install java.
call DownloadAndInstallJREIfNecessary
SectionEnd
Section "Start menu shortcuts" SecCreateShortcut
; Can be unselected
SectionIn 1
CreateDirectory "$SMPROGRAMS\${AppName}"
${If} ${RunningX64}
CreateShortCut "$DESKTOP\${AppName}.lnk" "$INSTDIR\bin\planimod64.exe" "" "$INSTDIR\planimod.ico" 0
CreateShortCut "$SMPROGRAMS\${AppName}\${AppName}.lnk" "$INSTDIR\bin\planimod64.exe" "" "$INSTDIR\planimod.ico" 0
${Else}
CreateShortCut "$DESKTOP\${AppName}.lnk" "$INSTDIR\bin\planimod.exe" "" "$INSTDIR\planimod.ico" 0
CreateShortCut "$SMPROGRAMS\${AppName}\${AppName}.lnk" "$INSTDIR\bin\planimod.exe" "" "$INSTDIR\planimod.ico" 0
${EndIf}
SectionEnd
;--------------------------------
;Descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecAppFiles} $(DESC_SecAppFiles)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;--------------------------------
;Installer Functions
Function .onInit
; When running 64bits, read and write to 64bits registry.
SetRegView 64
;--------------------------------
;Uninstaller Section
Section "Uninstall"
; remove registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${ShortName}"
DeleteRegKey HKLM "SOFTWARE\${Vendor}\${AppName}"
; remove shortcuts, if any.
Delete "$SMPROGRAMS\${AppName}\*.*"
; Remove application from the firewall authorized list
nsisFirewall::RemoveAuthorizedApplication "$INSTDIR\bin\planimod64.exe" "${AppName}"
nsisFirewall::RemoveAuthorizedApplication "$INSTDIR\bin\planimod.exe" "${AppName}"
Pop $0
; remove files
RMDir /r "$INSTDIR"
SectionEnd