aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/qdoc2tasks.pl19
1 files changed, 18 insertions, 1 deletions
diff --git a/scripts/qdoc2tasks.pl b/scripts/qdoc2tasks.pl
index 244a0a13a4..2e0eb8a523 100755
--- a/scripts/qdoc2tasks.pl
+++ b/scripts/qdoc2tasks.pl
@@ -38,15 +38,32 @@ qdoc2tasks.pl - Convert qdoc warnings into Qt Creator task files.
use strict;
use warnings;
+my $lastDiagnostic;
+
while (my $line = <STDIN>) {
chomp($line);
# --- extract file name based matching:
# Qt 5.10: D:/.../qaxbase.cpp:3231: warning: Cannot tie this documentation to anything
# Qt 5.11: D:/.../qaxbase.cpp:3231: (qdoc) warning: Cannot tie this documentation to anything
if ($line =~ /^(..[^:]*):(\d+): (?:\(qdoc\) )?warning: (.*)$/) {
+ if (defined($lastDiagnostic)) {
+ print $lastDiagnostic, "\n";
+ $lastDiagnostic = undef;
+ }
my $fileName = $1;
my $lineNumber = $2;
my $text = $3;
- print $fileName, "\t", $lineNumber, "\twarn\t", $text,"\n";
+ my $message = $fileName . "\t" . $lineNumber . "\twarn\t" . $text;
+ if (index($message, 'clang found diagnostics parsing') >= 0) {
+ $lastDiagnostic = $message;
+ } else {
+ print $message, "\n";
+ }
+ } elsif (defined($lastDiagnostic) && $line =~ /^ /) {
+ $line =~ s/^\s+//;
+ $line =~ s/\s+$//;
+ $lastDiagnostic .= ' ' . $line;
}
}
+
+print $lastDiagnostic, "\n" if defined($lastDiagnostic);