diff options
Diffstat (limited to 'packaging/windows')
-rw-r--r-- | packaging/windows/smtk-import.nsi.in | 234 |
1 files changed, 234 insertions, 0 deletions
diff --git a/packaging/windows/smtk-import.nsi.in b/packaging/windows/smtk-import.nsi.in new file mode 100644 index 000000000..109b6647c --- /dev/null +++ b/packaging/windows/smtk-import.nsi.in @@ -0,0 +1,234 @@ +# +# Smrtk2ssrf NSIS installer script +# +# This installer creator needs to be run with: +# makensis smtk-import.nsi +# + +#-------------------------------- +# Include Modern UI + + !include "MUI2.nsh" + +#-------------------------------- +# General + + # Program version + !define SUBSURFACE_VERSION "VERSIONTOKEN" + + # VIProductVersion requires version in x.x.x.x format + !define SUBSURFACE_VIPRODUCTVERSION "PRODVTOKEN" + + # Installer name and filename + Name "Smtk2ssrf" + Caption "Smtk2ssrf ${SUBSURFACE_VERSION} Setup" + OutFile "..\smtk2ssrf-${SUBSURFACE_VERSION}.exe" + + # Icon to use for the installer + !define MUI_ICON "subsurface.ico" + + # Default installation folder + InstallDir "$PROGRAMFILES\Smtk2ssrf" + + # Get installation folder from registry if available + InstallDirRegKey HKCU "Software\Smtk2ssrf" "" + + # Request application privileges + RequestExecutionLevel admin + +#-------------------------------- +# Version information + + VIProductVersion "${SUBSURFACE_VIPRODUCTVERSION}" + VIAddVersionKey "ProductName" "Smtk2ssrf" + VIAddVersionKey "FileDescription" "Smtk2ssrf - Import SmartTrak divelogs to Subsurface XML format." + VIAddVersionKey "FileVersion" "${SUBSURFACE_VERSION}" + VIAddVersionKey "LegalCopyright" "GPL v.2" + VIAddVersionKey "ProductVersion" "${SUBSURFACE_VERSION}" + +#-------------------------------- +# Settings + + # Show a warn on aborting installation + !define MUI_ABORTWARNING + + # Defines the target start menu folder + !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" + !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Smtk2ssrf" + !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" + +#-------------------------------- +# Variables + + Var StartMenuFolder + +#-------------------------------- +# Custom pages +# +# Maintain some checkboxes in the uninstall dialog +#Var UninstallDialog +#Var Checkbox_Reg +#Var Checkbox_Reg_State +#Var Checkbox_UserDir +#Var Checkbox_UserDir_State +#Var UserDir +# +#Function un.UninstallOptions +# nsDialogs::Create 1018 +# Pop $UninstallDialog +# ${If} $UninstallDialog == error +# Abort +# ${EndIf} +# +# StrCpy $Checkbox_Reg_State 0 +# StrCpy $Checkbox_UserDir 0 +# +# # if this key exists Subsurface was run at least once +# ReadRegStr $UserDir HKCU "Software\Subsurface\Subsurface\GeneralSettings" "default_directory" +# ${If} $UserDir != "" +# # checkbox for removing registry entries +# ${NSD_CreateCheckbox} 0 0u 100% 20u "Registry entries (HKEY_CURRENT_USER\Software\Subsurface)" +# Pop $Checkbox_Reg +# GetFunctionAddress $0 un.OnCheckbox_Reg +# nsDialogs::OnClick $Checkbox_Reg $0 +# +# ${If} ${FileExists} "$UserDir\*.*" +# # checkbox for removing the user directory +# ${NSD_CreateCheckbox} 0 20u 100% 20u "User directory ($UserDir)" +# Pop $Checkbox_UserDir +# GetFunctionAddress $0 un.OnCheckbox_UserDir +# nsDialogs::OnClick $Checkbox_UserDir $0 +# ${EndIf} +# ${EndIf} +# +# nsDialogs::Show +#FunctionEnd +# +#Function un.OnCheckbox_Reg +# ${NSD_GetState} $Checkbox_Reg $Checkbox_Reg_State +#FunctionEnd +#Function un.OnCheckbox_UserDir +# ${NSD_GetState} $Checkbox_UserDir $Checkbox_UserDir_State +# ${If} $Checkbox_UserDir_State == 1 +# MessageBox MB_OK "WARNING!$\nMake sure you don't have important files in the user directory!" +# ${EndIf} +#FunctionEnd + +#-------------------------------- +# Pages + + # Installer pages + !insertmacro MUI_PAGE_LICENSE "gpl-2.0.txt" + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder + !insertmacro MUI_PAGE_INSTFILES + + # Uninstaller pages + !insertmacro MUI_UNPAGE_CONFIRM +# UninstPage custom un.UninstallOptions + !insertmacro MUI_UNPAGE_INSTFILES + +#-------------------------------- +# Languages + + !insertmacro MUI_LANGUAGE "English" + +Section + SetShellVarContext all + + # Installation path + SetOutPath "$INSTDIR" + + # Delete any already installed DLLs to avoid buildup of various + # versions of the same library when upgrading + Delete "$INSTDIR\*.dll" + + # Files to include in installer + # now that we install into the staging directory and try to only have + # the DLLs there that we depend on, this is much easier + File smtk2ssrf.exe +# File /r data +# File /r theme +# File /r images + File /r plugins +# File /r Documentation +# File /r translations +# File /r printing_templates +# File /r grantlee + File *.dll + File subsurface.ico + File qt.conf + + # Store installation folder in registry + WriteRegStr HKCU "Software\Smtk2ssrf" "" $INSTDIR + + # Create shortcuts + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateDirectory "$SMPROGRAMS\$StartMenuFolder" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Smtk2ssrf.lnk" "$INSTDIR\smtk2ssrf.exe" "" "$INSTDIR\subsurface.ico" 0 + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall Smtk2ssrf.lnk" "$INSTDIR\Uninstall_smtk2ssrf.exe" + CreateShortCut "$DESKTOP\Smtk2ssrf.lnk" "$INSTDIR\smtk2ssrf.exe" "" "$INSTDIR\subsurface.ico" 0 + !insertmacro MUI_STARTMENU_WRITE_END + + # Create the uninstaller + WriteUninstaller "$INSTDIR\Uninstall_smtk2ssrf.exe" + + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Smtk2ssrf" \ + "DisplayName" "Smtk2ssrf" + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Smtk2ssrf" \ + "DisplayIcon" "$INSTDIR\subsurface.ico" + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Smtk2ssrf" \ + "UninstallString" "$INSTDIR\Uninstall_smtk2ssrf.exe" + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Smtk2ssrf" \ + "DisplayVersion" ${SUBSURFACE_VERSION} + +SectionEnd + +#-------------------------------- +# Uninstaller section + +Section "Uninstall" + SetShellVarContext all + + # Delete installed files + Delete "$INSTDIR\*.dll" + Delete "$INSTDIR\freetype-config" + Delete "$INSTDIR\smtk2ssrf.exe" + Delete "$INSTDIR\subsurface.ico" + Delete "$INSTDIR\Uninstall_smtk2ssrf.exe" + Delete "$INSTDIR\qt.conf" +# RMDir /r "$INSTDIR\share" +# RMDir /r "$INSTDIR\data" +# RMDir /r "$INSTDIR\theme" +# RMDir /r "$INSTDIR\images" +# RMDir /r "$INSTDIR\translations" +# RMDir /r "$INSTDIR\oldshare" + RMDir /r "$INSTDIR\plugins" +# RMDir /r "$INSTDIR\Documentation" +# RMDir /r "$INSTDIR\printing_templates" +# RMDir /r "$INSTDIR\grantlee" + RMDir "$INSTDIR" + + # Remove shortcuts + !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder + Delete "$SMPROGRAMS\$StartMenuFolder\Smtk2ssrf.lnk" + Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall Smtk2ssrf.lnk" + RMDir "$SMPROGRAMS\$StartMenuFolder" + Delete "$DESKTOP\Smtk2ssrf.lnk" + + # remove the registry entires + ${If} $Checkbox_Reg_State == 1 + DeleteRegKey HKCU "Software\Smtk2ssrf" + ${EndIf} + + # remove the user directory + ${If} $Checkbox_UserDir_State == 1 + ${AndIf} $UserDir != "" + ${AndIf} ${FileExists} "$UserDir\*.*" + RMDir /r $UserDir + ${EndIf} + + # remove the uninstaller entry + DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Smtk2ssrf" + +SectionEnd |