From 66b60dfa470162cb964eeecdcf24f418bc906790 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Mon, 2 Nov 2026 05:03:12 +0200
Subject: [PATCH 25/25] Msys2: Include gtk3-fcmp to sdl installers in win64
 environment

...instead of gtk4 one, which is not supported on < win10.

See RM #2437

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 windows/installer_msys2/Makefile.meson        | 36 ++++++++++++-------
 .../create-freeciv-sdl2-nsi.sh                |  8 ++++-
 2 files changed, 31 insertions(+), 13 deletions(-)

diff --git a/windows/installer_msys2/Makefile.meson b/windows/installer_msys2/Makefile.meson
index 647131874e..5480b0609f 100644
--- a/windows/installer_msys2/Makefile.meson
+++ b/windows/installer_msys2/Makefile.meson
@@ -20,6 +20,7 @@ SRC_ROOT=../..
 
 ifeq ($(MSYSTEM),MINGW64)
 WINARCH=win64
+ARCH_FCMP=gtk3
 ARCHDIR=mingw64
 LIBGCCDLL=libgcc_s_seh-1.dll
 CRYPTOLIB_SUFFIX=-x64
@@ -27,6 +28,7 @@ PREF_WIN_VER=0x0603
 
 else ifeq ($(MSYSTEM),MINGW32)
 WINARCH=win32
+ARCH_FCMP=gtk3
 ARCHDIR=mingw32
 LIBGCCDLL=libgcc_s_dw2-1.dll
 CRYPTOLIB_SUFFIX=
@@ -34,6 +36,7 @@ PREF_WIN_VER=0x0603
 
 else ifeq ($(MSYSTEM),UCRT64)
 WINARCH=win64-10
+ARCH_FCMP=gtk4
 ARCHDIR=ucrt64
 LIBGCCDLL=libgcc_s_seh-1.dll
 CRYPTOLIB_SUFFIX=-x64
@@ -41,6 +44,7 @@ PREF_WIN_VER=0x0A00
 
 else ifeq ($(MSYSTEM),CLANG64)
 WINARCH=win64+
+ARCH_FCMP=gtk4
 ARCHDIR=clang64
 LIBGCCDLL=
 CRYPTOLIB_SUFFIX=-x64
@@ -48,6 +52,7 @@ PREF_WIN_VER=0x0A00
 
 else ifeq ($(MSYSTEM),CLANG32)
 WINARCH=win32+
+ARCH_FCMP=gtk4
 ARCHDIR=clang32
 LIBGCCDLL=
 CRYPTOLIB_SUFFIX=
@@ -116,7 +121,7 @@ gtk4-installer:
 	make -f $(MAKEFILE_NAME) GUI=gtk4 CLIENT=gtk4 FCMP=gtk4 installer-common
 
 sdl2-installer:
-	make -f $(MAKEFILE_NAME) GUI=sdl2 CLIENT=sdl2 FCMP=gtk4 installer-common
+	make -f $(MAKEFILE_NAME) GUI=sdl2 CLIENT=sdl2 FCMP=$(ARCH_FCMP) installer-common
 
 qt5-installer:
 	make -f $(MAKEFILE_NAME) EXTRA_CONFIG="-Dqtver=qt5 -Dtools=manual,ruleup,ruledit $(EXTRA_CONFIG)" GUI=qt5 CLIENT=qt FCMP=qt installer-common
@@ -137,7 +142,7 @@ gtk4-install:
 	make -f $(MAKEFILE_NAME) GUI=gtk4 CLIENT=gtk4 FCMP=gtk4 install-freeciv-gtk4
 
 sdl2-install:
-	make -f $(MAKEFILE_NAME) GUI=sdl2 CLIENT=sdl2 FCMP=gtk4 install-freeciv-sdl2
+	make -f $(MAKEFILE_NAME) GUI=sdl2 CLIENT=sdl2 FCMP=$(ARCH_FCMP) install-freeciv-sdl2
 
 qt5-install:
 	make -f $(MAKEFILE_NAME) GUI=qt5 CLIENT=qt FCMP=qt EXTRA_CONFIG="-Dqtver=qt5 $(EXTRA_CONFIG)" install-freeciv-qt5
@@ -348,16 +353,23 @@ SDL2_DLLS := \
 	libjxl.dll \
 	libbrotlienc.dll \
 	libhwy.dll \
-        libavif-16.dll \
-        libwebpdemux-2.dll \
-        libjxl_cms.dll \
-        libaom.dll \
-        libdav1d-7.dll \
-        $(RAV1E) \
-        ${SVTAV1ENC} \
-        libyuv.dll
-
-install-env-sdl2: install-env-gtk4-fcmp
+	libavif-16.dll \
+	libwebpdemux-2.dll \
+	libjxl_cms.dll \
+	libaom.dll \
+	libdav1d-7.dll \
+	$(RAV1E) \
+	${SVTAV1ENC} \
+	libyuv.dll \
+	libtiff-6.dll \
+	libjpeg-8.dll \
+	libjbig-0.dll \
+	libwebp-7.dll \
+	libdeflate.dll \
+	libLerc.dll \
+	libsharpyuv-0.dll
+
+install-env-sdl2: install-env-$(FCMP)-fcmp
 	# Add DLLs
 	cp -R $(addprefix $(DLLPATH_PREFIX), $(SDL2_DLLS)) $(INST_DIR)/$(WINARCH)-client-$(GUI)/
 
diff --git a/windows/installer_msys2/create-freeciv-sdl2-nsi.sh b/windows/installer_msys2/create-freeciv-sdl2-nsi.sh
index 951761bf7b..780e41c499 100644
--- a/windows/installer_msys2/create-freeciv-sdl2-nsi.sh
+++ b/windows/installer_msys2/create-freeciv-sdl2-nsi.sh
@@ -9,6 +9,12 @@ else
   ARCH_INST_PART=""
 fi
 
+if test "$4" = "win64" ; then
+  MP="gtk3"
+else
+  MP="gtk4"
+fi
+
 cat <<EOF
 ; Freeciv Windows installer script
 ; some parts adapted from Wesnoth installer script
@@ -161,7 +167,7 @@ cat <<EOF
   !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
   CreateDirectory "\$SMPROGRAMS\\\$STARTMENU_FOLDER"
   CreateShortCut "\$SMPROGRAMS\\\$STARTMENU_FOLDER\Freeciv Server.lnk" "\$INSTDIR\freeciv-server.cmd" "\$DefaultLanguageCode" "\$INSTDIR\freeciv-server.exe" 0 SW_SHOWMINIMIZED
-  CreateShortCut "\$SMPROGRAMS\\\$STARTMENU_FOLDER\Freeciv Modpack Installer.lnk" "\$INSTDIR\freeciv-mp-gtk4.cmd" "\$DefaultLanguageCode" "\$INSTDIR\freeciv-mp-gtk4.exe" 0 SW_SHOWMINIMIZED
+  CreateShortCut "\$SMPROGRAMS\\\$STARTMENU_FOLDER\Freeciv Modpack Installer.lnk" "\$INSTDIR\freeciv-mp-${MP}.cmd" "\$DefaultLanguageCode" "\$INSTDIR\freeciv-mp-${MP}.exe" 0 SW_SHOWMINIMIZED
   CreateShortCut "\$SMPROGRAMS\\\$STARTMENU_FOLDER\Freeciv.lnk" "\$INSTDIR\freeciv-sdl2.cmd" "\$DefaultLanguageCode" "\$INSTDIR\freeciv-sdl2.exe" 0 SW_SHOWMINIMIZED
   CreateShortCut "\$SMPROGRAMS\\\$STARTMENU_FOLDER\Documentation.lnk" "\$INSTDIR\doc\freeciv"
   CreateShortCut "\$SMPROGRAMS\\\$STARTMENU_FOLDER\Uninstall.lnk" "\$INSTDIR\uninstall.exe"
-- 
2.53.0

