[geany/geany] 3e69d3: Remove hard-coded paths and installer name from NSIS installer script

Enrico Tröger git-noreply at xxxxx
Sat Oct 9 10:05:59 UTC 2021


Branch:      refs/heads/master
Author:      Enrico Tröger <enrico.troeger at uvena.de>
Committer:   Enrico Tröger <enrico.troeger at uvena.de>
Date:        Sat, 09 Oct 2021 10:05:59 UTC
Commit:      3e69d3e833af3ccc50bd242bf5ab2145859b7599
             https://github.com/geany/geany/commit/3e69d3e833af3ccc50bd242bf5ab2145859b7599

Log Message:
-----------
Remove hard-coded paths and installer name from NSIS installer script

This makes the paths for external resources configurable using command
line flags (e.g. /DGEANY_THEMES_DIR=/something/geany-themes) and
also the resulting installer filename can be set via command line flags.

The "INCLUDE_GTK" command line is removed as we always include
the GTK bundle.
The GTK version detection was removed and now we always bundle the GTK3
specific CSS files.


Modified Paths:
--------------
    geany.nsi.in

Modified: geany.nsi.in
96 lines changed, 47 insertions(+), 49 deletions(-)
===================================================================
@@ -42,7 +42,6 @@ Unicode true
 !define PRODUCT_EXE "$INSTDIR\bin\Geany.exe"
 !define PRODUCT_REGNAME "Geany.ProjectFile"
 !define PRODUCT_EXT ".geany"
-!define RESOURCEDIR "geany-${PRODUCT_VERSION}"
 !define GTK_VERSION @GTK_VERSION@
 
 ;;;;;;;;;;;;;;;;;;;;;
@@ -55,19 +54,28 @@ VIAddVersionKey "ProductVersion" "${PRODUCT_VERSION}"
 VIAddVersionKey "LegalCopyright" "Copyright 2005 The Geany contributors"
 VIAddVersionKey "FileDescription" "${PRODUCT_NAME} Installer"
 
-BrandingText "$(^NAME) installer (NSIS 3.04)"
-InstallDir "$PROGRAMFILES\Geany"
+BrandingText "$(^NAME) installer (NSIS ${NSIS_VERSION})"
+InstallDir "$PROGRAMFILES64\Geany"
 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
 SetCompressor /SOLID lzma
 ShowInstDetails hide
 ShowUnInstDetails hide
 XPStyle on
 ManifestSupportedOS all
-!ifdef INCLUDE_GTK
-OutFile "geany-${PRODUCT_VERSION}_setup.exe"
-!else
-OutFile "geany-${PRODUCT_VERSION}_nogtk_setup.exe"
+!ifndef GEANY_INSTALLER_NAME
+!define GEANY_INSTALLER_NAME "geany-${PRODUCT_VERSION}_setup.exe"
 !endif
+!ifndef GEANY_RELEASE_DIR
+!define GEANY_RELEASE_DIR "geany-${PRODUCT_VERSION}"
+!endif
+!ifndef GEANY_THEMES_DIR
+!define GEANY_THEMES_DIR "..\geany-themes"
+!endif
+!ifndef GTK_BUNDLE_DIR
+!define GTK_BUNDLE_DIR "gtk"
+!endif
+
+OutFile "${GEANY_INSTALLER_NAME}"
 
 Var Answer
 Var UserName
@@ -93,7 +101,7 @@ ReserveFile "${NSISDIR}\Plugins\x86-unicode\LangDLL.dll"
 !insertmacro MUI_PAGE_WELCOME
 ; License page
 ;!define MUI_LICENSEPAGE_RADIOBUTTONS
-!insertmacro MUI_PAGE_LICENSE "${RESOURCEDIR}\Copying.txt"
+!insertmacro MUI_PAGE_LICENSE "${GEANY_RELEASE_DIR}\Copying.txt"
 ; Components page
 !insertmacro MUI_PAGE_COMPONENTS
 ; Directory page
@@ -129,45 +137,41 @@ Section "!Program Files" SEC01
 	SetOverwrite ifnewer
 
 	SetOutPath "$INSTDIR"
-	File "${RESOURCEDIR}\*.txt"
+	File "${GEANY_RELEASE_DIR}\*.txt"
 
 	SetOutPath "$INSTDIR\bin"
-	File "${RESOURCEDIR}\bin\Geany.exe"
-	File "${RESOURCEDIR}\bin\*Geany*.dll"
+	File "${GEANY_RELEASE_DIR}\bin\Geany.exe"
+	File "${GEANY_RELEASE_DIR}\bin\*Geany*.dll"
 	# non-GTK dependencies
-	File "gtk\bin\libgcc_s_dw*.dll"
-	File "gtk\bin\libstdc++-*.dll"
-	File "gtk\bin\libwinpthread*.dll"
+	File "${GTK_BUNDLE_DIR}\bin\libgcc_s_seh*.dll"
+	File "${GTK_BUNDLE_DIR}\bin\libstdc++-*.dll"
+	File "${GTK_BUNDLE_DIR}\bin\libwinpthread*.dll"
 
 	SetOutPath "$INSTDIR\libexec"
-	File /r "${RESOURCEDIR}\libexec\*"
+	File /r "${GEANY_RELEASE_DIR}\libexec\*"
 
 	SetOutPath "$INSTDIR\data"
-	File "${RESOURCEDIR}\data\GPL-2"
-	File "${RESOURCEDIR}\data\filetype_extensions.conf"
-	File "${RESOURCEDIR}\data\geany.glade"
-!if ${GTK_VERSION} >= 3
-	File "${RESOURCEDIR}\data\geany-3.20.css"
-	File "${RESOURCEDIR}\data\geany.css"
-!else
-	File "${RESOURCEDIR}\data\geany.gtkrc"
-!endif
-	File "${RESOURCEDIR}\data\snippets.conf"
-	File "${RESOURCEDIR}\data\ui_toolbar.xml"
+	File "${GEANY_RELEASE_DIR}\data\GPL-2"
+	File "${GEANY_RELEASE_DIR}\data\filetype_extensions.conf"
+	File "${GEANY_RELEASE_DIR}\data\geany.glade"
+	File "${GEANY_RELEASE_DIR}\data\geany-3.20.css"
+	File "${GEANY_RELEASE_DIR}\data\geany.css"
+	File "${GEANY_RELEASE_DIR}\data\snippets.conf"
+	File "${GEANY_RELEASE_DIR}\data\ui_toolbar.xml"
 
 	SetOutPath "$INSTDIR\data\filedefs"
-	File /r "${RESOURCEDIR}\data\filedefs\*"
+	File /r "${GEANY_RELEASE_DIR}\data\filedefs\*"
 
 	SetOutPath "$INSTDIR\data\templates"
-	File /r "${RESOURCEDIR}\data\templates\*"
+	File /r "${GEANY_RELEASE_DIR}\data\templates\*"
 
 	SetOutPath "$INSTDIR\data\colorschemes"
-	File /r "${RESOURCEDIR}\data\colorschemes\*"
+	File /r "${GEANY_RELEASE_DIR}\data\colorschemes\*"
 	# Geany color schemes project, don't bail out if they are missing
-	File /nonfatal /r "..\geany-themes\colorschemes\*.conf"
+	File /nonfatal /r "${GEANY_THEMES_DIR}\colorschemes\*.conf"
 
 	SetOutPath "$INSTDIR\share\icons"
-	File /r "${RESOURCEDIR}\share\icons\*"
+	File /r "${GEANY_RELEASE_DIR}\share\icons\*"
 
 	SetOutPath "$INSTDIR"
 
@@ -192,24 +196,22 @@ Section "Plugins" SEC02
 	SectionIn 1
 	SetOverwrite ifnewer
 	SetOutPath "$INSTDIR\lib\geany"
-	File "${RESOURCEDIR}\lib\geany\*.dll"
+	File "${GEANY_RELEASE_DIR}\lib\geany\*.dll"
 SectionEnd
 
 Section "Language Files" SEC03
 	SectionIn 1
 	SetOutPath "$INSTDIR\share\locale"
-	File /r "${RESOURCEDIR}\share\locale\*"
-!ifdef INCLUDE_GTK
+	File /r "${GEANY_RELEASE_DIR}\share\locale\*"
 	SetOutPath "$INSTDIR\share\locale"
-	File /r "gtk\share\locale\*"
-!endif
+	File /r "${GTK_BUNDLE_DIR}\share\locale\*"
 SectionEnd
 
 Section "Documentation" SEC04
 	SectionIn 1
 	SetOverwrite ifnewer
 	SetOutPath "$INSTDIR\share\doc"
-	File /r "${RESOURCEDIR}\share\doc\*"
+	File /r "${GEANY_RELEASE_DIR}\share\doc\*"
 	WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" "$INSTDIR\share\doc\geany\html\index.html"
 	!insertmacro MUI_STARTMENU_WRITE_BEGIN ${PRODUCT_NAME}
 	CreateShortCut "$SMPROGRAMS\$StartmenuFolder\Documentation.lnk" "$INSTDIR\Documentation.url"
@@ -220,26 +222,24 @@ Section "Autocompletion Tags" SEC05
 	SectionIn 1
 	SetOverwrite ifnewer
 	SetOutPath "$INSTDIR\data\tags"
-	File /r "${RESOURCEDIR}\data\tags\*"
+	File /r "${GEANY_RELEASE_DIR}\data\tags\*"
 SectionEnd
 
 ; Include GTK runtime library but only if desired from command line
-!ifdef INCLUDE_GTK
 Section "GTK ${GTK_VERSION} Runtime Environment" SEC06
 	SectionIn 1
 	SetOverwrite ifnewer
 	SetOutPath "$INSTDIR"
-	File "gtk\ReadMe.Dependencies.Geany.txt"
+	File "${GTK_BUNDLE_DIR}\ReadMe.Dependencies.Geany.txt"
 	SetOutPath "$INSTDIR\bin"
-	File /r "gtk\bin\*"
+	File /r "${GTK_BUNDLE_DIR}\bin\*"
 	SetOutPath "$INSTDIR\etc"
-	File /r "gtk\etc\*"
+	File /r "${GTK_BUNDLE_DIR}\etc\*"
 	SetOutPath "$INSTDIR\lib"
-	File /r "gtk\lib\*"
+	File /r "${GTK_BUNDLE_DIR}\lib\*"
 	SetOutPath "$INSTDIR\share"
-	File /r /x "*.mo" "gtk\share\*"
+	File /r /x "*.mo" "${GTK_BUNDLE_DIR}\share\*"
 SectionEnd
-!endif
 
 Section "Context Menus" SEC07
 	SectionIn 1
@@ -258,10 +258,10 @@ SectionEnd
 Section "Development files" SEC09
 	SetOverwrite ifnewer
 	SetOutPath "$INSTDIR\include"
-	File /r "${RESOURCEDIR}\include\*"
+	File /r "${GEANY_RELEASE_DIR}\include\*"
 
 	SetOutPath "$INSTDIR\lib\pkgconfig"
-	File "${RESOURCEDIR}\lib\pkgconfig\geany.pc"
+	File "${GEANY_RELEASE_DIR}\lib\pkgconfig\geany.pc"
 SectionEnd
 
 Section -AdditionalIcons
@@ -348,9 +348,7 @@ SectionEnd
 !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "Various translations of Geany's interface."
 !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} "Manual in Text and HTML format."
 !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} "Symbol lists necessary for auto completion of symbols."
-!ifdef INCLUDE_GTK
 !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} "You need these files to run Geany. If you have already installed a GTK Runtime Environment (${GTK_VERSION} or higher), you can skip it."
-!endif
 !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} "Add context menu item 'Open With Geany'"
 !insertmacro MUI_DESCRIPTION_TEXT ${SEC08} "Create shortcuts for Geany on the desktop and in the Quicklaunch Bar"
 !insertmacro MUI_DESCRIPTION_TEXT ${SEC09} "You need these files only if you want to develop own plugins for Geany. If unsure, you can skip it."



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list