From 766162c23b754c5f13e2f25f5354a096c6e85929 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 21 Feb 2018 12:36:54 +0100 Subject: 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 --- scripts/qdoc2tasks.pl | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'scripts') 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 = ) { 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); -- cgit v1.2.3