aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-02-21 12:36:54 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2018-02-21 13:22:49 +0000
commit766162c23b754c5f13e2f25f5354a096c6e85929 (patch)
tree23d48dfc9351188d9373ab10b0e830fe07ab8ba4 /scripts
parent6854f0580d17636f0c92b8b6b60383041a23a74a (diff)
qdoc2tasks.pl: Print messages continued over several lines
For example: qtandroidextras/src/androidextras/android/qandroidfunctions.cpp:301: (qdoc) warning: clang found diagnostics parsing \fn bool QtAndroid::bindService(const QAndroidIntent &serviceIntent, const QAndroidServiceConnection &serviceConnection, BindFlags flags = BindFlag::None) error: use of undeclared identifier 'QtAndroid' error: unknown type name 'QAndroidIntent' error: unknown type name 'QAndroidServiceConnection' error: unknown type name 'BindFlags' error: use of undeclared identifier 'BindFlag' Change-Id: Ie9a9accf97cdd639b8a8a9ff908a73588fc15ff5 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'scripts')
-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);