mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-11 03:21:29 +00:00
d461780369
When doing an out of tree build you don't want to stage the package with the source but under your current directory. So let's make sure we distinguish between source and target here... and instead of putting things into packaging/windows they now end up in staging which is much more consistent. And to make my life even easier, the installer .exe ends up in the base dir in which you build the package. Also, we link statically against libdivecomputer, so don't pack the dll. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
186 lines
5.5 KiB
Text
186 lines
5.5 KiB
Text
#
|
|
# Subsurface NSIS installer script
|
|
#
|
|
# This installer creator needs to be run with:
|
|
# makensis subsurface.nsi
|
|
#
|
|
# It assumes that packaging/windows/dll is a symlink to
|
|
# the directory in which the required Windows DLLs are installed
|
|
# (in my case that's /usr/i686-w64-mingw32/sys-root/mingw/bin)
|
|
#
|
|
|
|
#--------------------------------
|
|
# 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 "Subsurface"
|
|
Caption "Subsurface ${SUBSURFACE_VERSION} Setup"
|
|
OutFile "..\subsurface-${SUBSURFACE_VERSION}.exe"
|
|
|
|
# Icon to use for the installer
|
|
!define MUI_ICON "subsurface.ico"
|
|
|
|
# Default installation folder
|
|
InstallDir "$PROGRAMFILES\Subsurface"
|
|
|
|
# Get installation folder from registry if available
|
|
InstallDirRegKey HKCU "Software\Subsurface" ""
|
|
|
|
# Request application privileges
|
|
RequestExecutionLevel admin
|
|
|
|
#--------------------------------
|
|
# Version information
|
|
|
|
VIProductVersion "${SUBSURFACE_VIPRODUCTVERSION}"
|
|
VIAddVersionKey "ProductName" "Subsurface"
|
|
VIAddVersionKey "FileDescription" "Subsurface - an open source dive log program."
|
|
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\Subsurface"
|
|
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
|
|
|
|
#--------------------------------
|
|
# Variables
|
|
|
|
Var StartMenuFolder
|
|
|
|
#--------------------------------
|
|
# 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
|
|
!insertmacro MUI_UNPAGE_INSTFILES
|
|
|
|
#--------------------------------
|
|
# Languages
|
|
|
|
!insertmacro MUI_LANGUAGE "English"
|
|
|
|
#--------------------------------
|
|
# Default installer section
|
|
|
|
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
|
|
File subsurface.exe
|
|
File /r data
|
|
File /r images
|
|
File /r plugins
|
|
File /r Documentation
|
|
File /r translations
|
|
File iconv.dll
|
|
File libpng16-16.dll
|
|
File libjpeg-*.dll
|
|
File libusb-1.0.dll
|
|
File libxml2-2.dll
|
|
File libxslt-1.dll
|
|
File zlib1.dll
|
|
File libzip*.dll
|
|
File libsqlite3-0.dll
|
|
File libgcc_s_sjlj-1.dll
|
|
File libstdc++-6.dll
|
|
File libmarblewidget*dll
|
|
File libssl-10.dll
|
|
File libeay32.dll
|
|
File ssleay32.dll
|
|
File libgit2.dll
|
|
File libcrypto-10.dll
|
|
File Qt*4.dll
|
|
File subsurface.ico
|
|
File qt.conf
|
|
|
|
# Store installation folder in registry
|
|
WriteRegStr HKCU "Software\Subsurface" "" $INSTDIR
|
|
|
|
# Create shortcuts
|
|
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
|
|
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
|
|
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Subsurface.lnk" "$INSTDIR\subsurface.exe" "" "$INSTDIR\subsurface.ico" 0
|
|
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall Subsurface.lnk" "$INSTDIR\Uninstall.exe"
|
|
CreateShortCut "$DESKTOP\Subsurface.lnk" "$INSTDIR\subsurface.exe" "" "$INSTDIR\subsurface.ico" 0
|
|
!insertmacro MUI_STARTMENU_WRITE_END
|
|
|
|
# Create the uninstaller
|
|
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
|
|
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsurface" \
|
|
"DisplayName" "Subsurface"
|
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsurface" \
|
|
"DisplayIcon" "$INSTDIR\subsurface.ico"
|
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsurface" \
|
|
"UninstallString" "$INSTDIR\Uninstall.exe"
|
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsurface" \
|
|
"DisplayVersion" ${SUBSURFACE_VERSION}
|
|
|
|
SectionEnd
|
|
|
|
#--------------------------------
|
|
# Uninstaller section
|
|
|
|
Section "Uninstall"
|
|
SetShellVarContext all
|
|
|
|
# Delete installed files
|
|
Delete "$INSTDIR\*.dll"
|
|
Delete "$INSTDIR\freetype-config"
|
|
Delete "$INSTDIR\subsurface.exe"
|
|
Delete "$INSTDIR\subsurface.ico"
|
|
Delete "$INSTDIR\Uninstall.exe"
|
|
Delete "$INSTDIR\qt.conf"
|
|
RMDir /r "$INSTDIR\share"
|
|
RMDir /r "$INSTDIR\data"
|
|
RMDir /r "$INSTDIR\images"
|
|
RMDir /r "$INSTDIR\translations"
|
|
RMDir /r "$INSTDIR\oldshare"
|
|
RMDir /r "$INSTDIR\plugins"
|
|
RMDir /r "$INSTDIR\Documentation"
|
|
RMDir "$INSTDIR"
|
|
|
|
# Remove shortcuts
|
|
!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
|
|
Delete "$SMPROGRAMS\$StartMenuFolder\Subsurface.lnk"
|
|
Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall Subsurface.lnk"
|
|
RMDir "$SMPROGRAMS\$StartMenuFolder"
|
|
Delete "$DESKTOP\Subsurface.lnk"
|
|
|
|
# Remove registry entries
|
|
DeleteRegKey /ifempty HKCU "Software\Subsurface"
|
|
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsurface"
|
|
|
|
SectionEnd
|