From c2917243a96d19c9cd49c827e63d40b7c0110d7d Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 15 Apr 2019 12:41:52 +0200 Subject: [PATCH] syncqt: Fix resolution of injected headers for external modules Injected headers were made relative to MODULE_BASE_OUTDIR by syncqt and made absolute by resolving against REAL_MODULE_BASE_OUTDIR. This breaks for modules that reside outside the original Qt source tree (if the directory depth doesn't coincidentally match). Now, we resolve injected headers against build_basedir, which is REAL_MODULE_BASE_OUTDIR. To emphasize the equivalence of REAL_MODULE_BASE_OUTDIR and syncqt's build_basedir, use the former for syncqt's -output argument. This commit amends 2aa779e8. Fixes: QTBUG-70587 Change-Id: I2935d87d7ee681fa4aa795a270b94ab7a43abe59 Reviewed-by: Dominik Holland Reviewed-by: Oliver Wolff --- bin/syncqt.pl | 2 +- mkspecs/features/qt_module_headers.prf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/syncqt.pl b/bin/syncqt.pl index 972717efcfa..7793811c9f0 100755 --- a/bin/syncqt.pl +++ b/bin/syncqt.pl @@ -1111,7 +1111,7 @@ ($$) elsif (!$shadow) { $pri_install_pfiles.= "$pri_install_iheader ";; } - $pri_injections .= fixPaths($iheader, $out_basedir) + $pri_injections .= fixPaths($iheader, $build_basedir) .":".($no_stamp ? "^" : "").fixPaths($oheader, "$out_basedir/include/$lib") .$injection." " if ($shadow); } diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf index 6b4b9143fa5..37b69e31c82 100644 --- a/mkspecs/features/qt_module_headers.prf +++ b/mkspecs/features/qt_module_headers.prf @@ -23,7 +23,7 @@ load(qt_build_paths) QMAKE_SYNCQT += -module $$mod QMAKE_SYNCQT += \ -version $$VERSION -outdir $$system_quote($$MODULE_BASE_OUTDIR) \ - -builddir $$system_quote($$shadowed($$MODULE_BASE_INDIR)) $$MODULE_SYNCQT_DIR + -builddir $$system_quote($$REAL_MODULE_BASE_OUTDIR) $$MODULE_SYNCQT_DIR !silent: message($$QMAKE_SYNCQT) system($$QMAKE_SYNCQT)|error("Failed to run: $$QMAKE_SYNCQT")