From 853cbf408c99558da12b9da1005468fc51f082f4 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Wed, 19 Aug 2026 03:57:45 +0300
Subject: [PATCH 32/32] Meson: Silence sfinae-incomplete warnings with Qt <
 6.11

See RM #2149

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 meson.build | 39 +++++++++++++++++++++++++++++----------
 1 file changed, 29 insertions(+), 10 deletions(-)

diff --git a/meson.build b/meson.build
index 60aa70ef9f..c4cb423f90 100644
--- a/meson.build
+++ b/meson.build
@@ -915,6 +915,35 @@ else
   qt_cppflags = ['-std=c++17', '-fPIC']
 endif
 
+if qtver == 'qt6' or qtver == 'qt6x'
+  qt_mod = import('qt6')
+
+  qt_dep = dependency('Qt6', modules: ['Core', 'Gui', 'Widgets'], required: false)
+else
+  qt_mod = import('qt5')
+
+  qt_dep = dependency('Qt5', modules: ['Core', 'Gui', 'Widgets'], required: false)
+endif
+
+if cxx_build and qtver != 'qt5' and qt_dep.found() and \
+   cxx_compiler.has_argument('-Wno-sfinae-incomplete')
+  if cxx_compiler.compiles(
+'''#include <QtCore>
+int main()
+{
+#if QT_VERSION >= 0x060b00
+  fail
+#endif
+  return 0;
+}
+''',
+    name: 'qt < 6.11',
+    args: [qt_cppflags, '-Wno-sfinae-incomplete'],
+    dependencies: qt_dep)
+    add_global_arguments('-Wno-sfinae-incomplete', language : 'cpp')
+  endif
+endif
+
 if get_option('audio') != 'none'
   priv_conf_data.set('AUDIO_SDL', 1)
 
@@ -3572,16 +3601,6 @@ if gtk4_theme
                              'freeciv/themes/gtk4/Freeciv/gtk-4.0'))
 endif
 
-if qtver == 'qt6' or qtver == 'qt6x'
-  qt_mod = import('qt6')
-
-  qt_dep = dependency('Qt6', modules: ['Core', 'Gui', 'Widgets'], required: false)
-else
-  qt_mod = import('qt5')
-
-  qt_dep = dependency('Qt5', modules: ['Core', 'Gui', 'Widgets'], required: false)
-endif
-
 if qt_dep.found() and cxx_build
   if cxx_compiler.compiles(
 '''#include <QtCore>
-- 
2.53.0

