From fa387ee98069aea2a0b6602f774df3f7778cab6e Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Mon, 2 Nov 2026 05:00:14 +0200
Subject: [PATCH 39/39] 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>
---
 platforms/windows/installer_msys2/Makefile.meson  | 15 +++++++++------
 .../installer_msys2/create-freeciv-sdl-nsi.sh     |  8 +++++++-
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/platforms/windows/installer_msys2/Makefile.meson b/platforms/windows/installer_msys2/Makefile.meson
index 775fdfdf27..8b7641adcd 100644
--- a/platforms/windows/installer_msys2/Makefile.meson
+++ b/platforms/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
 CPPLIBS=libstdc++-6.dll libgomp-1.dll
@@ -28,6 +29,7 @@ PREF_WIN_VER=0x0603
 
 else ifeq ($(MSYSTEM),UCRT64)
 WINARCH=win64-10
+ARCH_FCMP=gtk4
 ARCHDIR=ucrt64
 LIBGCCDLL=libgcc_s_seh-1.dll
 CPPLIBS=libstdc++-6.dll libgomp-1.dll
@@ -36,6 +38,7 @@ PREF_WIN_VER=0x0A00
 
 else ifeq ($(MSYSTEM),CLANG64)
 WINARCH=win64+
+ARCH_FCMP=gtk4
 ARCHDIR=clang64
 LIBGCCDLL=
 CPPLIBS=libc++.dll libomp.dll libunwind.dll
@@ -96,13 +99,13 @@ gtk4-installer:
 	make -f $(MAKEFILE_NAME) GUI=gtk4 CLIENT=gtk4 FCMP=gtk4 installer-common
 
 sdl2-installer:
-	make -f $(MAKEFILE_NAME) EXTRA_CONFIG="-Daudio=sdl2 $(EXTRA_CONFIG)" GUI=sdl2 CLIENT=sdl2 FCMP=gtk4 installer-common
+	make -f $(MAKEFILE_NAME) EXTRA_CONFIG="-Daudio=sdl2 $(EXTRA_CONFIG)" 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
 
 sdl3-installer:
-	make -f $(MAKEFILE_NAME) EXTRA_CONFIG="-Daudio=sdl3 $(EXTRA_CONFIG)" GUI=sdl3 CLIENT=sdl3 FCMP=gtk4 installer-common
+	make -f $(MAKEFILE_NAME) EXTRA_CONFIG="-Daudio=sdl3 $(EXTRA_CONFIG)" GUI=sdl3 CLIENT=sdl3 FCMP=$(ARCH_FCMP) installer-common
 
 qt6-installer:
 	make -f $(MAKEFILE_NAME) EXTRA_CONFIG="-Ddebug=false -Dqtver=qt6 -Dsvgflags=true -Dtools=manual,ruleup,ruledit $(EXTRA_CONFIG)" GUI=qt6 CLIENT=qt FCMP=qt installer-common
@@ -126,13 +129,13 @@ 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
 
 sdl3-install:
-	make -f $(MAKEFILE_NAME) GUI=sdl3 CLIENT=sdl3 FCMP=gtk4 install-freeciv-sdl3
+	make -f $(MAKEFILE_NAME) GUI=sdl3 CLIENT=sdl3 FCMP=$(ARCH_FCMP) install-freeciv-sdl3
 
 qt6-install:
 	make -f $(MAKEFILE_NAME) GUI=qt6 CLIENT=qt FCMP=qt EXTRA_CONFIG="-Dqtver=qt6 -Dsvgflags=true $(EXTRA_CONFIG)" install-freeciv-qt6
@@ -389,12 +392,12 @@ SDL3_DLLS := \
 	SDL3_ttf.dll \
 	SDL3_image.dll
 
-install-env-sdl2: install-env-gtk4-fcmp
+install-env-sdl2: install-env-$(FCMP)-fcmp
 	# Add DLLs
 	cp -R $(addprefix $(DLLPATH_PREFIX), $(SDL2_DLLS)) $(INST_DIR)/$(WINARCH)-client-$(GUI)/
 	cp -R $(addprefix $(DLLPATH_PREFIX), $(SOUND_DLLS_SDL2)) $(INST_DIR)/$(WINARCH)-client-$(GUI)/
 
-install-env-sdl3: install-env-gtk4-fcmp
+install-env-sdl3: install-env-$(FCMP)-fcmp
 	# Add DLLs
 	cp -R $(addprefix $(DLLPATH_PREFIX), $(SDL3_DLLS)) $(INST_DIR)/$(WINARCH)-client-$(GUI)/
 	cp -R $(addprefix $(DLLPATH_PREFIX), $(SOUND_DLLS_SDL3)) $(INST_DIR)/$(WINARCH)-client-$(GUI)/
diff --git a/platforms/windows/installer_msys2/create-freeciv-sdl-nsi.sh b/platforms/windows/installer_msys2/create-freeciv-sdl-nsi.sh
index 618070b408..fc224b3116 100644
--- a/platforms/windows/installer_msys2/create-freeciv-sdl-nsi.sh
+++ b/platforms/windows/installer_msys2/create-freeciv-sdl-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-\${GUI_ID}.cmd" "\$DefaultLanguageCode" "\$INSTDIR\freeciv-\${GUI_ID}.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

