diff options
Diffstat (limited to 'bin/syncqt.pl')
-rwxr-xr-x | bin/syncqt.pl | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/bin/syncqt.pl b/bin/syncqt.pl index 7ede34cf1d..c472ab5a12 100755 --- a/bin/syncqt.pl +++ b/bin/syncqt.pl @@ -423,14 +423,31 @@ sub syncHeader { normalizePath(\$header); return copyFile($lib, $iheader, $header) if($copy); - unless(-e $header) { - my $header_dir = dirname($header); + my $header_dir = dirname($header); + my $iheader_out = fixPaths($iheader, $header_dir); + my $new_forwarding_header_content = "#include \"$iheader_out\"\n"; + + # By default, create / update the forwarding header if it does + # not exist. + my $forwarding_header_exists = (-e $header ? 1 : 0); + my $update_forwarding_header = !$forwarding_header_exists; + + # If remove_stale option is on, make sure to overwrite the + # forwarding header contents if the file already exists and its + # content is different from what we will generate. + if ($remove_stale) { + my $existing_forwarding_header_content = fileContents($header); + my $header_content_is_different = + $new_forwarding_header_content ne $existing_forwarding_header_content; + $update_forwarding_header ||= $header_content_is_different; + } + + if ($update_forwarding_header) { make_path($header_dir, $lib, $verbose_level); #write it - my $iheader_out = fixPaths($iheader, $header_dir); open(HEADER, ">$header") || die "Could not open $header for writing: $!\n"; - print HEADER "#include \"$iheader_out\"\n"; + print HEADER "$new_forwarding_header_content"; close HEADER; if(defined($ts)) { utime(time, $ts, $header) or die "$iheader, $header"; |