diff --git a/configure.ac b/configure.ac
index a94bab31057607e497f1d87add9e61a38d9ca939..0a90da203464d8b586d015e5490692b9ccf6d279 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4083,12 +4083,17 @@ AS_IF([test "${enable_qt}" != "no"], [
   ],[
 
   AC_MSG_CHECKING([for Qt libraries])
+  qmake_additional_params=""
+  AS_IF([test "${enable_debug}" != "no"], [
+    qmake_additional_params="$qmake_additional_params --debug"
+  ])
   srcdir_abs=`(cd ${srcdir} && pwd -P)`
   QT_PKG_ERRORS=$(${PYTHON3} ${srcdir}/modules/gui/qt/scripts/static_dirs.py \
     --qmake "${QMAKE6}" --qtconf "${with_qtconf}" \
     --pro ${srcdir_abs}/modules/gui/qt/qt6.pro \
     --builddir ${ac_pwd}/modules/gui/qt \
-    --libs)
+    --libs \
+    ${qmake_additional_params})
   ac_status=$?
   AS_IF([test $ac_status = 0],[
 
@@ -4098,12 +4103,14 @@ AS_IF([test "${enable_qt}" != "no"], [
         --qmake "${QMAKE6}" --qtconf "${with_qtconf}" \
         --pro ${srcdir_abs}/modules/gui/qt/qt6.pro \
         --builddir ${ac_pwd}/modules/gui/qt \
-        --cflags)
+        --cflags \
+        ${qmake_additional_params})
       QT_LDFLAGS=$(${PYTHON3} ${srcdir}/modules/gui/qt/scripts/static_dirs.py \
         --qmake "${QMAKE6}" --qtconf "${with_qtconf}" \
         --pro ${srcdir_abs}/modules/gui/qt/qt6.pro \
         --builddir ${ac_pwd}/modules/gui/qt \
-        --ldflags)
+        --ldflags \
+        ${qmake_additional_params})
       AC_SUBST([QT_LIBS])
       AC_SUBST([QT_CFLAGS])
       AC_SUBST([QT_LDFLAGS])
@@ -4168,7 +4175,8 @@ AS_IF([test "${enable_qt}" != "no"], [
             --qmake "${QMAKE6}" --qtconf "${with_qtconf}" \
             --pro ${srcdir_abs}/modules/gui/qt/qtest.pro \
             --builddir ${ac_pwd}/modules/gui/qt \
-            --libs) 2>/dev/null
+            --libs \
+            ${qmake_additional_params}) 2>/dev/null
       ac_status=$?
       AS_IF([test $ac_status = 0],[
         AC_MSG_RESULT([yes])
@@ -4177,12 +4185,14 @@ AS_IF([test "${enable_qt}" != "no"], [
             --qmake "${QMAKE6}" --qtconf "${with_qtconf}" \
             --pro ${srcdir_abs}/modules/gui/qt/qtest.pro \
             --builddir ${ac_pwd}/modules/gui/qt \
-            --cflags)
+            --cflags \
+            ${qmake_additional_params})
         QT_QTEST_LDFLAGS=$(${PYTHON3} ${srcdir}/modules/gui/qt/scripts/static_dirs.py \
             --qmake "${QMAKE6}" --qtconf "${with_qtconf}" \
             --pro ${srcdir_abs}/modules/gui/qt/qtest.pro \
             --builddir ${ac_pwd}/modules/gui/qt \
-            --ldflags)
+            --ldflags \
+            ${qmake_additional_params})
         AC_SUBST([QT_QTEST_LIBS])
         AC_SUBST([QT_QTEST_CFLAGS])
         AC_SUBST([QT_QTEST_LDFLAGS])
@@ -4196,7 +4206,8 @@ AS_IF([test "${enable_qt}" != "no"], [
             --qmake "${QMAKE6}" --qtconf "${with_qtconf}" \
             --pro ${srcdir_abs}/modules/gui/qt/quicktest.pro \
             --builddir ${ac_pwd}/modules/gui/qt \
-            --libs) 2>/dev/null
+            --libs \
+            ${qmake_additional_params}) 2>/dev/null
       ac_status=$?
       AS_IF([test $ac_status = 0],[
         AS_IF([${PYTHON3} ${srcdir}/buildsystem/check_qml_module.py \
@@ -4210,12 +4221,14 @@ AS_IF([test "${enable_qt}" != "no"], [
                 --qmake "${QMAKE6}" --qtconf "${with_qtconf}" \
                 --pro ${srcdir_abs}/modules/gui/qt/quicktest.pro \
                 --builddir ${ac_pwd}/modules/gui/qt \
-                --cflags)
+                --cflags \
+                ${qmake_additional_params})
             QT_QUICK_TEST_LDFLAGS=$(${PYTHON3} ${srcdir}/modules/gui/qt/scripts/static_dirs.py \
                 --qmake "${QMAKE6}" --qtconf "${with_qtconf}" \
                 --pro ${srcdir_abs}/modules/gui/qt/quicktest.pro \
                 --builddir ${ac_pwd}/modules/gui/qt \
-                --ldflags)
+                --ldflags \
+                ${qmake_additional_params})
             AC_SUBST([QT_QUICK_TEST_LIBS])
             AC_SUBST([QT_QUICK_TEST_CFLAGS])
             AC_SUBST([QT_QUICK_TEST_LDFLAGS])
diff --git a/modules/gui/qt/meson.build b/modules/gui/qt/meson.build
index 1b8ea6ad174972e796362d55ae30d5eb8d09129d..a65618f2121caf98b89764a887860840da600863 100644
--- a/modules/gui/qt/meson.build
+++ b/modules/gui/qt/meson.build
@@ -989,6 +989,10 @@ if qt6_dep.found()
         qt_install_bin_directory = qt6_dep.get_variable(pkgconfig: 'bindir', configtool: '-query QT_INSTALL_BINS')
         qmake6 = find_program(qt_install_bin_directory + '/qmake6', required: true)
         if qmake6.found()
+            qmake_additional_params = []
+            if get_option('buildtype') == 'debug'
+                qmake_additional_params += '--debug'
+            endif
             qtcflags = run_command(
                 prog_python,
                 meson.current_source_dir() / 'scripts/static_dirs.py',
@@ -996,6 +1000,7 @@ if qt6_dep.found()
                 '--pro', meson.current_source_dir() / 'qt6.pro',
                 '--builddir', meson.current_build_dir(),
                 '--cflags',
+                qmake_additional_params,
                 check: false,
             )
             if qtcflags.returncode() == 0
@@ -1010,6 +1015,7 @@ if qt6_dep.found()
                 '--pro', meson.current_source_dir() / 'qt6.pro',
                 '--builddir', meson.current_build_dir(),
                 '--libs', '--ldflags',
+                qmake_additional_params,
                 check: false,
             )
             if qtlflags.returncode() == 0
diff --git a/modules/gui/qt/scripts/static_dirs.py b/modules/gui/qt/scripts/static_dirs.py
index 0db02af05eba3e220ddd0cc6402d42030f39f2c6..054c2d67e373143411a4486dfd837da954a8ac1b 100644
--- a/modules/gui/qt/scripts/static_dirs.py
+++ b/modules/gui/qt/scripts/static_dirs.py
@@ -12,10 +12,12 @@ import re
 import subprocess
 import sys
 
-def call_qmake(qmake:str, qtconf, builddir, pro) -> str:
+def call_qmake(qmake:str, qtconf, builddir, pro, debug:bool) -> str:
     if builddir and builddir != '' and not os.path.exists(builddir):
         os.makedirs(builddir)
     qmake_cmd = [ qmake ]
+    if debug:
+        qmake_cmd += ['CONFIG+=debug']
     if qtconf and qtconf != '':
         qmake_cmd += [ '-qtconf', qtconf ]
     qmake_cmd += [pro, '-o', '-' ]
@@ -55,12 +57,15 @@ if __name__ == "__main__":
     parser.add_argument("--ldflags",
                         required=False, action='store_true',
                         help="get the list of linker flags")
+    parser.add_argument("--debug",
+                        required=False, action='store_true',
+                        help="debug mode")
     args = parser.parse_args()
 
     result = ''
     sources = [ os.path.join(args.builddir, '.qmake.stash') ]
     in_sources = False
-    makefile = call_qmake(args.qmake, args.qtconf, args.builddir, args.pro)
+    makefile = call_qmake(args.qmake, args.qtconf, args.builddir, args.pro, args.debug)
     for line in makefile.splitlines():
         if in_sources:
             l = line.strip()