diff options
Diffstat (limited to 'scripts/qdoc2tasks.pl')
-rwxr-xr-x | scripts/qdoc2tasks.pl | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/scripts/qdoc2tasks.pl b/scripts/qdoc2tasks.pl index 244a0a13a4d..2e0eb8a5235 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); |