forked from qt-creator/qt-creator
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>
This commit is contained in:
+18
-1
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user