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 <dominik.holland@pelagicore.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
This commit is contained in:
parent
6a21dc9d73
commit
c2917243a9
@ -1111,7 +1111,7 @@ foreach my $lib (@modules_to_sync) {
|
||||
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);
|
||||
}
|
||||
|
@ -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")
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user