summaryrefslogtreecommitdiffstats
path: root/bin/syncqt.pl
diff options
context:
space:
mode:
Diffstat (limited to 'bin/syncqt.pl')
-rwxr-xr-xbin/syncqt.pl25
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";