summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2017-11-16 16:59:00 +0100
committerLars Knoll <lars.knoll@qt.io>2017-11-22 07:39:45 +0000
commit0dc025bf9f0ba3760ae8a02356900f5f63e75047 (patch)
treeffc1628402023b6338e5b0caff12f7306a0da260
parent7e360ccd4e4a9afe58bd2ded5d8f602bcbce07aa (diff)
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-xbin/syncqt.pl5
-rw-r--r--mkspecs/features/qt_module.prf14
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