don't try to timestamp injected qvulkanfunctions.h

the target of the injected forwarding header doesn't exist at qmake
time, as it is generated by an extra compiler, so the touch() calls in
qt_module_headers.prf would fail.

the error scenario described in ce942a226 is not applicable to
gui/vulkan, as no bootstrapped modules are involved. therefore, we can
just suppress the timestamping.

Change-Id: I1c9b6fcdf3717069fdbb654e3cb5d73b199192f4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
This commit is contained in:
Oswald Buddenhagen 2017-03-20 12:08:14 +01:00
parent 1d647a22f3
commit 28e9867a3c
3 changed files with 10 additions and 6 deletions

View File

@ -1004,13 +1004,16 @@ foreach my $lib (@modules_to_sync) {
@headers = grep(!/^qt[a-z0-9]+-config(_p)?\.h$/, @headers); @headers = grep(!/^qt[a-z0-9]+-config(_p)?\.h$/, @headers);
if (defined $inject_headers{$subdir}) { if (defined $inject_headers{$subdir}) {
foreach my $if (@{$inject_headers{$subdir}}) { foreach my $if (@{$inject_headers{$subdir}}) {
@headers = grep(!/^\Q$if\E$/, @headers); #in case we configure'd previously my $cif = $if;
$cif =~ s/^\^//;
@headers = grep(!/^\Q$cif\E$/, @headers); #in case we configure'd previously
push @headers, "*".$if; push @headers, "*".$if;
} }
} }
my $header_dirname = ""; my $header_dirname = "";
foreach my $header (@headers) { foreach my $header (@headers) {
my $shadow = ($header =~ s/^\*//); my $shadow = ($header =~ s/^\*//);
my $no_stamp = $shadow && ($header =~ s/^\^//);
$header = 0 if ($header =~ /^ui_.*\.h$/); $header = 0 if ($header =~ /^ui_.*\.h$/);
foreach (@ignore_headers) { foreach (@ignore_headers) {
$header = 0 if($header eq $_); $header = 0 if($header eq $_);
@ -1106,7 +1109,7 @@ foreach my $lib (@modules_to_sync) {
$pri_install_pfiles.= "$pri_install_iheader ";; $pri_install_pfiles.= "$pri_install_iheader ";;
} }
$pri_injections .= fixPaths($iheader, "$out_basedir/include/$lib") $pri_injections .= fixPaths($iheader, "$out_basedir/include/$lib")
.":".fixPaths($oheader, "$out_basedir/include/$lib") .":".($no_stamp ? "^" : "").fixPaths($oheader, "$out_basedir/include/$lib")
.$injection." " if ($shadow); .$injection." " if ($shadow);
} }

View File

@ -119,18 +119,19 @@ exists($$OUT_PWD/qt$${MODULE}-config.h) {
for (injection, SYNCQT.INJECTIONS) { for (injection, SYNCQT.INJECTIONS) {
injects = $$split(injection, :) injects = $$split(injection, :)
dst_hdr = $$absolute_path($$member(injects, 0), $$MODULE_INC_OUTDIR) dst_hdr = $$absolute_path($$member(injects, 0), $$MODULE_INC_OUTDIR)
fwd_hdr = $$member(injects, 1) ofwd_hdr = $$member(injects, 1)
fwd_hdr = $$replace(ofwd_hdr, ^\\^, )
MAIN_FWD = $$MODULE_INC_OUTDIR/$$fwd_hdr MAIN_FWD = $$MODULE_INC_OUTDIR/$$fwd_hdr
MAIN_FWD_CONT = '$${LITERAL_HASH}include "$$relative_path($$dst_hdr, $$dirname(MAIN_FWD))"' MAIN_FWD_CONT = '$${LITERAL_HASH}include "$$relative_path($$dst_hdr, $$dirname(MAIN_FWD))"'
write_file($$MAIN_FWD, MAIN_FWD_CONT)|error() write_file($$MAIN_FWD, MAIN_FWD_CONT)|error()
touch($$MAIN_FWD, $$dst_hdr) equals(fwd_hdr, ofwd_hdr): touch($$MAIN_FWD, $$dst_hdr)
!git_build: QMAKE_DISTCLEAN += $$MAIN_FWD !git_build: QMAKE_DISTCLEAN += $$MAIN_FWD
injects = $$member(injects, 2, -1) injects = $$member(injects, 2, -1)
for (inject, injects) { for (inject, injects) {
CLASS_FWD = $$MODULE_INC_OUTDIR/$$inject CLASS_FWD = $$MODULE_INC_OUTDIR/$$inject
CLASS_FWD_CONT = '$${LITERAL_HASH}include "$$fwd_hdr"' CLASS_FWD_CONT = '$${LITERAL_HASH}include "$$fwd_hdr"'
write_file($$CLASS_FWD, CLASS_FWD_CONT)|error() write_file($$CLASS_FWD, CLASS_FWD_CONT)|error()
touch($$CLASS_FWD, $$dst_hdr) touch($$CLASS_FWD, $$MAIN_FWD)
!git_build: QMAKE_DISTCLEAN += $$CLASS_FWD !git_build: QMAKE_DISTCLEAN += $$CLASS_FWD
} }
} }

View File

@ -84,5 +84,5 @@ my @zlib_headers = ( "zconf.h", "zlib.h" );
@ignore_for_qt_begin_namespace_check = ( "qt_windows.h", @zlib_headers, @angle_headers); @ignore_for_qt_begin_namespace_check = ( "qt_windows.h", @zlib_headers, @angle_headers);
%inject_headers = ( %inject_headers = (
"$basedir/src/corelib/global" => [ "qconfig.h", "qconfig_p.h" ], "$basedir/src/corelib/global" => [ "qconfig.h", "qconfig_p.h" ],
"$basedir/src/gui/vulkan" => [ "qvulkanfunctions.h" ] "$basedir/src/gui/vulkan" => [ "^qvulkanfunctions.h" ]
); );