summaryrefslogtreecommitdiffstats
path: root/bin/syncqt.pl
diff options
context:
space:
mode:
Diffstat (limited to 'bin/syncqt.pl')
-rwxr-xr-xbin/syncqt.pl33
1 files changed, 22 insertions, 11 deletions
diff --git a/bin/syncqt.pl b/bin/syncqt.pl
index 372aa2b331..02e55d847e 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 $_);
@@ -1033,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
@@ -1075,13 +1080,9 @@ 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) {
- #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 +1094,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 +1116,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 +1254,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";