1
0
mirror of https://github.com/clementine-player/Clementine synced 2024-12-15 10:48:33 +01:00
Clementine-audio-player-Mac.../dist/windows/clementine.nsi.in

244 lines
8.9 KiB
Plaintext

!define PRODUCT_NAME "Clementine"
!define PRODUCT_PUBLISHER "Clementine"
!define PRODUCT_VERSION_MAJOR @CLEMENTINE_VERSION_MAJOR@
!define PRODUCT_VERSION_MINOR @CLEMENTINE_VERSION_MINOR@
!define PRODUCT_DISPLAY_VERSION "@CLEMENTINE_VERSION_STRING@"
!define PRODUCT_DISPLAY_VERSION_SHORT "@CLEMENTINE_VERSION_SHORT_STRING@"
!define PRODUCT_WEB_SITE "http://code.google.com/p/clementine-player/"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define PRODUCT_INSTALL_DIR "$PROGRAMFILES\Clementine"
SetCompressor /SOLID lzma
!addplugindir nsisplugins
!include "MUI2.nsh"
!define MUI_ICON "clementine.ico"
!define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_FINISHPAGE_RUN $INSTDIR/clementine.exe
; Installer pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
!insertmacro MUI_LANGUAGE "English"
Name "${PRODUCT_NAME}"
OutFile "${PRODUCT_NAME}Setup.exe"
InstallDir "${PRODUCT_INSTALL_DIR}"
ShowInstDetails show
ShowUnInstDetails show
; BrandingText "${PRODUCT_PUBLISHER}"
RequestExecutionLevel admin
Section "Clementine" Clementine
SetOutPath "$INSTDIR"
SetOverwrite ifnewer
File "clementine.exe"
File "clementine.ico"
File "iconv.dll"
File "lastfm.lib"
File "libFLAC-8.dll"
File "libgcrypt-11.dll"
File "libgcc_s_dw2-1.dll"
File "libgcc_s_sjlj-1.dll"
File "libgio-2.0-0.dll"
File "libglib-2.0-0.dll"
File "libgmodule-2.0-0.dll"
File "libgnutls-26.dll"
File "libgobject-2.0-0.dll"
File "libgpg-error-0.dll"
File "libgstaudio-0.10.dll"
File "libgstbase-0.10.dll"
File "libgstcontroller-0.10.dll"
File "libgstdshow-0.10.dll"
File "libgstinterfaces-0.10.dll"
File "libgstnet-0.10.dll"
File "libgstpbutils-0.10.dll"
File "libgstreamer-0.10.dll"
File "libgstriff-0.10.dll"
File "libgstrtp-0.10.dll"
File "libgstrtsp-0.10.dll"
File "libgstsdp-0.10.dll"
File "libgsttag-0.10.dll"
File "libgthread-2.0-0.dll"
File "libogg-0.dll"
File "liboil-0.3-0.dll"
File "libsoup-2.4-1.dll"
File "libspeex-1.dll"
File "libtag.dll"
File "libvorbis-0.dll"
File "libvorbisenc-2.dll"
File "libxml2-2.dll"
File "libxml2.dll"
File "mingwm10.dll"
File "QtCore4.dll"
File "QtGui4.dll"
File "QtNetwork4.dll"
File "QtSql4.dll"
File "QtXml4.dll"
File "zlib1.dll"
SectionEnd
Section "Gstreamer plugins" gstreamer-plugins
SetOutPath "$INSTDIR\gstreamer-plugins"
SetOverwrite ifnewer
File "/oname=libgstasfdemux.dll" "gstreamer-plugins\libgstasfdemux.dll"
File "/oname=libgstaudioconvert.dll" "gstreamer-plugins\libgstaudioconvert.dll"
File "/oname=libgstaudioresample.dll" "gstreamer-plugins\libgstaudioresample.dll"
File "/oname=libgstautodetect.dll" "gstreamer-plugins\libgstautodetect.dll"
File "/oname=libgstcoreelements.dll" "gstreamer-plugins\libgstcoreelements.dll"
File "/oname=libgstdecodebin.dll" "gstreamer-plugins\libgstdecodebin.dll"
File "/oname=libgstdirectsound.dll" "gstreamer-plugins\libgstdirectsound.dll"
File "/oname=libgstflac.dll" "gstreamer-plugins\libgstflac.dll"
File "/oname=libgstgio.dll" "gstreamer-plugins\libgstgio.dll"
File "/oname=libgsticydemux.dll" "gstreamer-plugins\libgsticydemux.dll"
File "/oname=libgstid3demux.dll" "gstreamer-plugins\libgstid3demux.dll"
File "/oname=libgstmad.dll" "gstreamer-plugins\libgstmad.dll"
File "/oname=libgstogg.dll" "gstreamer-plugins\libgstogg.dll"
File "/oname=libgstsoup.dll" "gstreamer-plugins\libgstsoup.dll"
File "/oname=libgstspeex.dll" "gstreamer-plugins\libgstspeex.dll"
File "/oname=libgsttypefindfunctions.dll" "gstreamer-plugins\libgsttypefindfunctions.dll"
File "/oname=libgstvolume.dll" "gstreamer-plugins\libgstvolume.dll"
File "/oname=libgstvorbis.dll" "gstreamer-plugins\libgstvorbis.dll"
File "/oname=libgstwaveform.dll" "gstreamer-plugins\libgstwaveform.dll"
File "/oname=libgstwavparse.dll" "gstreamer-plugins\libgstwavparse.dll"
SectionEnd
Section "Start menu items" startmenu
; Create Start Menu folders and shortcuts.
CreateDirectory "$STARTMENU\Programs\${PRODUCT_NAME}"
CreateShortCut "$STARTMENU\Programs\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\clementine.exe"
CreateShortCut "$STARTMENU\Programs\${PRODUCT_NAME}\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
SectionEnd
Section "Uninstaller"
; Create uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\clementine.ico"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_DISPLAY_VERSION}"
WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "VersionMajor" "${PRODUCT_VERSION_MAJOR}"
WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "VersionMinor" "${PRODUCT_VERSION_MINOR}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
SectionEnd
Section "Uninstall"
; Kill clementine.exe if it's running
; This calling convention is retarded...
StrCpy $0 "clementine.exe"
KillProc::FindProcesses
StrCmp $1 "-1" wooops
StrCmp $0 "0" completed
DetailPrint "Killing running clementine.exe..."
StrCpy $0 "clementine.exe"
KillProc::KillProcesses
StrCmp $1 "-1" wooops
Sleep 2000
Goto completed
wooops:
DetailPrint "-> Error: Something went wrong while killing running clementine.exe"
Abort
completed:
; Delete all the files
Delete "$INSTDIR\clementine.ico"
Delete "$INSTDIR\clementine.exe"
Delete "$INSTDIR\iconv.dll"
Delete "$INSTDIR\lastfm.lib"
Delete "$INSTDIR\libFLAC-8.dll"
Delete "$INSTDIR\libgcrypt-11.dll"
Delete "$INSTDIR\libgcc_s_dw2-1.dll"
Delete "$INSTDIR\libgcc_s_sjlj-1.dll"
Delete "$INSTDIR\libgio-2.0-0.dll"
Delete "$INSTDIR\libglib-2.0-0.dll"
Delete "$INSTDIR\libgmodule-2.0-0.dll"
Delete "$INSTDIR\libgnutls-26.dll"
Delete "$INSTDIR\libgobject-2.0-0.dll"
Delete "$INSTDIR\libgpg-error-0.dll"
Delete "$INSTDIR\libgstaudio-0.10.dll"
Delete "$INSTDIR\libgstbase-0.10.dll"
Delete "$INSTDIR\libgstcontroller-0.10.dll"
Delete "$INSTDIR\libgstdshow-0.10.dll"
Delete "$INSTDIR\libgstinterfaces-0.10.dll"
Delete "$INSTDIR\libgstnet-0.10.dll"
Delete "$INSTDIR\libgstpbutils-0.10.dll"
Delete "$INSTDIR\libgstreamer-0.10.dll"
Delete "$INSTDIR\libgstriff-0.10.dll"
Delete "$INSTDIR\libgstrtp-0.10.dll"
Delete "$INSTDIR\libgstrtsp-0.10.dll"
Delete "$INSTDIR\libgstsdp-0.10.dll"
Delete "$INSTDIR\libgsttag-0.10.dll"
Delete "$INSTDIR\libgthread-2.0-0.dll"
Delete "$INSTDIR\libogg-0.dll"
Delete "$INSTDIR\liboil-0.3-0.dll"
Delete "$INSTDIR\libsoup-2.4-1.dll"
Delete "$INSTDIR\libspeex-1.dll"
Delete "$INSTDIR\libtag.dll"
Delete "$INSTDIR\libvorbis-0.dll"
Delete "$INSTDIR\libvorbisenc-2.dll"
Delete "$INSTDIR\libxml2-2.dll"
Delete "$INSTDIR\libxml2.dll"
Delete "$INSTDIR\mingwm10.dll"
Delete "$INSTDIR\QtCore4.dll"
Delete "$INSTDIR\QtGui4.dll"
Delete "$INSTDIR\QtNetwork4.dll"
Delete "$INSTDIR\QtSql4.dll"
Delete "$INSTDIR\QtXml4.dll"
Delete "$INSTDIR\zlib1.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstasfdemux.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstaudioconvert.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstaudioresample.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstautodetect.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstcoreelements.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstdecodebin.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstdirectsound.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstflac.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstgio.dll"
Delete "$INSTDIR\gstreamer-plugins\libgsticydemux.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstid3demux.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstmad.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstogg.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstspeex.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstsoup.dll"
Delete "$INSTDIR\gstreamer-plugins\libgsttypefindfunctions.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstvolume.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstvorbis.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstwaveform.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstwavparse.dll"
Delete "$INSTDIR\Uninstall.exe"
; Remove the installation folder.
RMDir "$INSTDIR\gstreamer-plugins"
RMDir "$INSTDIR"
; Remove the Shortcuts
Delete "$STARTMENU\Programs\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk"
Delete "$STARTMENU\Programs\${PRODUCT_NAME}\Uninstall.lnk"
RMDir /r "$STARTMENU\Programs\${PRODUCT_NAME}"
; Remove the entry from 'installed programs list'
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SectionEnd