diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/syncqt.pl | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/bin/syncqt.pl b/bin/syncqt.pl index 372aa2b331..e741f22f65 100755 --- a/bin/syncqt.pl +++ b/bin/syncqt.pl @@ -925,6 +925,7 @@ foreach my $lib (@modules_to_sync) { #information used after the syncing my $pri_install_classes = ""; my $pri_install_files = ""; + my $pri_install_ifiles = ""; my $pri_install_pfiles = ""; my $pri_install_ipfiles = ""; my $pri_install_qpafiles = ""; @@ -1004,13 +1005,16 @@ foreach my $lib (@modules_to_sync) { @headers = grep(!/^qt[a-z0-9]+-config(_p)?\.h$/, @headers); if (defined $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; } } my $header_dirname = ""; foreach my $header (@headers) { my $shadow = ($header =~ s/^\*//); + my $no_stamp = $shadow && ($header =~ s/^\^//); $header = 0 if ($header =~ /^ui_.*\.h$/); foreach (@ignore_headers) { $header = 0 if($header eq $_); @@ -1077,11 +1081,7 @@ foreach my $lib (@modules_to_sync) { my $pri_install_iheader = fixPaths($iheader, $dir); my $injection = ""; - if($public_header) { - #put it into the master file - $master_contents{$public_header} = $requires if (!$shadow && shouldMasterInclude($iheader)); - - #deal with the install directives + if ($public_header) { foreach my $class (@classes) { # Strip namespaces: $class =~ s/^.*:://; @@ -1093,8 +1093,17 @@ foreach my $lib (@modules_to_sync) { unless($pri_install_classes =~ $class_header); $injection .= ":$class"; } - $pri_install_files.= "$pri_install_iheader ";; - $pri_clean_files .= "$pri_install_iheader".($requires ? ":".$requires : "")." " if ($clean_header); + + if ($shadow) { + $pri_install_ifiles .= "$pri_install_iheader "; + } else { + # put it into the master file + $master_contents{$public_header} = $requires if (shouldMasterInclude($iheader)); + + # deal with the install directives + $pri_install_files .= "$pri_install_iheader "; + $pri_clean_files .= "$pri_install_iheader".($requires ? ":".$requires : "")." " if ($clean_header); + } } elsif ($qpa_header) { $pri_install_qpafiles.= "$pri_install_iheader ";; @@ -1106,7 +1115,7 @@ foreach my $lib (@modules_to_sync) { $pri_install_pfiles.= "$pri_install_iheader ";; } $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); } @@ -1244,6 +1253,7 @@ foreach my $lib (@modules_to_sync) { #handle the headers.pri for each module my $headers_pri_contents = ""; $headers_pri_contents .= "SYNCQT.HEADER_FILES = $pri_install_files\n"; + $headers_pri_contents .= "SYNCQT.INJECTED_HEADER_FILES = $pri_install_ifiles\n"; $headers_pri_contents .= "SYNCQT.HEADER_CLASSES = $pri_install_classes\n"; $headers_pri_contents .= "SYNCQT.PRIVATE_HEADER_FILES = $pri_install_pfiles\n"; $headers_pri_contents .= "SYNCQT.INJECTED_PRIVATE_HEADER_FILES = $pri_install_ipfiles\n"; |