diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2017-11-16 16:59:00 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2017-11-22 07:39:45 +0000 |
commit | 0dc025bf9f0ba3760ae8a02356900f5f63e75047 (patch) | |
tree | ffc1628402023b6338e5b0caff12f7306a0da260 | |
parent | 7e360ccd4e4a9afe58bd2ded5d8f602bcbce07aa (diff) | |
download | qtbase-0dc025bf9f0ba3760ae8a02356900f5f63e75047.tar.gz |
Fix macOS shadow prefix builds using pre-synced source packages
For source packages that don't have a .git subdirectory, syncqt is
executed before configure, with outdir set to srcdir, and this
caused path misalignments for injected headers in qt_module.prf
when generating makefile rules.
The fix is to change syncqt to always output injected header
paths relative to the source dir.
Task-number: QTBUG-64539
Change-Id: Ia2296e44494093dbf124729062f430ad6fca7262
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
-rwxr-xr-x | bin/syncqt.pl | 5 | ||||
-rw-r--r-- | mkspecs/features/qt_module.prf | 14 |
2 files changed, 7 insertions, 12 deletions
diff --git a/bin/syncqt.pl b/bin/syncqt.pl index e741f22f65..02e55d847e 100755 --- a/bin/syncqt.pl +++ b/bin/syncqt.pl @@ -1037,7 +1037,8 @@ foreach my $lib (@modules_to_sync) { my $clean_header; my $requires; - my $iheader = $subdir . "/" . $header; + my $iheader_src = $subdir . "/" . $header; + my $iheader = $iheader_src; $iheader =~ s/^\Q$basedir\E/$out_basedir/ if ($shadow); if ($check_includes) { # We need both $public_header and $private_header because QPA headers count as neither @@ -1079,7 +1080,7 @@ foreach my $lib (@modules_to_sync) { } $header_copies++ if (!$shadow && syncHeader($lib, $oheader, $iheader, $copy_headers, $ts)); - my $pri_install_iheader = fixPaths($iheader, $dir); + my $pri_install_iheader = fixPaths($iheader_src, $dir); my $injection = ""; if ($public_header) { foreach my $class (@classes) { diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index a5c40a7899..c0a8dcc251 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -135,18 +135,12 @@ lib_bundle { !build_all| \ if(if(!debug_and_release|CONFIG(release, debug|release))) { FRAMEWORK_HEADERS.version = Versions - FRAMEWORK_HEADERS.files = $$SYNCQT.HEADER_FILES $$SYNCQT.HEADER_CLASSES - # Non-existing paths (yet, they will be generated) are used verbatim. - for (injected_header, SYNCQT.INJECTED_HEADER_FILES): \ - FRAMEWORK_HEADERS.files += \ - $$relative_path($$absolute_path($$injected_header, $$_PRO_FILE_PWD_), $$OUT_PWD) - + FRAMEWORK_HEADERS.files = \ + $$SYNCQT.HEADER_FILES $$SYNCQT.HEADER_CLASSES $$SYNCQT.INJECTED_HEADER_FILES FRAMEWORK_HEADERS.path = Headers FRAMEWORK_PRIVATE_HEADERS.version = Versions - FRAMEWORK_PRIVATE_HEADERS.files = $$SYNCQT.PRIVATE_HEADER_FILES - for (injected_header, SYNCQT.INJECTED_PRIVATE_HEADER_FILES): \ - FRAMEWORK_PRIVATE_HEADERS.files += \ - $$relative_path($$absolute_path($$injected_header, $$_PRO_FILE_PWD_), $$OUT_PWD) + FRAMEWORK_PRIVATE_HEADERS.files = \ + $$SYNCQT.PRIVATE_HEADER_FILES $$SYNCQT.INJECTED_PRIVATE_HEADER_FILES FRAMEWORK_PRIVATE_HEADERS.path = Headers/$$VERSION/$$MODULE_INCNAME/private FRAMEWORK_QPA_HEADERS.version = Versions FRAMEWORK_QPA_HEADERS.files = $$SYNCQT.QPA_HEADER_FILES |