mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
617ed25a19
- Removed commandline switch "version" - Added MinGit for determining version information during compile process - Added sigcheck to determine version of the executable
504 lines
17 KiB
Plaintext
504 lines
17 KiB
Plaintext
; Script generated with the Venis Install Wizard & modified by defnax
|
|
; Reworked by Thunder
|
|
|
|
!include ifexist.nsh
|
|
|
|
# Needed defines
|
|
;!define REVISION ""
|
|
;!define RELEASEDIR ""
|
|
;!define QTDIR ""
|
|
;!define MINGWDIR ""
|
|
|
|
# Optional defines
|
|
;!define OUTDIR ""
|
|
|
|
# Check needed defines
|
|
!ifndef RELEASEDIR
|
|
!error "RELEASEDIR is not defined"
|
|
!endif
|
|
!ifndef QTDIR
|
|
!error "QTDIR is not defined"
|
|
!endif
|
|
!ifndef MINGWDIR
|
|
!error "MINGWDIR is not defined"
|
|
!endif
|
|
|
|
# Check optional defines
|
|
!ifdef OUTDIR
|
|
!define OUTDIR_ "${OUTDIR}\"
|
|
!else
|
|
!define OUTDIR ""
|
|
!define OUTDIR_ ""
|
|
!endif
|
|
|
|
!ifndef INSTALLERADD
|
|
!define INSTALLERADD ""
|
|
!endif
|
|
|
|
# Source directory
|
|
!define SOURCEDIR "..\..\.."
|
|
|
|
# Get version from executable
|
|
!GetDllVersion "${RELEASEDIR}\retroshare-gui\src\release\retroshare.exe" VERSION_
|
|
!define VERSION ${VERSION_1}.${VERSION_2}.${VERSION_3}
|
|
;!define REVISION ${VERSION_4}
|
|
|
|
# Get version of Qt
|
|
!GetDllVersion "${QTDIR}\bin\Qt5Core.dll" QTVERSION_
|
|
!define QTVERSION ${QTVERSION_1}.${QTVERSION_2}.${QTVERSION_3}
|
|
|
|
# Check version
|
|
!ifndef REVISION
|
|
!error "REVISION is not defined"
|
|
!endif
|
|
|
|
# Date
|
|
!define /date Date "%Y%m%d"
|
|
|
|
# Application name and version
|
|
!define APPNAME "RetroShare"
|
|
!define APPNAMEANDVERSION "${APPNAME} ${VERSION}"
|
|
!define PUBLISHER "RetroShare Team"
|
|
|
|
# Install path
|
|
!define INSTDIR_NORMAL "$ProgramFiles\${APPNAME}"
|
|
!define INSTDIR_PORTABLE "$Desktop\${APPNAME}"
|
|
|
|
!define DATADIR_NORMAL "$APPDATA\${APPNAME}"
|
|
!define DATADIR_PORTABLE "$INSTDIR\Data"
|
|
|
|
# Main Install settings
|
|
Name "${APPNAMEANDVERSION}"
|
|
InstallDirRegKey HKLM "Software\${APPNAME}" ""
|
|
OutFile "${OUTDIR_}RetroShare-${VERSION}-${Date}-${REVISION}-Qt-${QTVERSION}${INSTALLERADD}-setup.exe"
|
|
BrandingText "${APPNAMEANDVERSION}"
|
|
RequestExecutionlevel highest
|
|
# Use compression
|
|
SetCompressor /SOLID LZMA
|
|
|
|
# Global variables
|
|
Var PortableMode
|
|
Var InstDirNormal
|
|
Var InstDirPortable
|
|
Var DataDir
|
|
Var StyleSheetDir
|
|
|
|
# Modern interface settings
|
|
!include Sections.nsh
|
|
!include nsDialogs.nsh
|
|
!include "MUI.nsh"
|
|
|
|
# Interface Settings
|
|
!define MUI_ABORTWARNING
|
|
!define MUI_HEADERIMAGE
|
|
!define MUI_HEADERIMAGE_BITMAP "${SOURCEDIR}\build_scripts\Windows\installer\HeaderImage.bmp"
|
|
;!define MUI_WELCOMEFINISHPAGE_BITMAP "...bmp"
|
|
|
|
# MUI defines
|
|
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico"
|
|
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
|
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
|
!define MUI_COMPONENTSPAGE_SMALLDESC
|
|
!define MUI_FINISHPAGE_LINK "Visit the RetroShare forum for the latest news and support"
|
|
!define MUI_FINISHPAGE_LINK_LOCATION "http://retroshare.sourceforge.net/forum/"
|
|
!define MUI_FINISHPAGE_RUN "$INSTDIR\retroshare.exe"
|
|
!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\changelog.txt
|
|
!define MUI_FINISHPAGE_SHOWREADME_TEXT changelog.txt
|
|
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
|
|
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico"
|
|
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
|
|
;!define MUI_LANGDLL_REGISTRY_ROOT HKLM
|
|
;!define MUI_LANGDLL_REGISTRY_KEY ${REGKEY}
|
|
;!define MUI_LANGDLL_REGISTRY_VALUENAME InstallerLanguage
|
|
|
|
# Defines the un-/installer logo of RetroShare
|
|
!insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange.bmp"
|
|
!insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange-uninstall.bmp"
|
|
|
|
# Installer pages
|
|
!insertmacro MUI_PAGE_WELCOME
|
|
!insertmacro MUI_PAGE_LICENSE "$(myLicenseData)"
|
|
Page Custom PortableModePageCreate PortableModePageLeave
|
|
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE dir_leave
|
|
!insertmacro MUI_PAGE_DIRECTORY
|
|
!insertmacro MUI_PAGE_COMPONENTS
|
|
!insertmacro MUI_PAGE_INSTFILES
|
|
!insertmacro MUI_PAGE_FINISH
|
|
!insertmacro MUI_UNPAGE_CONFIRM
|
|
!insertmacro MUI_UNPAGE_INSTFILES
|
|
|
|
# Set languages (first is default language)
|
|
!insertmacro MUI_RESERVEFILE_LANGDLL
|
|
|
|
# Installer languages
|
|
!define MUI_LANGDLL_ALLLANGUAGES
|
|
|
|
# Translations
|
|
!macro LANG_LOAD LANGUAGE LANGCODE LANGID LICENCEFILE
|
|
!insertmacro MUI_LANGUAGE "${LANGUAGE}"
|
|
; !verbose off
|
|
!define LANG "${LANGUAGE}"
|
|
!include "lang\${LANGCODE}.nsh"
|
|
LangString LANGUAGEID "${LANG_${LANG}}" "1031"
|
|
LicenseLangString myLicenseData ${LANGCODE} ${LICENCEFILE}
|
|
; !verbose on
|
|
!undef LANG
|
|
!macroend
|
|
|
|
!macro LANG_STRING NAME VALUE
|
|
LangString "${NAME}" "${LANG_${LANG}}" "${VALUE}"
|
|
!macroend
|
|
|
|
!insertmacro LANG_LOAD "English" "en" "1033" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
|
!insertmacro LANG_LOAD "French" "fr" "1036" "${SOURCEDIR}\retroshare-gui\src\license\license-FR.txt"
|
|
!insertmacro LANG_LOAD "German" "de" "1031" "${SOURCEDIR}\retroshare-gui\src\license\license-GER.txt"
|
|
!insertmacro LANG_LOAD "Turkish" "tr" "1055" "${SOURCEDIR}\retroshare-gui\src\license\license-TR.txt"
|
|
!insertmacro LANG_LOAD "SimpChinese" "zh_CN" "2052" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
|
!insertmacro LANG_LOAD "Polish" "pl" "1045" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
|
!insertmacro LANG_LOAD "Spanish" "es" "1034" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
|
!insertmacro LANG_LOAD "Russian" "ru" "1049" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
|
!insertmacro LANG_LOAD "Catalan" "ca_ES" "1027" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
|
|
|
LicenseData $(myLicenseData)
|
|
|
|
# Main binaries
|
|
Section $(Section_Main) Section_Main
|
|
;Set Section required
|
|
SectionIn RO
|
|
|
|
; Set Section properties
|
|
SetOverwrite on
|
|
|
|
; Clears previous error logs
|
|
; Delete "$INSTDIR\*.log"
|
|
|
|
; Main binaries
|
|
SetOutPath "$INSTDIR"
|
|
File /oname=retroshare.exe "${RELEASEDIR}\retroshare-gui\src\release\retroshare.exe"
|
|
File /oname=retroshare-nogui.exe "${RELEASEDIR}\retroshare-nogui\src\release\retroshare-nogui.exe"
|
|
|
|
; Qt binaries
|
|
File "${QTDIR}\bin\Qt5Core.dll"
|
|
File "${QTDIR}\bin\Qt5Gui.dll"
|
|
File "${QTDIR}\bin\Qt5Multimedia.dll"
|
|
File "${QTDIR}\bin\Qt5Network.dll"
|
|
File "${QTDIR}\bin\Qt5PrintSupport.dll"
|
|
File "${QTDIR}\bin\Qt5Svg.dll"
|
|
File "${QTDIR}\bin\Qt5Widgets.dll"
|
|
File "${QTDIR}\bin\Qt5Xml.dll"
|
|
|
|
; Qt audio
|
|
SetOutPath "$INSTDIR\audio"
|
|
File "${QTDIR}\plugins\audio\qtaudio_windows.dll"
|
|
|
|
; Qt platforms
|
|
SetOutPath "$INSTDIR\platforms"
|
|
File "${QTDIR}\plugins\platforms\qwindows.dll"
|
|
|
|
; Qt styles
|
|
SetOutPath "$INSTDIR\styles"
|
|
File /NONFATAL "${QTDIR}\plugins\styles\qwindowsvistastyle.dll"
|
|
|
|
; MinGW binaries
|
|
SetOutPath "$INSTDIR"
|
|
File "${MINGWDIR}\bin\libstdc++-6.dll"
|
|
File "${MINGWDIR}\bin\libgcc_s_dw2-1.dll"
|
|
File "${MINGWDIR}\bin\libwinpthread-1.dll"
|
|
|
|
; External binaries
|
|
File "${EXTERNAL_LIB_DIR}\bin\miniupnpc.dll"
|
|
File "${EXTERNAL_LIB_DIR}\bin\libeay32.dll"
|
|
File "${EXTERNAL_LIB_DIR}\bin\ssleay32.dll"
|
|
|
|
; Other files
|
|
File "${SOURCEDIR}\retroshare-gui\src\changelog.txt"
|
|
File "${SOURCEDIR}\libbitdht\src\bitdht\bdboot.txt"
|
|
|
|
; Image formats
|
|
SetOutPath "$INSTDIR\imageformats"
|
|
File /r "${QTDIR}\plugins\imageformats\qgif.dll"
|
|
File /r "${QTDIR}\plugins\imageformats\qicns.dll"
|
|
File /r "${QTDIR}\plugins\imageformats\qico.dll"
|
|
File /r "${QTDIR}\plugins\imageformats\qjpeg.dll"
|
|
File /r "${QTDIR}\plugins\imageformats\qsvg.dll"
|
|
File /r "${QTDIR}\plugins\imageformats\qtga.dll"
|
|
File /r "${QTDIR}\plugins\imageformats\qtiff.dll"
|
|
File /r "${QTDIR}\plugins\imageformats\qwbmp.dll"
|
|
File /r "${QTDIR}\plugins\imageformats\qwebp.dll"
|
|
|
|
; Sounds
|
|
SetOutPath "$INSTDIR\sounds"
|
|
File /r "${SOURCEDIR}\retroshare-gui\src\sounds\*.*"
|
|
|
|
; Translations
|
|
SetOutPath "$INSTDIR\translations"
|
|
File /r "${SOURCEDIR}\retroshare-gui\src\translations\*.qm"
|
|
File /r "${QTDIR}\translations\qt_*.qm"
|
|
File /r "${QTDIR}\translations\qtbase_*.qm"
|
|
File /r "${QTDIR}\translations\qtscript_*.qm"
|
|
File /r "${QTDIR}\translations\qtquick1_*.qm"
|
|
File /r "${QTDIR}\translations\qtmultimedia_*.qm"
|
|
File /r "${QTDIR}\translations\qtxmlpatterns_*.qm"
|
|
|
|
; WebUI
|
|
SetOutPath "$INSTDIR\webui"
|
|
File /r "${SOURCEDIR}\libresapi\src\webui\*.*"
|
|
|
|
; License
|
|
SetOutPath "$INSTDIR\license"
|
|
File /r "${SOURCEDIR}\retroshare-gui\src\license\*.*"
|
|
SectionEnd
|
|
|
|
# Plugins
|
|
${!defineifexist} PLUGIN_FEEDREADER_EXISTS "${RELEASEDIR}\plugins\FeedReader\release\FeedReader.dll"
|
|
${!defineifexist} PLUGIN_VOIP_EXISTS "${RELEASEDIR}\plugins\VOIP\release\VOIP.dll"
|
|
|
|
!ifdef PLUGIN_FEEDREADER_EXISTS
|
|
!define /ifndef PLUGIN_EXISTS
|
|
!endif
|
|
!ifdef PLUGIN_VOIP_EXISTS
|
|
!define /ifndef PLUGIN_EXISTS
|
|
!endif
|
|
|
|
!ifdef PLUGIN_EXISTS
|
|
SectionGroup $(Section_Plugins) Section_Plugins
|
|
!ifdef PLUGIN_FEEDREADER_EXISTS
|
|
Section $(Section_Plugin_FeedReader) Section_Plugin_FeedReader
|
|
SetOutPath "$DataDir\extensions6"
|
|
File "${RELEASEDIR}\plugins\FeedReader\release\FeedReader.dll"
|
|
SectionEnd
|
|
!endif
|
|
|
|
!ifdef PLUGIN_VOIP_EXISTS
|
|
Section $(Section_Plugin_VOIP) Section_Plugin_VOIP
|
|
SetOutPath "$DataDir\extensions6"
|
|
File "${RELEASEDIR}\plugins\VOIP\release\VOIP.dll"
|
|
SectionEnd
|
|
!endif
|
|
SectionGroupEnd
|
|
!endif
|
|
|
|
# Data (Styles)
|
|
Section $(Section_Data) Section_Data
|
|
; Set Section properties
|
|
SetOverwrite on
|
|
|
|
; Chat style
|
|
SetOutPath "$StyleSheetDir\stylesheets\Bubble"
|
|
File /r "${SOURCEDIR}\retroshare-gui\src\gui\qss\chat\Bubble\*.*"
|
|
SetOutPath "$StyleSheetDir\stylesheets\Bubble_Compact"
|
|
File /r "${SOURCEDIR}\retroshare-gui\src\gui\qss\chat\Bubble_Compact\*.*"
|
|
|
|
; Stylesheets
|
|
SetOutPath "$INSTDIR\qss"
|
|
File /r "${SOURCEDIR}\retroshare-gui\src\qss\*.*"
|
|
SectionEnd
|
|
|
|
;Section $(Section_Link) Section_Link
|
|
; Delete any existing keys
|
|
|
|
; Write the file association
|
|
; WriteRegStr HKCR .pqi "" retroshare
|
|
; WriteRegStr HKCR retroshare "" "PQI File"
|
|
; WriteRegBin HKCR retroshare EditFlags 00000100
|
|
; WriteRegStr HKCR "retroshare\shell" "" open
|
|
; WriteRegStr HKCR "retroshare\shell\open\command" "" `"$INSTDIR\retroshare.exe" "%1"`
|
|
;SectionEnd
|
|
|
|
# Shortcuts
|
|
SectionGroup $(Section_Shortcuts) Section_Shortcuts
|
|
Section $(Section_StartMenu) Section_StartMenu
|
|
SetOutPath "$INSTDIR"
|
|
CreateDirectory "$SMPROGRAMS\${APPNAME}"
|
|
CreateShortCut "$SMPROGRAMS\${APPNAME}\$(Link_Uninstall).lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
|
|
CreateShortCut "$SMPROGRAMS\${APPNAME}\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe" 0
|
|
SectionEnd
|
|
|
|
Section $(Section_Desktop) Section_Desktop
|
|
CreateShortCut "$DESKTOP\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe" 0
|
|
SectionEnd
|
|
|
|
Section $(Section_QuickLaunch) Section_QuickLaunch
|
|
CreateShortCut "$QUICKLAUNCH\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe" 0
|
|
SectionEnd
|
|
SectionGroupEnd
|
|
|
|
Section $(Section_AutoStart) Section_AutoStart
|
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "RetroShare" "$INSTDIR\retroshare.exe -m"
|
|
SectionEnd
|
|
|
|
;Section $(Section_AutoStart) Section_AutoStart
|
|
; CreateShortCut "$SMSTARTUP\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe -m" 0
|
|
;SectionEnd
|
|
|
|
Section -FinishSection
|
|
${If} $PortableMode = 0
|
|
WriteRegStr HKLM "Software\${APPNAME}" "" "$INSTDIR"
|
|
WriteRegStr HKLM "Software\${APPNAME}" "Version" "${VERSION}"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${APPNAME}"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayVersion" "${VERSION}"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayIcon" "$INSTDIR\retroshare.exe"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "Publisher" "${PUBLISHER}"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoModify" "1"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoRepair" "1"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" "$INSTDIR\uninstall.exe"
|
|
WriteUninstaller "$INSTDIR\uninstall.exe"
|
|
${Else}
|
|
; Create the file the application uses to detect portable mode
|
|
FileOpen $0 "$INSTDIR\portable" w
|
|
FileClose $0
|
|
${EndIf}
|
|
SectionEnd
|
|
|
|
# Descriptions
|
|
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Main} $(Section_Main_Desc)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Data} $(Section_Data_Desc)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Shortcuts} $(Section_Shortcuts_Desc)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Section_StartMenu} $(Section_StartMenu_Desc)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Desktop} $(Section_Desktop_Desc)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Section_QuickLaunch} $(Section_QuickLaunch_Desc)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Plugins} $(Section_Plugins_Desc)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Plugin_FeedReader} $(Section_Plugin_FeedReader_Desc)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Plugin_VOIP} $(Section_Plugin_VOIP_Desc)
|
|
; !insertmacro MUI_DESCRIPTION_TEXT ${Section_Link} $(Section_Link_Desc)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Section_AutoStart} $(Section_AutoStart_Desc)
|
|
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
|
|
|
# Uninstall
|
|
Section "Uninstall"
|
|
; Remove file association registry keys
|
|
; DeleteRegKey HKCR .pqi
|
|
DeleteRegKey HKCR RetroShare
|
|
|
|
; Remove program/uninstall regsitry keys
|
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"
|
|
DeleteRegKey HKLM SOFTWARE\${APPNAME}
|
|
|
|
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "RetroShare"
|
|
|
|
; Remove shortcuts, if any
|
|
Delete "$SMPROGRAMS\${APPNAME}\*.*"
|
|
|
|
; Remove desktop shortcut
|
|
Delete "$DESKTOP\${APPNAME}.lnk"
|
|
|
|
; Remove Quicklaunch shortcut
|
|
Delete "$QUICKLAUNCH\${APPNAME}.lnk"
|
|
|
|
; Remove Autstart
|
|
Delete "$SMSTARTUP\${APPNAME}.lnk"
|
|
|
|
; Remove directories used
|
|
RMDir "$SMPROGRAMS\${APPNAME}"
|
|
RMDir /r "$INSTDIR"
|
|
|
|
; Don't remove the directory, otherwise
|
|
; we lose the XPGP keys.
|
|
; Should make this an option though...
|
|
RMDir /r "${DATADIR_NORMAL}\extensions6"
|
|
RMDir /r "${DATADIR_NORMAL}\stylesheets"
|
|
SectionEnd
|
|
|
|
Function .onInit
|
|
StrCpy $InstDirNormal "${INSTDIR_NORMAL}"
|
|
StrCpy $InstDirPortable "${INSTDIR_PORTABLE}"
|
|
|
|
StrCpy $PortableMode 0
|
|
StrCpy $INSTDIR "$InstDirNormal"
|
|
StrCpy $DataDir "${DATADIR_NORMAL}"
|
|
|
|
InitPluginsDir
|
|
Push $R1
|
|
File /oname=$PLUGINSDIR\spltmp.bmp "${SOURCEDIR}\retroshare-gui\src\gui\images\logo\logo_splash.png"
|
|
advsplash::show 1200 1000 1000 -1 $PLUGINSDIR\spltmp
|
|
Pop $R1
|
|
Pop $R1
|
|
!insertmacro MUI_LANGDLL_DISPLAY
|
|
FunctionEnd
|
|
|
|
# Installation mode
|
|
|
|
Function RequireAdmin
|
|
UserInfo::GetAccountType
|
|
Pop $8
|
|
${If} $8 != "admin"
|
|
MessageBox MB_ICONSTOP "You need administrator rights to install ${APPNAME}"
|
|
SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
|
|
Abort
|
|
${EndIf}
|
|
FunctionEnd
|
|
|
|
Function SetModeDestinationFromInstdir
|
|
${If} $PortableMode = 0
|
|
StrCpy $InstDirNormal $INSTDIR
|
|
${Else}
|
|
StrCpy $InstDirPortable $INSTDIR
|
|
${EndIf}
|
|
FunctionEnd
|
|
|
|
Function PortableModePageCreate
|
|
Call SetModeDestinationFromInstdir ; If the user clicks BACK on the directory page we will remember their mode specific directory
|
|
!insertmacro MUI_HEADER_TEXT $(Page_InstallMode) $(Page_InstallMode_Desc)
|
|
nsDialogs::Create 1018
|
|
Pop $0
|
|
${NSD_CreateRadioButton} 5u 25u -10u 8u $(Page_InstallMode_Standard)
|
|
Pop $1
|
|
${NSD_CreateLabel} 18u 40u -10u 24u $(Page_InstallMode_Standard_Desc)
|
|
Pop $0
|
|
${NSD_CreateRadioButton} 5u 75u -10u 8u $(Page_InstallMode_Portable)
|
|
Pop $2
|
|
${NSD_CreateLabel} 18u 90u -10u 24u $(Page_InstallMode_Portable_Desc)
|
|
Pop $0
|
|
${If} $PortableMode = 0
|
|
SendMessage $1 ${BM_SETCHECK} ${BST_CHECKED} 0
|
|
${Else}
|
|
SendMessage $2 ${BM_SETCHECK} ${BST_CHECKED} 0
|
|
${EndIf}
|
|
nsDialogs::Show
|
|
FunctionEnd
|
|
|
|
Function PortableModePageLeave
|
|
${NSD_GetState} $1 $0
|
|
${If} $0 <> ${BST_UNCHECKED}
|
|
StrCpy $PortableMode 0
|
|
StrCpy $INSTDIR $InstDirNormal
|
|
Call RequireAdmin
|
|
; Enable sections
|
|
SectionSetText ${Section_Shortcuts} $(Section_Shortcuts)
|
|
SectionSetText ${Section_StartMenu} $(Section_StartMenu)
|
|
SectionSetText ${Section_Desktop} $(Section_Desktop)
|
|
SectionSetText ${Section_QuickLaunch} $(Section_QuickLaunch)
|
|
SectionSetText ${Section_AutoStart} $(Section_AutoStart)
|
|
!insertmacro SelectSection ${Section_Shortcuts}
|
|
!insertmacro SelectSection ${Section_AutoStart}
|
|
!insertmacro SelectSection ${Section_StartMenu}
|
|
!insertmacro SelectSection ${Section_Desktop}
|
|
!insertmacro SelectSection ${Section_QuickLaunch}
|
|
${Else}
|
|
StrCpy $PortableMode 1
|
|
StrCpy $INSTDIR $InstDirPortable
|
|
; Disable sections
|
|
!insertmacro UnselectSection ${Section_Shortcuts}
|
|
!insertmacro UnselectSection ${Section_AutoStart}
|
|
!insertmacro UnselectSection ${Section_StartMenu}
|
|
!insertmacro UnselectSection ${Section_Desktop}
|
|
!insertmacro UnselectSection ${Section_QuickLaunch}
|
|
SectionSetText ${Section_Shortcuts} ""
|
|
SectionSetText ${Section_StartMenu} ""
|
|
SectionSetText ${Section_Desktop} ""
|
|
SectionSetText ${Section_QuickLaunch} ""
|
|
SectionSetText ${Section_AutoStart} ""
|
|
${EndIf}
|
|
FunctionEnd
|
|
|
|
Function dir_leave
|
|
${If} $PortableMode = 0
|
|
StrCpy $DataDir "${DATADIR_NORMAL}"
|
|
StrCpy $StyleSheetDir $DataDir
|
|
${Else}
|
|
StrCpy $DataDir "${DATADIR_PORTABLE}"
|
|
StrCpy $StyleSheetDir $INSTDIR
|
|
${EndIf}
|
|
FunctionEnd
|