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>bb10
parent
7e360ccd4e
commit
0dc025bf9f
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue