rockbox/utils/themeeditor/themeeditor.nsi
Dominik Riebeling 93bb14c877 themeeditor: Make NSIS script work with mxe.
Change-Id: I592a28f64f88c4ec0d1c4f45aeb8148ac2bc7d9b
2020-09-03 19:09:43 +02:00

132 lines
4.8 KiB
Text

; __________ __ ___.
; Open \______ \ ____ ____ | | _\_ |__ _______ ___
; Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
; Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
; Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
; \/ \/ \/ \/ \/
; $Id$
;
; Copyright (c) 2010 Dominik Riebeling
;
; All files in this archive are subject to the GNU General Public License.
; See the file COPYING in the source tree root for full license agreement.
;
; This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
; KIND, either express or implied.
;
; NSIS installer using Modern UI
; Expects a static build of the Theme Editor (Qt DLLs are not packaged) and to
; find the input files in the source tree (in-tree build).
; This installer uses the ZipDll plugin for font pack extraction
; (http://nsis.sourceforge.net/ZipDLL_plug-in)
!include "MUI2.nsh"
;Name and file
Name "Rockbox Theme Editor"
OutFile "rbthemeeditor-setup.exe"
;Default installation folder
InstallDir "$PROGRAMFILES\Rockbox Theme Editor"
; global registry shortcuts
!define UNINSTALL_HIVE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Rockbox Theme Editor"
!define SETTINGS_HIVE "Software\rockbox.org\Rockbox Theme Editor"
;Get installation folder from registry if available
InstallDirRegKey HKCU "${SETTINGS_HIVE}" ""
SetCompressor /solid lzma
VIAddVersionKey "ProductName" "Rockbox Theme Editor"
VIAddVersionKey "FileVersion" "0.0.0"
VIAddVersionKey "FileDescription" "Editor for the Rockbox Firmware Theme files"
VIAddVersionKey "LegalCopyright" "Contributing Developers"
VIProductVersion "0.0.0.0"
!define MUI_ICON resources\windowicon.ico
; embed XP manifest
XPStyle on
;Interface Configuration. Use Rockbox blue for header.
!define MUI_BGCOLOR b6c6e5
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "themeeditor-setup.bmp"
!define MUI_HEADERIMAGE_RIGHT
!define MUI_ABORTWARNING
;Pages
!insertmacro MUI_PAGE_LICENSE "..\..\docs\COPYING"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
;Languages
!insertmacro MUI_LANGUAGE "English"
;Installer Sections
Section "Theme Editor" SecThemeEditor
SectionSetFlags ${SecThemeEditor} ${SF_RO}
SectionIn RO
SetOutPath "$INSTDIR"
; Store installation folder
WriteRegStr HKCU "${SETTINGS_HIVE}" "" $INSTDIR
; files
CreateDirectory "$INSTDIR"
File /oname=$INSTDIR\rbthemeeditor.exe release\rbthemeeditor.exe
; Create uninstaller and uninstall information
WriteUninstaller "$INSTDIR\Uninstall.exe"
WriteRegStr HKLM "${UNINSTALL_HIVE}" "DisplayName" "Rockbox Theme Editor"
WriteRegStr HKLM "${UNINSTALL_HIVE}" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\""
WriteRegStr HKLM "${UNINSTALL_HIVE}" "QuietUninstallString" "$\"$INSTDIR\Uninstall.exe$\" /S"
WriteRegStr HKLM "${UNINSTALL_HIVE}" "URLInfoAbout" "http://www.rockbox.org/wiki/ThemeEditor"
SectionEnd
Section "Download Fonts Package" SecFontsPackage
SetOutPath "$INSTDIR"
NSISdl::download http://download.rockbox.org/daily/fonts/rockbox-fonts.zip "$INSTDIR\rockbox-fonts.zip"
ZipDLL::extractall "$INSTDIR\rockbox-fonts.zip" "$INSTDIR" "<ALL>"
; the fonts package uses the Rockbox folder structure. Move all fonts into a
; flat directory instead.
Rename "$INSTDIR\.rockbox\fonts" "$INSTDIR\fonts"
RMDir /r "$INSTDIR\.rockbox"
WriteRegStr HKCU "${SETTINGS_HIVE}\RBFont" "fontDir" "$INSTDIR\fonts\"
SectionEnd
Section "Start Menu Shortcut" SecShortCuts
CreateDirectory "$SMPROGRAMS\Rockbox"
CreateShortCut "$SMPROGRAMS\Rockbox\Theme Editor.lnk" "$INSTDIR\rbthemeeditor.exe"
CreateShortCut "$SMPROGRAMS\Rockbox\Uninstall Theme Editor.lnk" "$INSTDIR\Uninstall.exe"
SectionEnd
; Assign language strings to sections
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecThemeEditor} \
"Rockbox Theme Editor. Required."
!insertmacro MUI_DESCRIPTION_TEXT ${SecFontsPackage} \
"Download and install the Rockbox Fonts package into program folder. \
This will set the correct path in the program configuration for the current user only."
!insertmacro MUI_DESCRIPTION_TEXT ${SecShortCuts} \
"Create Shortcut in Start Menu."
!insertmacro MUI_FUNCTION_DESCRIPTION_END
; Uninstaller Section
Section "Uninstall"
; files
Delete "$INSTDIR\Uninstall.exe"
Delete "$INSTDIR\rbthemeeditor.exe"
Delete "$INSTDIR\rockbox-fonts.zip"
; folders
RMDir /r "$INSTDIR\fonts"
RMDir "$INSTDIR"
; start menu folder
RMDir /r "$SMPROGRAMS\Rockbox"
; remove registry information
DeleteRegKey HKLM "${UNINSTALL_HIVE}"
DeleteRegKey HKCU "Software\rockbox.org\Rockbox Theme Editor"
SectionEnd